From fd7d4771d86cbca5eb0c4bb6be284f7095247a41 Mon Sep 17 00:00:00 2001 From: marcushoepfner Date: Tue, 26 Jul 2022 14:54:42 +0200 Subject: [PATCH] started unit tests for intf deserialize (#5697) --- ..._abapgit_object_intf.clas.testclasses.abap | 269 +++++++++++++++++- 1 file changed, 267 insertions(+), 2 deletions(-) diff --git a/src/objects/zcl_abapgit_object_intf.clas.testclasses.abap b/src/objects/zcl_abapgit_object_intf.clas.testclasses.abap index 2e055c009..e1158a71b 100644 --- a/src/objects/zcl_abapgit_object_intf.clas.testclasses.abap +++ b/src/objects/zcl_abapgit_object_intf.clas.testclasses.abap @@ -1,4 +1,270 @@ -*"* use this source file for your ABAP unit test classes +CLASS ltcl_unit_test DEFINITION DEFERRED. +CLASS zcl_abapgit_object_intf DEFINITION LOCAL FRIENDS ltcl_unit_test. + +CLASS lth_oo_object_fnc DEFINITION FINAL FOR TESTING. + + PUBLIC SECTION. + INTERFACES zif_abapgit_oo_object_fnc. + + DATA: + mv_create_package TYPE devclass, + ms_create_vseointerf TYPE vseointerf, + ms_deserialize_key TYPE seoclskey, + mt_deserialize_source TYPE zif_abapgit_definitions=>ty_string_tt, + ms_descriptions_key TYPE seoclskey, + mt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt, + ms_activation_item TYPE zif_abapgit_definitions=>ty_item, + mt_docu_lines TYPE tlinetab, + mv_docu_id TYPE dokhl-id, + mv_docu_object_name TYPE dokhl-object, + mv_docu_langu TYPE spras. +ENDCLASS. + +CLASS lth_oo_object_fnc IMPLEMENTATION. + + METHOD zif_abapgit_oo_object_fnc~add_to_activation_list. + ms_activation_item = is_item. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create. + mv_create_package = iv_package. + ms_create_vseointerf = cg_properties. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create_documentation. + mt_docu_lines = it_lines. + mv_docu_id = iv_id. + mv_docu_object_name = iv_object_name. + mv_docu_langu = iv_language. + + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~create_sotr. + ENDMETHOD. + METHOD zif_abapgit_oo_object_fnc~delete. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~delete_documentation. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~deserialize_source. + ms_deserialize_key = is_key. + mt_deserialize_source = it_source. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~exists. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~generate_locals. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_class_properties. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_includes. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_interface_properties. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~get_skip_test_classes. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~insert_text_pool. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_attributes. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_descriptions. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_documentation. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_sotr. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_superclass. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~read_text_pool. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~serialize_abap. + ENDMETHOD. + + METHOD zif_abapgit_oo_object_fnc~update_descriptions. + ms_descriptions_key = is_key. + mt_descriptions = it_descriptions. + ENDMETHOD. + +ENDCLASS. + + +CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. + + PRIVATE SECTION. + DATA: + mo_cut TYPE REF TO zif_abapgit_object, + mo_log TYPE REF TO zcl_abapgit_log, + mo_object_fnc TYPE REF TO lth_oo_object_fnc, + ms_item TYPE zif_abapgit_definitions=>ty_item. + + METHODS: + setup, + + get_xml + RETURNING VALUE(rv_xml) TYPE string, + get_source + RETURNING VALUE(rt_source) TYPE rswsourcet, + + deserializes FOR TESTING RAISING cx_static_check. +ENDCLASS. + +CLASS ltcl_unit_test IMPLEMENTATION. + + METHOD setup. + DATA lo_cut TYPE REF TO zcl_abapgit_object_intf. + + ms_item-obj_name = 'ZIF_ABAPGIT_TEST_INTF'. + ms_item-obj_type = 'INTF'. + + CREATE OBJECT lo_cut + EXPORTING + is_item = ms_item + iv_language = 'E'. + + CREATE OBJECT lo_cut->zif_abapgit_object~mo_files + EXPORTING + is_item = ms_item. + + CREATE OBJECT mo_log. + + CREATE OBJECT mo_object_fnc. + lo_cut->mi_object_oriented_object_fct = mo_object_fnc. + + mo_cut = lo_cut. + + ENDMETHOD. + + METHOD deserializes. + DATA lo_xmlin TYPE REF TO zcl_abapgit_xml_input. + DATA ls_expected_vseointerf TYPE vseointerf. + DATA ls_expected_clskey TYPE seoclskey. + DATA ls_expected_description TYPE seocompotx. + DATA lt_expected_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt. + DATA ls_expected_docu_line TYPE tline. + DATA lt_expected_docu_lines TYPE tlinetab. + + CREATE OBJECT lo_xmlin TYPE zcl_abapgit_xml_input + EXPORTING + iv_xml = get_xml( ). + + mo_cut->mo_files->add_abap( get_source( ) ). + + mo_cut->deserialize( + iv_package = 'MY_PACKAGE' + io_xml = lo_xmlin + iv_step = zif_abapgit_object=>gc_step_id-abap + ii_log = mo_log + iv_transport = 'XXX12345678' ). + + + cl_abap_unit_assert=>assert_equals( exp = 'MY_PACKAGE' + act = mo_object_fnc->mv_create_package ). + + ls_expected_vseointerf-clsname = 'ZIF_ABAPGIT_TEST_INTF'. + ls_expected_vseointerf-langu = 'E'. + ls_expected_vseointerf-descript = 'Test interface for abap git'. + ls_expected_vseointerf-exposure = '2'. + ls_expected_vseointerf-state = '1'. + ls_expected_vseointerf-unicode = 'X'. + cl_abap_unit_assert=>assert_equals( exp = ls_expected_vseointerf + act = mo_object_fnc->ms_create_vseointerf ). + + ls_expected_clskey-clsname = 'ZIF_ABAPGIT_TEST_INTF'. + cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey + act = mo_object_fnc->ms_deserialize_key ). + cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey + act = mo_object_fnc->ms_deserialize_key ). + + cl_abap_unit_assert=>assert_equals( exp = ls_expected_clskey + act = mo_object_fnc->ms_descriptions_key ). + ls_expected_description-clsname = 'ZIF_ABAPGIT_TEST_INTF'. + ls_expected_description-cmpname = 'ONE_METHOD'. + ls_expected_description-langu = 'E'. + ls_expected_description-descript = 'Method One, one, one, one, ...'. + APPEND ls_expected_description TO lt_expected_descriptions. + cl_abap_unit_assert=>assert_equals( exp = lt_expected_descriptions + act = mo_object_fnc->mt_descriptions ). + cl_abap_unit_assert=>assert_equals( exp = ms_item + act = mo_object_fnc->ms_activation_item ). + + ls_expected_docu_line-tdformat = 'U1'. + ls_expected_docu_line-tdline = '&MEANING&'. + APPEND ls_expected_docu_line TO lt_expected_docu_lines. + ls_expected_docu_line-tdformat = 'AS'. + ls_expected_docu_line-tdline = 'Interface for abap git unit tests.'. + APPEND ls_expected_docu_line TO lt_expected_docu_lines. + cl_abap_unit_assert=>assert_equals( exp = lt_expected_docu_lines + act = mo_object_fnc->mt_docu_lines ). + cl_abap_unit_assert=>assert_equals( exp = 'IF' + act = mo_object_fnc->mv_docu_id ). + cl_abap_unit_assert=>assert_equals( exp = 'E' + act = mo_object_fnc->mv_docu_langu ). + cl_abap_unit_assert=>assert_equals( exp = 'ZIF_ABAPGIT_TEST_INTF' + act = mo_object_fnc->mv_docu_object_name ). + ENDMETHOD. + + METHOD get_xml. + rv_xml = + '' && + ' ' && + ' ' && + ' ' && + ' ZIF_ABAPGIT_TEST_INTF' && + ' E' && + ' Test interface for abap git' && + ' 2' && + ' 1' && + ' X' && + ' ' && + ' ' && + ' ' && + ' ZIF_ABAPGIT_TEST_INTF' && + ' ONE_METHOD' && + ' E' && + ' Method One, one, one, one, ...' && + ' ' && + ' ' && + ' ' && + ' ' && + ' U1' && + ' &MEANING&' && + ' ' && + ' ' && + ' AS' && + ' Interface for abap git unit tests.' && + ' ' && + ' ' && + ' ' && + ' ' && + ''. + ENDMETHOD. + + METHOD get_source. + APPEND 'interface zif_abapgit_test_intf' TO rt_source. + APPEND ' public.' TO rt_source. + APPEND ' methods:' TO rt_source. + APPEND ' one_method' TO rt_source. + APPEND ' returning value(rv_value) type string.' TO rt_source. + APPEND '' TO rt_source. + APPEND 'endinterface.' TO rt_source. + ENDMETHOD. + +ENDCLASS. + CLASS ltcl_serialize DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. METHODS: @@ -79,5 +345,4 @@ CLASS ltcl_serialize IMPLEMENTATION. iv_json_b = lv_expected ). cl_abap_unit_assert=>assert_true( lv_is_equal ). ENDMETHOD. - ENDCLASS.