diff --git a/abaplint.jsonc b/abaplint.jsonc index 31024397..e8aded0d 100644 --- a/abaplint.jsonc +++ b/abaplint.jsonc @@ -22,7 +22,7 @@ "strict_sql" : true, "easy_to_find_messages" : true, "fully_type_itabs" : true, - "align_parameters": true, + "align_parameters": false, "smim_consistency": true, "allowed_object_naming": true, "allowed_object_types": { @@ -124,7 +124,7 @@ "line_break_multiple_parameters": false, "line_break_style": true, "line_length": false, - "line_only_punc": true, + "line_only_punc": false, "local_class_naming": false, "local_testclass_consistency": true, "local_variable_names": false, diff --git a/src/01/02/01/z2ui5_cl_core_attri_srv.clas.testclasses.abap b/src/01/02/01/z2ui5_cl_core_attri_srv.clas.testclasses.abap index f659e810..378ad94e 100644 --- a/src/01/02/01/z2ui5_cl_core_attri_srv.clas.testclasses.abap +++ b/src/01/02/01/z2ui5_cl_core_attri_srv.clas.testclasses.abap @@ -1,256 +1,108 @@ -* -*CLASS ltcl_test_dissolve DEFINITION DEFERRED. -*CLASS z2ui5_cl_core_model_srv DEFINITION LOCAL FRIENDS ltcl_test_dissolve. -* -*CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING -* DURATION SHORT -* RISK LEVEL HARMLESS. -* -* PUBLIC SECTION. -* -* TYPES: -* BEGIN OF s_01, -* input TYPE string, -* BEGIN OF s_02, -* input TYPE string, -* BEGIN OF s_03, -* input TYPE string, -* BEGIN OF s_04, -* input TYPE string, -* END OF s_04, -* END OF s_03, -* END OF s_02, -* END OF s_01. -* -* DATA ms_struc TYPE s_01 ##NEEDED. -* DATA mv_value TYPE string ##NEEDED. -* DATA mr_value TYPE REF TO data. -* DATA mr_struc TYPE REF TO s_01. -* DATA mo_app TYPE REF TO ltcl_test_dissolve. -* -* PRIVATE SECTION. -* METHODS test_dissolve_init FOR TESTING RAISING cx_static_check. -* METHODS test_dissolve_struc FOR TESTING RAISING cx_static_check. -* METHODS test_dissolve_dref FOR TESTING RAISING cx_static_check. -* METHODS test_dissolve_oref FOR TESTING RAISING cx_static_check. -* METHODS test_ref FOR TESTING RAISING cx_static_check. -* -*ENDCLASS. -* -*CLASS ltcl_test_dissolve IMPLEMENTATION. -* -* -* METHOD test_ref. -* -* DATA(lo_app) = NEW ltcl_test_dissolve( ). -* -* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app ). -* -* lo_model->dissolve( ). -* -* DATA(ls_attri) = lt_attri[ name = `MV_VALUE` ]. -* GET REFERENCE OF lo_app->mv_value INTO DATA(lr_ref). -* -* IF ls_attri-r_ref <> lr_ref. -* cl_abap_unit_assert=>abort( ). -* ENDIF. -* -* ENDMETHOD. -* -* METHOD test_dissolve_init. -* -* DATA(lo_app) = NEW ltcl_test_dissolve( ). -* -* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app ). -* -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MV_VALUE` ] OPTIONAL ) ). -* -* ENDMETHOD. -* -* METHOD test_dissolve_dref. -* -* DATA(lo_app) = NEW ltcl_test_dissolve( ). -* CREATE DATA lo_app->mr_struc. -* CREATE DATA lo_app->mr_value TYPE string. -* -* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app ). -* -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE->*` ] OPTIONAL ) ). -* -* ENDMETHOD. -* -* METHOD test_dissolve_oref. -* -* DATA(lo_app) = NEW ltcl_test_dissolve( ). -* lo_app->mo_app = NEW #( ). -* DATA(lo_app2) = NEW ltcl_test_dissolve( ). -* lo_app2->mo_app = lo_app. -* -* CREATE DATA lo_app->mo_app->mr_struc. -* CREATE DATA lo_app->mo_app->mr_value TYPE string. -* -* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app2 ). -* -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MV_VALUE` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC` ] OPTIONAL ) ). -* -* ENDMETHOD. -* -* METHOD test_dissolve_struc. -* -* DATA(lo_app) = NEW ltcl_test_dissolve( ). -* DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app ). -* -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* lo_model->dissolve( ). -* -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-INPUT` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-INPUT` ] OPTIONAL ) ). -* cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-S_03-S_04-INPUT` ] OPTIONAL ) ). -* -* ENDMETHOD. -* -*ENDCLASS. -* -* -*CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING -* DURATION MEDIUM -* RISK LEVEL HARMLESS. -* -* PUBLIC SECTION. -* -* DATA mv_value TYPE string ##NEEDED. -* DATA mr_value TYPE REF TO data. -* DATA mr_value2 TYPE REF TO data. -* DATA mo_app TYPE REF TO ltcl_test_app2. -* -* DATA xx TYPE string ##NEEDED. -* METHODS constructor. -*ENDCLASS. -* -*CLASS ltcl_test_app2 IMPLEMENTATION. -* -* METHOD constructor. -* -* ENDMETHOD. -* -*ENDCLASS. -* -*CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING -* DURATION SHORT -* RISK LEVEL HARMLESS. -* -* PRIVATE SECTION. -* METHODS first_test FOR TESTING RAISING cx_static_check. -* METHODS second_test FOR TESTING RAISING cx_static_check. -* METHODS third_test FOR TESTING RAISING cx_static_check. -* -*ENDCLASS. -* -*CLASS z2ui5_cl_core_model_srv DEFINITION LOCAL FRIENDS ltcl_test_search_attri. -* -*CLASS ltcl_test_search_attri IMPLEMENTATION. -* -* METHOD first_test. -* -* DATA(lo_app_client) = NEW ltcl_test_app2( ). -* DATA lr_value TYPE REF TO data. -* GET REFERENCE OF lo_app_client->mv_value INTO lr_value. -* -* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = lr_value ) ). -* -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app_client ). -* -* DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). -* -* IF lr_attri->r_ref <> lr_value. -* cl_abap_unit_assert=>abort( ). -* ENDIF. -* -* ENDMETHOD. -* -* METHOD second_test. -* -* DATA(lo_app_client) = NEW ltcl_test_app2( ). -* DATA lr_value TYPE REF TO data. -* GET REFERENCE OF lo_app_client->mv_value INTO lr_value. -* -* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = REF #( lo_app_client->mv_value ) ) ). -* -* DATA(lo_model) = NEW z2ui5_cl_core_model_srv( -* attri = REF #( lt_attri ) -* app = lo_app_client ). -* -* DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). -* -* IF lr_attri->r_ref <> lr_value. -* cl_abap_unit_assert=>abort( ). -* ENDIF. -* -* ENDMETHOD. -* -* METHOD third_test. -* -* DATA(lo_app_client) = NEW ltcl_test_app2( ). -* DATA lr_value TYPE REF TO data. -* GET REFERENCE OF lo_app_client->mv_value INTO lr_value. -* -* lo_app_client->mo_app = NEW #( ). -* -* DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( -* ( name = `1` r_ref = REF #( lo_app_client->mr_value ) ) -* ( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) ) -* ( name = `2` r_ref = REF #( lo_app_client->mo_app ) ) -* ( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) -* ). -* -* DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ). -* IF lr_attri->r_ref <> lr_value. -* cl_abap_unit_assert=>abort( ). -* ENDIF. -* -* ENDMETHOD. -* -* -*ENDCLASS. + +CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING + DURATION MEDIUM + RISK LEVEL HARMLESS. + + PUBLIC SECTION. + + DATA mv_value TYPE string ##NEEDED. + DATA mr_value TYPE REF TO data. + DATA mr_value2 TYPE REF TO data. + DATA mo_app TYPE REF TO ltcl_test_app2. + + DATA xx TYPE string ##NEEDED. + METHODS constructor. +ENDCLASS. + +CLASS ltcl_test_app2 IMPLEMENTATION. + + METHOD constructor. + + ENDMETHOD. + +ENDCLASS. + +CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PRIVATE SECTION. + METHODS first_test FOR TESTING RAISING cx_static_check. + METHODS second_test FOR TESTING RAISING cx_static_check. + METHODS third_test FOR TESTING RAISING cx_static_check. + +ENDCLASS. + +CLASS z2ui5_cl_core_attri_srv DEFINITION LOCAL FRIENDS ltcl_test_search_attri. + +CLASS ltcl_test_search_attri IMPLEMENTATION. + + METHOD first_test. + + DATA(lo_app_client) = NEW ltcl_test_app2( ). + DATA lr_value TYPE REF TO data. + GET REFERENCE OF lo_app_client->mv_value INTO lr_value. + + DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( + r_ref = lr_value + o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value ) + ) ). + + DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( + attri = REF #( lt_attri ) + app = lo_app_client ). + + DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). + + IF lr_attri->r_ref <> lr_value. + cl_abap_unit_assert=>abort( ). + ENDIF. + + ENDMETHOD. + + METHOD second_test. + + DATA(lo_app_client) = NEW ltcl_test_app2( ). + DATA lr_value TYPE REF TO data. + GET REFERENCE OF lo_app_client->mv_value INTO lr_value. + + DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( + r_ref = REF #( lo_app_client->mv_value ) + o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value ) + ) ). + + DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( + attri = REF #( lt_attri ) + app = lo_app_client ). + + DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). + + IF lr_attri->r_ref <> lr_value. + cl_abap_unit_assert=>abort( ). + ENDIF. + + ENDMETHOD. + + METHOD third_test. + + DATA(lo_app_client) = NEW ltcl_test_app2( ). + DATA lr_value TYPE REF TO data. + GET REFERENCE OF lo_app_client->mv_value INTO lr_value. + + lo_app_client->mo_app = NEW #( ). + + DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( + ( name = `1` r_ref = REF #( lo_app_client->mr_value ) ) + ( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) ) + ( name = `2` r_ref = REF #( lo_app_client->mo_app ) ) + ( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ). + + DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ). + IF lr_attri->r_ref <> lr_value. + cl_abap_unit_assert=>abort( ). + ENDIF. + + ENDMETHOD. + + +ENDCLASS. diff --git a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap index d3bda9b8..fd61847f 100644 --- a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.abap @@ -1,17 +1,16 @@ CLASS z2ui5_cl_core_dissolve_srv DEFINITION PUBLIC FINAL - CREATE PUBLIC. + CREATE PUBLIC . PUBLIC SECTION. METHODS constructor IMPORTING - attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri - app TYPE REF TO object. - - METHODS main. + !attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri + !app TYPE REF TO object. + METHODS main . PROTECTED SECTION. DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri. @@ -47,7 +46,7 @@ ENDCLASS. -CLASS z2ui5_cl_core_dissolve_srv IMPLEMENTATION. +CLASS Z2UI5_CL_CORE_DISSOLVE_SRV IMPLEMENTATION. METHOD constructor. diff --git a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.testclasses.abap b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.testclasses.abap new file mode 100644 index 00000000..cd0b8f2e --- /dev/null +++ b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.testclasses.abap @@ -0,0 +1,146 @@ +CLASS ltcl_test_dissolve DEFINITION DEFERRED. +CLASS z2ui5_cl_core_dissolve_srv DEFINITION LOCAL FRIENDS ltcl_test_dissolve. + +CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PUBLIC SECTION. + + TYPES: + BEGIN OF s_01, + input TYPE string, + BEGIN OF s_02, + input TYPE string, + BEGIN OF s_03, + input TYPE string, + BEGIN OF s_04, + input TYPE string, + END OF s_04, + END OF s_03, + END OF s_02, + END OF s_01. + + DATA ms_struc TYPE s_01 ##NEEDED. + DATA mv_value TYPE string ##NEEDED. + DATA mr_value TYPE REF TO data. + DATA mr_struc TYPE REF TO s_01. + DATA mo_app TYPE REF TO ltcl_test_dissolve. + + PRIVATE SECTION. + METHODS test_dissolve_init FOR TESTING RAISING cx_static_check. + METHODS test_dissolve_struc FOR TESTING RAISING cx_static_check. + METHODS test_dissolve_dref FOR TESTING RAISING cx_static_check. + METHODS test_dissolve_oref FOR TESTING RAISING cx_static_check. + METHODS test_ref FOR TESTING RAISING cx_static_check. + +ENDCLASS. + +CLASS ltcl_test_dissolve IMPLEMENTATION. + + + METHOD test_ref. + + DATA(lo_app) = NEW ltcl_test_dissolve( ). + + DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv( + attri = REF #( lt_attri ) + app = lo_app ). + + lo_model->main( ). + + DATA(ls_attri) = lt_attri[ name = `MV_VALUE` ]. + GET REFERENCE OF lo_app->mv_value INTO DATA(lr_ref). + + IF ls_attri-r_ref <> lr_ref. + cl_abap_unit_assert=>abort( ). + ENDIF. + + ENDMETHOD. + + METHOD test_dissolve_init. + + DATA(lo_app) = NEW ltcl_test_dissolve( ). + + DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv( + attri = REF #( lt_attri ) + app = lo_app ). + + lo_model->main( ). + lo_model->main( ). + lo_model->main( ). + + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MV_VALUE` ] OPTIONAL ) ). + + ENDMETHOD. + + METHOD test_dissolve_dref. + + DATA(lo_app) = NEW ltcl_test_dissolve( ). + CREATE DATA lo_app->mr_struc. + CREATE DATA lo_app->mr_value TYPE string. + + DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv( + attri = REF #( lt_attri ) + app = lo_app ). + + lo_model->main( ). + lo_model->main( ). + + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE->*` ] OPTIONAL ) ). + + ENDMETHOD. + + METHOD test_dissolve_oref. + + DATA(lo_app) = NEW ltcl_test_dissolve( ). + lo_app->mo_app = NEW #( ). + DATA(lo_app2) = NEW ltcl_test_dissolve( ). + lo_app2->mo_app = lo_app. + + CREATE DATA lo_app->mo_app->mr_struc. + CREATE DATA lo_app->mo_app->mr_value TYPE string. + + DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv( + attri = REF #( lt_attri ) + app = lo_app2 ). + + lo_model->main( ). + lo_model->main( ). + lo_model->main( ). + + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MV_VALUE` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC` ] OPTIONAL ) ). + + ENDMETHOD. + + METHOD test_dissolve_struc. + + DATA(lo_app) = NEW ltcl_test_dissolve( ). + DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA(lo_model) = NEW z2ui5_cl_core_dissolve_srv( + attri = REF #( lt_attri ) + app = lo_app ). + + lo_model->main( ). + lo_model->main( ). + lo_model->main( ). + lo_model->main( ). + lo_model->main( ). + + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-INPUT` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-INPUT` ] OPTIONAL ) ). + cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-S_03-S_04-INPUT` ] OPTIONAL ) ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.xml b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.xml index 6778a860..a9b2619f 100644 --- a/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.xml +++ b/src/01/02/01/z2ui5_cl_core_dissolve_srv.clas.xml @@ -10,6 +10,7 @@ X X X + X diff --git a/src/01/02/01/z2ui5_cl_core_draft_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_draft_srv.clas.abap index cd7ec623..7c9754df 100644 --- a/src/01/02/01/z2ui5_cl_core_draft_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_draft_srv.clas.abap @@ -59,6 +59,8 @@ CLASS z2ui5_cl_core_draft_srv IMPLEMENTATION. METHOD create. + ASSERT draft-id IS NOT INITIAL. + DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db( id = draft-id id_prev = draft-id_prev diff --git a/src/01/02/01/z2ui5_cl_core_draft_srv.clas.testclasses.abap b/src/01/02/01/z2ui5_cl_core_draft_srv.clas.testclasses.abap index e14f4aa1..20514f11 100644 --- a/src/01/02/01/z2ui5_cl_core_draft_srv.clas.testclasses.abap +++ b/src/01/02/01/z2ui5_cl_core_draft_srv.clas.testclasses.abap @@ -1,21 +1,37 @@ -CLASS ltcl_test_db DEFINITION FINAL FOR TESTING +CLASS ltcl_test DEFINITION FINAL FOR TESTING DURATION LONG - RISK LEVEL DANGEROUS. + RISK LEVEL HARMLESS. PUBLIC SECTION. - INTERFACES z2ui5_if_app. - DATA mr_data TYPE REF TO data ##NEEDED. + METHODS constructor. + METHODS test_create FOR TESTING. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. -CLASS ltcl_test_db IMPLEMENTATION. +CLASS ltcl_test IMPLEMENTATION. + METHOD constructor. - METHOD z2ui5_if_app~main. + ENDMETHOD. + + METHOD test_create. + + DATA(lo_draft) = NEW z2ui5_cl_core_draft_srv( ). + + lo_draft->create( + draft = VALUE #( id = `TEST_ID` ) + model_xml = `my xml` + ). + + DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ). + + cl_abap_unit_assert=>assert_equals( + act = ls_db-data + exp = `my xml` ). ENDMETHOD. diff --git a/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap b/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap index 19046f43..c769a71f 100644 --- a/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap +++ b/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap @@ -18,3 +18,52 @@ CLASS ltcl_test IMPLEMENTATION. ENDMETHOD. ENDCLASS. + +CLASS ltcl_test_db DEFINITION FINAL FOR TESTING + DURATION LONG + RISK LEVEL HARMLESS. + + PUBLIC SECTION. + + DATA mv_value TYPE string. + INTERFACES z2ui5_if_app. + METHODS constructor. + + METHODS test_db_save FOR TESTING. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + +CLASS ltcl_test_db IMPLEMENTATION. + + METHOD constructor. + + ENDMETHOD. + + METHOD test_db_save. + + DATA(lo_app_user) = NEW ltcl_test_db( ). + lo_app_user->mv_value = `my value`. + + DATA(lo_app) = NEW z2ui5_cl_core_app( ). + lo_app->ms_draft-id = `TEST_ID`. + lo_app->mo_app = lo_app_user. + + lo_app->db_save( ). + + DATA(lo_app_db) = z2ui5_cl_core_app=>db_load( `TEST_ID` ). + DATA(lo_app_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ). + + cl_abap_unit_assert=>assert_equals( + act = lo_app_user_db->mv_value + exp = lo_app_user->mv_value ). + + ENDMETHOD. + + METHOD z2ui5_if_app~main. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/01/03/z2ui5_cl_core_app_info.clas.abap b/src/01/03/z2ui5_cl_core_app_info.clas.abap index 68d7d4d9..7916cb05 100644 --- a/src/01/03/z2ui5_cl_core_app_info.clas.abap +++ b/src/01/03/z2ui5_cl_core_app_info.clas.abap @@ -22,7 +22,6 @@ CLASS z2ui5_cl_core_app_info DEFINITION RETURNING VALUE(result) TYPE REF TO z2ui5_cl_core_app_info. - METHODS z2ui5_on_init. METHODS z2ui5_on_event. METHODS view_display_start. PROTECTED SECTION. @@ -121,7 +120,6 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION. IF mv_check_initialized = abap_false. mv_check_initialized = abap_true. - z2ui5_on_init( ). view_display_start( ). RETURN. ENDIF. @@ -132,7 +130,6 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION. ENDIF. z2ui5_on_event( ). -* view_display_start( ). ENDMETHOD. @@ -150,9 +147,4 @@ CLASS z2ui5_cl_core_app_info IMPLEMENTATION. ENDMETHOD. - - METHOD z2ui5_on_init. - - ENDMETHOD. - ENDCLASS. diff --git a/src/01/03/z2ui5_cl_core_app_startup.clas.abap b/src/01/03/z2ui5_cl_core_app_startup.clas.abap index 8f77ded7..ab977b2c 100644 --- a/src/01/03/z2ui5_cl_core_app_startup.clas.abap +++ b/src/01/03/z2ui5_cl_core_app_startup.clas.abap @@ -49,7 +49,6 @@ CLASS z2ui5_cl_core_app_startup IMPLEMENTATION. DATA li_app_test TYPE REF TO z2ui5_if_app. TRY. - ms_home-classname = z2ui5_cl_util=>c_trim_upper( ms_home-classname ). CREATE OBJECT li_app_test TYPE (ms_home-classname). @@ -79,19 +78,12 @@ CLASS z2ui5_cl_core_app_startup IMPLEMENTATION. DATA(page2) = z2ui5_cl_xml_view=>factory( )->shell( )->page( shownavbutton = abap_false ). - -* DATA(lv_url_info) = z2ui5_cl_util=>app_get_url( -* client = client -* classname = 'z2ui5_cl_core_app_info' ). - page2->header_content( )->text( )->title( `abap2UI5 - Developing UI5 Apps Purely in ABAP` )->toolbar_spacer( )->button( text = `System` icon = `sap-icon://information` press = client->_event( `OPEN_INFO` ) ). -* press = client->_event_client( val = client->cs_event-open_new_tab -* t_arg = VALUE #( ( lv_url_info ) ) ) ). DATA(simple_form2) = page2->simple_form( editable = abap_true diff --git a/src/02/03/z2ui5_cl_popup_to_select.clas.abap b/src/02/03/z2ui5_cl_popup_to_select.clas.abap index bfd66e2e..aa72f1f2 100644 --- a/src/02/03/z2ui5_cl_popup_to_select.clas.abap +++ b/src/02/03/z2ui5_cl_popup_to_select.clas.abap @@ -51,17 +51,14 @@ ENDCLASS. CLASS z2ui5_cl_popup_to_select IMPLEMENTATION. METHOD factory. - FIELD-SYMBOLS TYPE any. r_result = NEW #( ). r_result->title = i_title. r_result->sort_field = i_sort_field. r_result->descending = i_descending. - CREATE DATA r_result->mr_tab LIKE i_tab. - CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab. - ASSIGN r_result->mr_tab->* TO . - = i_tab. + r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ). + CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab. ENDMETHOD. @@ -181,9 +178,6 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION. CREATE DATA mr_tab_popup TYPE HANDLE lo_tab_type. CREATE DATA mr_tab_popup_backup TYPE HANDLE lo_tab_type. - - - ASSIGN mr_tab_popup->* TO . ASSIGN mr_tab_popup_backup->* TO . LOOP AT ASSIGNING . @@ -223,9 +217,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION. CONTINUE. ENDIF. - ASSIGN ms_result-row->* TO . - IF check_table_line = abap_true. ASSIGN ('-TAB_LINE') TO . @@ -259,10 +251,7 @@ CLASS z2ui5_cl_popup_to_select IMPLEMENTATION. = . - DATA(lo_type) = cl_abap_structdescr=>describe_by_data( ). - DATA(lo_table) = CAST cl_abap_tabledescr( lo_type ). - DATA(lo_struct) = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ). - DATA(lt_comp) = lo_struct->get_components( ). + DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_struc( ). LOOP AT ASSIGNING . DATA(lv_check_continue) = abap_false. LOOP AT lt_comp INTO DATA(ls_comp).