diff --git a/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap b/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap index ef1eb9011..c7edd9ac9 100644 --- a/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap +++ b/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap @@ -77,10 +77,12 @@ CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS PRIVATE SECTION. " Cloud package hardcoded in cl_abap_language_version CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'. + CONSTANTS c_language_cfg TYPE seoclsname VALUE 'CL_ABAP_LANGUAGE_VERSION_CFG'. DATA: mt_versions TYPE string_table, mv_has_cloud_package TYPE abap_bool, + mv_has_language_cfg TYPE abap_bool, mo_environment TYPE REF TO lcl_environment, mi_persistency TYPE REF TO zif_abapgit_persist_settings, mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit, @@ -364,9 +366,11 @@ CLASS ltcl_abap_language_version IMPLEMENTATION. " Assume on-prem (no cloud) set_environment( abap_false ). - cl_abap_unit_assert=>assert_equals( - act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package - exp = iv_standard ). + IF mv_has_language_cfg = abap_true. + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package + exp = iv_standard ). + ENDIF. IF mv_has_cloud_package = abap_true. cl_abap_unit_assert=>assert_equals( @@ -381,9 +385,11 @@ CLASS ltcl_abap_language_version IMPLEMENTATION. " Assume cloud platform set_environment( abap_true ). - cl_abap_unit_assert=>assert_equals( - act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package - exp = iv_standard ). + IF mv_has_language_cfg = abap_true. + cl_abap_unit_assert=>assert_equals( + act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package + exp = iv_standard ). + ENDIF. IF mv_has_cloud_package = abap_true. cl_abap_unit_assert=>assert_equals( @@ -401,6 +407,19 @@ CLASS ltcl_abap_language_version IMPLEMENTATION. METHOD is_import_allowed. DATA lv_version TYPE string. + DATA ls_clskey TYPE seoclskey. + + ls_clskey-clsname = c_language_cfg. + + " Tests using ABAP language version "standard" only work if the required + " SAP class is available. In older releases, all packages will have + " ABAP language version "undefined" and are handled like a new package + CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK' + EXPORTING + clskey = ls_clskey + EXCEPTIONS + OTHERS = 1. + mv_has_language_cfg = boolc( sy-subrc = 0 ). LOOP AT mt_versions INTO lv_version. diff --git a/src/objects/core/zcl_abapgit_dependencies.clas.abap b/src/objects/core/zcl_abapgit_dependencies.clas.abap index eccdd37d1..2d76f2320 100644 --- a/src/objects/core/zcl_abapgit_dependencies.clas.abap +++ b/src/objects/core/zcl_abapgit_dependencies.clas.abap @@ -119,7 +119,7 @@ CLASS zcl_abapgit_dependencies IMPLEMENTATION. " AUTH after DCLS -korrnum = '715000'. WHEN 'SUSH'. - " SUSH after SUSC + " SUSH after SUSC and SRVB -korrnum = '712000'. WHEN 'SUSC'. " SUSC after SUSO @@ -130,6 +130,14 @@ CLASS zcl_abapgit_dependencies IMPLEMENTATION. WHEN 'DCLS'. " AUTH and SUSO after DCLS -korrnum = '705000'. + WHEN 'G4BA' OR 'G4BS' OR 'IWMO' OR 'IWSV' OR 'IWVB'. + " after SRVB + -korrnum = '610000'. + WHEN 'SRVB'. + " after SRVD + -korrnum = '600500'. + WHEN 'SRVD'. + -korrnum = '600000'. WHEN 'IASP'. -korrnum = '552000'. WHEN 'IARP'. diff --git a/src/objects/core/zcl_abapgit_file_deserialize.clas.abap b/src/objects/core/zcl_abapgit_file_deserialize.clas.abap index 52dc4b90e..242d9686f 100644 --- a/src/objects/core/zcl_abapgit_file_deserialize.clas.abap +++ b/src/objects/core/zcl_abapgit_file_deserialize.clas.abap @@ -245,6 +245,12 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION. WHEN 'ENSC'. lt_requires = lt_items. DELETE lt_requires WHERE obj_type <> 'ENHS'. + WHEN 'IWMO' OR 'IWSV' OR 'IWVB' OR 'SUSH'. + lt_requires = lt_items. + DELETE lt_requires WHERE obj_type <> 'SRVB'. + WHEN 'SRVB'. + lt_requires = lt_items. + DELETE lt_requires WHERE obj_type <> 'SRVD'. ENDCASE. * TODO: END extract to object handler method diff --git a/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap b/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap index ea1250fa5..43a72f230 100644 --- a/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap +++ b/src/objects/rules/zcl_abapgit_field_rules.clas.testclasses.abap @@ -37,10 +37,7 @@ CLASS ltcl_field_rules DEFINITION FOR TESTING RISK LEVEL HARMLESS RETURNING VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules, apply_clear_logic FOR TESTING, - apply_fill_logic FOR TESTING, - get_utc_timestamp - RETURNING - VALUE(rv_timestamp) TYPE timestamp. + apply_fill_logic FOR TESTING. ENDCLASS. @@ -88,7 +85,7 @@ CLASS ltcl_field_rules IMPLEMENTATION. METHOD fill3. DATA lv_timestamp TYPE timestamp. - lv_timestamp = get_utc_timestamp( ). + GET TIME STAMP FIELD lv_timestamp. fill_value( iv_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp iv_len = 10 @@ -205,6 +202,8 @@ CLASS ltcl_field_rules IMPLEMENTATION. lv_ts TYPE string, lv_timestamp TYPE timestamp. + GET TIME STAMP FIELD lv_timestamp. + ls_act-key = 1. INSERT ls_act INTO TABLE lt_act. ls_act-key = 2. @@ -241,17 +240,16 @@ CLASS ltcl_field_rules IMPLEMENTATION. act = ls_act-time(4) exp = sy-uzeit(4) ). " avoid comparing seconds - lv_timestamp = get_utc_timestamp( ). lv_ts = ls_act-ts. - lv_ts = lv_ts(12). + lv_ts = lv_ts(10). cl_abap_unit_assert=>assert_equals( act = lv_ts - exp = |{ lv_timestamp DIV 100 }| ). " avoid comparing second + exp = |{ lv_timestamp DIV 10000 }| ). " avoid comparing second lv_ts = ls_act-tl. - lv_ts = lv_ts(12). + lv_ts = lv_ts(10). cl_abap_unit_assert=>assert_equals( act = lv_ts - exp = |{ lv_timestamp DIV 100 }| ). " avoid comparing seconds + exp = |{ lv_timestamp DIV 10000 }| ). " avoid comparing seconds READ TABLE lt_act INTO ls_act INDEX 2. @@ -269,21 +267,4 @@ CLASS ltcl_field_rules IMPLEMENTATION. exp = sy-uzeit(4) ). " avoid comparing seconds ENDMETHOD. - - METHOD get_utc_timestamp. - DATA lv_syst_timezone TYPE timezone. - CALL FUNCTION 'GET_SYSTEM_TIMEZONE' - IMPORTING - timezone = lv_syst_timezone - EXCEPTIONS - customizing_missing = 1 - OTHERS = 2. - IF sy-subrc <> 0. - cl_abap_unit_assert=>fail( 'Could not get system timezone' ). - ENDIF. - - CONVERT DATE sy-datum TIME sy-uzeit - INTO TIME STAMP rv_timestamp - TIME ZONE lv_syst_timezone. - ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_srvb.clas.abap b/src/objects/zcl_abapgit_object_srvb.clas.abap index a76dbfa01..85c5ca8fe 100644 --- a/src/objects/zcl_abapgit_object_srvb.clas.abap +++ b/src/objects/zcl_abapgit_object_srvb.clas.abap @@ -129,6 +129,18 @@ CLASS zcl_abapgit_object_srvb IMPLEMENTATION. CHANGING cs_service_binding = cs_service_binding ). + clear_field( + EXPORTING + iv_fieldname = 'METADATA-RESPONSIBLE' + CHANGING + cs_service_binding = cs_service_binding ). + + clear_field( + EXPORTING + iv_fieldname = 'METADATA-MASTER_LANGUAGE' + CHANGING + cs_service_binding = cs_service_binding ). + ENDMETHOD. diff --git a/src/utils/zcl_abapgit_convert.clas.testclasses.abap b/src/utils/zcl_abapgit_convert.clas.testclasses.abap index 97b82ee10..2ee5633a2 100644 --- a/src/utils/zcl_abapgit_convert.clas.testclasses.abap +++ b/src/utils/zcl_abapgit_convert.clas.testclasses.abap @@ -331,12 +331,15 @@ CLASS ltcl_bcp47_to_sap1 IMPLEMENTATION. DATA lv_result TYPE sy-langu. lv_result = zcl_abapgit_convert=>language_bcp47_to_sap1( im_from ). - cl_abap_unit_assert=>assert_equals( exp = im_to - act = lv_result ). + cl_abap_unit_assert=>assert_equals( + exp = im_to + act = lv_result + msg = |Converting "{ im_from }" should result in "{ im_to }"| ). ENDMETHOD. METHOD assert_bcp47_to_sap1_fail. DATA lv_result TYPE string. + DATA lv_act TYPE sy-subrc. zcl_abapgit_convert=>language_bcp47_to_sap1( EXPORTING @@ -345,10 +348,15 @@ CLASS ltcl_bcp47_to_sap1 IMPLEMENTATION. re_lang_sap1 = lv_result EXCEPTIONS no_assignment = 1 - OTHERS = 2 ). + OTHERS = 2 ). - cl_abap_unit_assert=>assert_equals( exp = 1 - act = sy-subrc ). + " Assert itself might change sy-subrc (it does in 702!) + lv_act = sy-subrc. + + cl_abap_unit_assert=>assert_equals( + exp = 1 + act = lv_act + msg = |Converting "{ im_from }" should fail| ). ENDMETHOD. METHOD english. @@ -466,14 +474,18 @@ CLASS ltcl_sap1_to_bcp47 IMPLEMENTATION. METHOD assert_sap1_to_bcp47. DATA lv_result TYPE string. + lv_result = zcl_abapgit_convert=>language_sap1_to_bcp47( im_from ). - cl_abap_unit_assert=>assert_equals( exp = im_to - act = lv_result ). + cl_abap_unit_assert=>assert_equals( + exp = im_to + act = lv_result + msg = |Converting "{ im_from }" should result in "{ im_to }"| ). ENDMETHOD. METHOD assert_sap1_to_bcp47_fail. DATA lv_result TYPE string. + DATA lv_act TYPE sy-subrc. zcl_abapgit_convert=>language_sap1_to_bcp47( EXPORTING @@ -482,10 +494,15 @@ CLASS ltcl_sap1_to_bcp47 IMPLEMENTATION. re_lang_bcp47 = lv_result EXCEPTIONS no_assignment = 1 - OTHERS = 2 ). + OTHERS = 2 ). - cl_abap_unit_assert=>assert_equals( exp = 1 - act = sy-subrc ). + " Assert itself might change sy-subrc (it does in 702!) + lv_act = sy-subrc. + + cl_abap_unit_assert=>assert_equals( + exp = 1 + act = lv_act + msg = |Converting "{ im_from }" should fail| ). ENDMETHOD. METHOD english.