mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Do the ABAP Language Version for the AFF objects (#6375)
Co-authored-by: Michael Schneider <micha.schneider@sap.com> Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
This commit is contained in:
parent
9d2bb4da0b
commit
90bcac39e8
|
@ -38,6 +38,14 @@ CLASS zcl_abapgit_object_common_aff DEFINITION
|
|||
RETURNING
|
||||
VALUE(rv_is_empty) TYPE abap_bool.
|
||||
|
||||
CLASS-METHODS remove_abap_language_version
|
||||
IMPORTING
|
||||
iv_json_as_xstring TYPE xstring
|
||||
RETURNING
|
||||
VALUE(rv_json_as_xstring_wo_alv) TYPE xstring
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -260,9 +268,10 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
|
||||
CREATE OBJECT lo_settings TYPE ('CL_AFF_SETTINGS_DESERIALIZE')
|
||||
EXPORTING
|
||||
version = 'A'
|
||||
language = mv_language
|
||||
user = sy-uname.
|
||||
version = 'A'
|
||||
language = mv_language
|
||||
user = sy-uname
|
||||
abap_language_version = ms_item-abap_language_version.
|
||||
|
||||
CREATE OBJECT lo_object_json_file TYPE ('CL_AFF_FILE')
|
||||
EXPORTING
|
||||
|
@ -372,11 +381,11 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~exists.
|
||||
DATA: lr_intf_aff_obj TYPE REF TO data,
|
||||
lo_object_handler TYPE REF TO object,
|
||||
lo_object_aff TYPE REF TO object,
|
||||
lv_name TYPE c LENGTH 120,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
DATA: lr_intf_aff_obj TYPE REF TO data,
|
||||
lo_object_handler TYPE REF TO object,
|
||||
lo_object_aff TYPE REF TO object,
|
||||
lv_name TYPE c LENGTH 120,
|
||||
lx_error TYPE REF TO cx_root.
|
||||
|
||||
FIELD-SYMBOLS: <ls_intf_aff_obj> TYPE any.
|
||||
|
||||
|
@ -463,26 +472,26 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
|
||||
DATA: lr_intf_aff_obj TYPE REF TO data,
|
||||
lr_intf_aff_log TYPE REF TO data,
|
||||
lr_intf_aff_settings TYPE REF TO data,
|
||||
lr_messages TYPE REF TO data,
|
||||
lo_object_handler TYPE REF TO object,
|
||||
lo_object_aff TYPE REF TO object,
|
||||
lo_object_json_file TYPE REF TO object,
|
||||
lo_files_container TYPE REF TO object,
|
||||
lo_settings TYPE REF TO object,
|
||||
lo_aff_log TYPE REF TO object,
|
||||
lo_aff_factory TYPE REF TO object,
|
||||
lo_object_file TYPE REF TO object,
|
||||
lv_json_as_xstring TYPE xstring,
|
||||
lx_exception TYPE REF TO cx_root,
|
||||
lv_name TYPE c LENGTH 120,
|
||||
lv_file_name TYPE string,
|
||||
lo_file_name_mapper TYPE REF TO object,
|
||||
ls_additional_extensions TYPE ty_extension_mapper_pairs,
|
||||
lv_file_as_xstring TYPE xstring.
|
||||
DATA: lr_intf_aff_obj TYPE REF TO data,
|
||||
lr_intf_aff_log TYPE REF TO data,
|
||||
lr_intf_aff_settings TYPE REF TO data,
|
||||
lr_messages TYPE REF TO data,
|
||||
lo_object_handler TYPE REF TO object,
|
||||
lo_object_aff TYPE REF TO object,
|
||||
lo_object_json_file TYPE REF TO object,
|
||||
lo_files_container TYPE REF TO object,
|
||||
lo_settings TYPE REF TO object,
|
||||
lo_aff_log TYPE REF TO object,
|
||||
lo_aff_factory TYPE REF TO object,
|
||||
lo_object_file TYPE REF TO object,
|
||||
lv_json_as_xstring TYPE xstring,
|
||||
lv_json_as_xstring_wo_alv TYPE xstring,
|
||||
lx_exception TYPE REF TO cx_root,
|
||||
lv_name TYPE c LENGTH 120,
|
||||
lv_file_name TYPE string,
|
||||
lo_file_name_mapper TYPE REF TO object,
|
||||
ls_additional_extensions TYPE ty_extension_mapper_pairs,
|
||||
lv_file_as_xstring TYPE xstring.
|
||||
|
||||
FIELD-SYMBOLS: <ls_intf_aff_obj> TYPE any,
|
||||
<ls_intf_aff_log> TYPE any,
|
||||
|
@ -579,9 +588,11 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
RECEIVING
|
||||
result = lv_json_as_xstring.
|
||||
|
||||
lv_json_as_xstring_wo_alv = remove_abap_language_version( lv_json_as_xstring ).
|
||||
|
||||
zif_abapgit_object~mo_files->add_raw(
|
||||
iv_ext = 'json'
|
||||
iv_data = lv_json_as_xstring ).
|
||||
iv_data = lv_json_as_xstring_wo_alv ).
|
||||
|
||||
ls_additional_extensions = get_additional_extensions( ).
|
||||
|
||||
|
@ -612,6 +623,27 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION.
|
|||
CATCH cx_root INTO lx_exception.
|
||||
zcx_abapgit_exception=>raise_with_text( lx_exception ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD remove_abap_language_version.
|
||||
DATA lv_json TYPE string.
|
||||
DATA lv_json_wo_alv TYPE string.
|
||||
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lv_json = zcl_abapgit_convert=>xstring_to_string_utf8( iv_data = iv_json_as_xstring ).
|
||||
|
||||
TRY.
|
||||
li_json = zcl_abapgit_ajson=>parse( iv_json = lv_json
|
||||
iv_keep_item_order = abap_true ).
|
||||
li_json->delete( '/header/abapLanguageVersion' ).
|
||||
lv_json_wo_alv = li_json->stringify( iv_indent = 2 ).
|
||||
|
||||
rv_json_as_xstring_wo_alv = zcl_abapgit_convert=>string_to_xstring_utf8( lv_json_wo_alv ).
|
||||
|
||||
CATCH zcx_abapgit_ajson_error.
|
||||
rv_json_as_xstring_wo_alv = iv_json_as_xstring.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
CLASS ltcl_remove_abap_lang_version DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS assert_abap_lang_vers_removed
|
||||
IMPORTING
|
||||
iv_json TYPE string
|
||||
iv_json_exp TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS at_end_of_header FOR TESTING RAISING zcx_abapgit_exception.
|
||||
METHODS no_abap_lang_vers_in_header FOR TESTING RAISING cx_static_check.
|
||||
METHODS at_begin_of_header FOR TESTING RAISING cx_static_check.
|
||||
METHODS only_abap_lang_vers_in_header FOR TESTING RAISING cx_static_check.
|
||||
METHODS other_abap_lang_vers_fld FOR TESTING RAISING cx_static_check.
|
||||
METHODS only_other_abap_lang_vers_fld FOR TESTING RAISING cx_static_check.
|
||||
METHODS keep_item_order FOR TESTING RAISING cx_static_check.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS zcl_abapgit_object_common_aff DEFINITION LOCAL FRIENDS ltcl_remove_abap_lang_version.
|
||||
CLASS ltcl_remove_abap_lang_version IMPLEMENTATION.
|
||||
|
||||
METHOD assert_abap_lang_vers_removed.
|
||||
DATA lv_json_act TYPE string.
|
||||
DATA lv_json_x TYPE xstring.
|
||||
DATA lv_json_act_x TYPE xstring.
|
||||
|
||||
lv_json_x = zcl_abapgit_convert=>string_to_xstring_utf8( iv_json ).
|
||||
|
||||
lv_json_act_x = zcl_abapgit_object_common_aff=>remove_abap_language_version( lv_json_x ).
|
||||
|
||||
lv_json_act = zcl_abapgit_convert=>xstring_to_string_utf8( lv_json_act_x ).
|
||||
cl_abap_unit_assert=>assert_equals( act = lv_json_act
|
||||
exp = iv_json_exp ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD at_end_of_header.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en",\n| &
|
||||
| "abapLanguageVersion": "cloudDevelopment"\n| &
|
||||
| \}\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \}\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD no_abap_lang_vers_in_header.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \}\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \}\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD at_begin_of_header.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "abapLanguageVersion": "cloudDevelopment",\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \}\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \}\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD only_abap_lang_vers_in_header.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "abapLanguageVersion": "cloudDevelopment"\n| &
|
||||
| \}\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\}\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD other_abap_lang_vers_fld.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en",\n| &
|
||||
| "abapLanguageVersion": "cloudDevelopment"\n| &
|
||||
| \},\n| &
|
||||
| "abapLanguageVersion": "someOtherConent"\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \},\n| &
|
||||
| "abapLanguageVersion": "someOtherConent"\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD only_other_abap_lang_vers_fld.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \},\n| &
|
||||
| "abapLanguageVersion": "someOtherConent"\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "formatVersion": "1",\n| &
|
||||
| "header": \{\n| &
|
||||
| "description": "Category",\n| &
|
||||
| "originalLanguage": "en"\n| &
|
||||
| \},\n| &
|
||||
| "abapLanguageVersion": "someOtherConent"\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD keep_item_order.
|
||||
assert_abap_lang_vers_removed(
|
||||
iv_json = |\{\n| &
|
||||
| "c": "firstField",\n| &
|
||||
| "b": \{\n| &
|
||||
| "z": "firstFieldInObject",\n| &
|
||||
| "y": "secondFieldInObject"\n| &
|
||||
| \},\n| &
|
||||
| "a": "lastField"\n| &
|
||||
|\}|
|
||||
iv_json_exp = |\{\n| &
|
||||
| "c": "firstField",\n| &
|
||||
| "b": \{\n| &
|
||||
| "z": "firstFieldInObject",\n| &
|
||||
| "y": "secondFieldInObject"\n| &
|
||||
| \},\n| &
|
||||
| "a": "lastField"\n| &
|
||||
|\}| ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
Loading…
Reference in New Issue
Block a user