mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 13:03:01 +08:00

* Fix use of sy-langu in object serializers - Replace sy-langu variable with mv_language - Replace sy-langu type with langu (makes it easier to spot sy-langu) - Enhance generic serializer to use mv_language - Add unit tests to generic serializer - Adjust and simplify serializers that are based on generic class Closes #2080 * Update scvi+ueno * Revert scvi * Langu * Langu * Langu * Langu * Langu Co-authored-by: Lars Hvam <larshp@hotmail.com>
229 lines
6.2 KiB
ABAP
229 lines
6.2 KiB
ABAP
CLASS ltcl_test DEFINITION DEFERRED.
|
|
CLASS zcl_abapgit_objects_generic DEFINITION LOCAL FRIENDS ltcl_test.
|
|
CLASS ltcl_test DEFINITION FOR TESTING
|
|
DURATION SHORT
|
|
RISK LEVEL HARMLESS FINAL.
|
|
|
|
PRIVATE SECTION.
|
|
METHODS:
|
|
serialize FOR TESTING RAISING zcx_abapgit_exception,
|
|
get_primary_table FOR TESTING RAISING zcx_abapgit_exception,
|
|
get_key_fields FOR TESTING RAISING zcx_abapgit_exception,
|
|
get_where_clause FOR TESTING RAISING zcx_abapgit_exception,
|
|
distribute_name_to_components FOR TESTING RAISING zcx_abapgit_exception,
|
|
split_value_to_keys FOR TESTING RAISING zcx_abapgit_exception.
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltcl_test IMPLEMENTATION.
|
|
|
|
METHOD serialize.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
li_xml TYPE REF TO zif_abapgit_xml_output,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'ASFC'.
|
|
ls_item-obj_name = 'SAP_AS_TEST_001'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item.
|
|
|
|
CREATE OBJECT li_xml TYPE zcl_abapgit_xml_output.
|
|
|
|
lo_cut->serialize( li_xml ).
|
|
* checks that it does not dump
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_primary_table.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'ACGR'.
|
|
ls_item-obj_name = 'SAP_BC_BASIS_ADMIN'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item
|
|
iv_language = zif_abapgit_definitions=>c_english.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'AGR_DEFINE'
|
|
act = lo_cut->get_primary_table( ) ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_key_fields.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
|
ls_keys TYPE dfies,
|
|
lt_key_fields TYPE ddfields.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'ACGR'.
|
|
ls_item-obj_name = 'SAP_BC_BASIS_ADMIN'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item
|
|
iv_language = zif_abapgit_definitions=>c_english.
|
|
|
|
lt_key_fields = lo_cut->get_key_fields( 'AGR_HIER' ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 3
|
|
act = lines( lt_key_fields ) ).
|
|
|
|
READ TABLE lt_key_fields INTO ls_keys INDEX 3.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'OBJECT_ID'
|
|
act = ls_keys-fieldname ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD get_where_clause.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'NSPC'.
|
|
ls_item-obj_name = '/BIC/'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item
|
|
iv_language = zif_abapgit_definitions=>c_english.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = `NAMESPACE = '/BIC/'`
|
|
act = lo_cut->get_where_clause( 'TRNSPACET' ) ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = `NAMESPACE = '/BIC/' AND SPRAS = 'E'`
|
|
act = lo_cut->get_where_clause( 'TRNSPACETT' ) ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD distribute_name_to_components.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
|
lt_objkey TYPE zcl_abapgit_objects_generic=>ty_t_objkey,
|
|
ls_objkey LIKE LINE OF lt_objkey,
|
|
lv_non_value_pos TYPE numc3,
|
|
lt_key_fields TYPE ddfields.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'WDCC'.
|
|
ls_item-obj_name = 'WDR_CHIP_TEST'.
|
|
ls_item-obj_name+32 = '09'.
|
|
ls_item-obj_name+34 = 'TEST'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item
|
|
iv_language = zif_abapgit_definitions=>c_english.
|
|
|
|
lt_key_fields = lo_cut->get_key_fields( 'WDY_CONFIG_DATA' ).
|
|
|
|
lv_non_value_pos = '001'.
|
|
ls_objkey-num = '001'.
|
|
ls_objkey-value = ls_item-obj_name.
|
|
|
|
lo_cut->distribute_name_to_components(
|
|
EXPORTING
|
|
it_key_component = lt_key_fields
|
|
CHANGING
|
|
ct_objkey = lt_objkey
|
|
cs_objkey = ls_objkey
|
|
cv_non_value_pos = lv_non_value_pos ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 3
|
|
act = lines( lt_objkey ) ).
|
|
|
|
READ TABLE lt_objkey INTO ls_objkey INDEX 2.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = '002'
|
|
act = ls_objkey-num ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = '09'
|
|
act = ls_objkey-value ).
|
|
|
|
READ TABLE lt_objkey INTO ls_objkey INDEX 3.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = '003'
|
|
act = ls_objkey-num ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'TEST'
|
|
act = ls_objkey-value ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD split_value_to_keys.
|
|
|
|
DATA: lo_cut TYPE REF TO zcl_abapgit_objects_generic,
|
|
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
|
lt_objkey TYPE zcl_abapgit_objects_generic=>ty_t_objkey,
|
|
ls_objkey LIKE LINE OF lt_objkey,
|
|
lv_non_value_pos TYPE numc3,
|
|
lt_key_fields TYPE ddfields.
|
|
|
|
* assumption: this object exists in all SAP systems
|
|
ls_item-obj_type = 'ASFC'.
|
|
ls_item-obj_name = 'SAP_AS_TEST_002'.
|
|
|
|
CREATE OBJECT lo_cut
|
|
EXPORTING
|
|
is_item = ls_item
|
|
iv_language = zif_abapgit_definitions=>c_english.
|
|
|
|
lt_key_fields = lo_cut->get_key_fields( 'AIND_STR4' ).
|
|
|
|
ls_objkey-num = '001'.
|
|
ls_objkey-value = ls_item-obj_name.
|
|
APPEND ls_objkey TO lt_objkey.
|
|
|
|
lv_non_value_pos = '002'.
|
|
ls_objkey-num = '002'.
|
|
ls_objkey-value = 'S0099'.
|
|
|
|
lo_cut->split_value_to_keys(
|
|
EXPORTING
|
|
it_key_component = lt_key_fields
|
|
CHANGING
|
|
ct_objkey = lt_objkey
|
|
cs_objkey = ls_objkey
|
|
cv_non_value_pos = lv_non_value_pos ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 3
|
|
act = lines( lt_objkey ) ).
|
|
|
|
READ TABLE lt_objkey INTO ls_objkey INDEX 3.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = '003'
|
|
act = ls_objkey-num ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = '0099'
|
|
act = ls_objkey-value ).
|
|
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|