diff --git a/src/persist/zcl_abapgit_persist_settings.clas.testclasses.abap b/src/persist/zcl_abapgit_persist_settings.clas.testclasses.abap new file mode 100644 index 000000000..991a25e12 --- /dev/null +++ b/src/persist/zcl_abapgit_persist_settings.clas.testclasses.abap @@ -0,0 +1,177 @@ +*"* use this source file for your ABAP unit test classes + +CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL DANGEROUS. + + PRIVATE SECTION. + CLASS-METHODS: + class_setup. + + METHODS: + setup, + clear_settings_database, + "Proxy + modify_settings_proxy_url FOR TESTING RAISING cx_static_check, + modify_settings_proxy_port FOR TESTING RAISING cx_static_check, + read_proxy_settings FOR TESTING RAISING cx_static_check, + read_not_found_url FOR TESTING RAISING cx_static_check, + read_not_found_port FOR TESTING RAISING cx_static_check, + "Run critical tests + modify_run_critical_tests FOR TESTING RAISING cx_static_check, + read_run_critical_tests FOR TESTING RAISING cx_static_check, + read_not_found_critical_tests FOR TESTING RAISING cx_static_check. + DATA: + mo_persistence_settings TYPE REF TO zcl_abapgit_persist_settings, + mo_settings TYPE REF TO zcl_abapgit_settings. +ENDCLASS. + +CLASS ltcl_persistence_settings IMPLEMENTATION. + + METHOD class_setup. + "Objects will be created and deleted, do not run in customer system! + "These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open) + IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_run_critical_tests( ) = abap_false. + cl_abap_unit_assert=>fail( + msg = 'Cancelled. You can enable these tests at the Settings page' + level = if_aunit_constants=>tolerable ). + ENDIF. + ENDMETHOD. + + METHOD setup. + mo_persistence_settings = zcl_abapgit_persist_settings=>get_instance( ). + CREATE OBJECT mo_settings. + clear_settings_database( ). + ENDMETHOD. + + METHOD modify_settings_proxy_url. + DATA lv_proxy_url TYPE string. + + mo_settings->set_proxy_url( 'http://proxy' ). + + mo_persistence_settings->modify( mo_settings ). + + lv_proxy_url = zcl_abapgit_persistence_db=>get_instance( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_proxy_url + exp = 'http://proxy' ). + ENDMETHOD. + + METHOD modify_settings_proxy_port. + DATA lv_proxy_port TYPE string. + mo_settings->set_proxy_port( '8080' ). + + mo_persistence_settings->modify( mo_settings ). + + lv_proxy_port = zcl_abapgit_persistence_db=>get_instance( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_proxy_port + exp = '8080' ). + ENDMETHOD. + + METHOD read_proxy_settings. + zcl_abapgit_persistence_db=>get_instance( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + iv_data = 'A_URL' ). + + zcl_abapgit_persistence_db=>get_instance( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' + iv_data = '1000' ). + + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_url( ) + exp = 'A_URL' ). + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_port( ) + exp = '1000' ). + ENDMETHOD. + + METHOD read_not_found_port. + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_port( ) + exp = '' ). + ENDMETHOD. + + METHOD read_not_found_url. + + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_url( ) + exp = '' ). + ENDMETHOD. + + METHOD modify_run_critical_tests. + DATA lv_run_critical_tests TYPE abap_bool. + mo_settings->set_run_critical_tests( abap_true ). + + mo_persistence_settings->modify( mo_settings ). + + lv_run_critical_tests = zcl_abapgit_persistence_db=>get_instance( )->read( + iv_type = 'SETTINGS' + iv_value = 'CRIT_TESTS' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_run_critical_tests + exp = abap_true ). + ENDMETHOD. + + METHOD read_run_critical_tests. + zcl_abapgit_persistence_db=>get_instance( )->modify( + iv_type = 'SETTINGS' + iv_value = 'CRIT_TESTS' + iv_data = 'X' ). + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_run_critical_tests( ) + exp = abap_true ). + ENDMETHOD. + METHOD read_not_found_critical_tests. + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_run_critical_tests( ) + exp = abap_false ). + ENDMETHOD. + + + METHOD clear_settings_database. + + TRY. + zcl_abapgit_persistence_db=>get_instance( )->delete( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' ). + CATCH cx_static_check ##NO_HANDLER. + "If entry didn't exist, that's okay + ENDTRY. + TRY. + zcl_abapgit_persistence_db=>get_instance( )->delete( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' ). + CATCH cx_static_check ##NO_HANDLER. + "If entry didn't exist, that's okay + ENDTRY. + TRY. + zcl_abapgit_persistence_db=>get_instance( )->delete( + iv_type = 'SETTINGS' + iv_value = 'CRIT_TESTS' ). + CATCH cx_static_check ##NO_HANDLER. + "If entry didn't exist, that's okay + ENDTRY. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/persist/zcl_abapgit_persist_settings.clas.xml b/src/persist/zcl_abapgit_persist_settings.clas.xml index a79e19bc1..42f7fbf57 100644 --- a/src/persist/zcl_abapgit_persist_settings.clas.xml +++ b/src/persist/zcl_abapgit_persist_settings.clas.xml @@ -11,6 +11,7 @@ X X X + X diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 3933b1742..288adc6e2 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -41,6 +41,7 @@ INCLUDE zabapgit_authorizations_exit IF FOUND. INCLUDE zabapgit_user_exit IF FOUND. INCLUDE zabapgit_gui_pages_userexit IF FOUND. + INCLUDE zabapgit_unit_test. INCLUDE zabapgit_forms. diff --git a/src/zabapgit_unit_test.prog.abap b/src/zabapgit_unit_test.prog.abap index c101c4133..fbdca2614 100644 --- a/src/zabapgit_unit_test.prog.abap +++ b/src/zabapgit_unit_test.prog.abap @@ -5,371 +5,6 @@ * todo, should the tests be in the same include as the classes * they are testing? -CLASS ltcl_critical_tests DEFINITION FINAL FOR TESTING. - PUBLIC SECTION. - CLASS-METHODS: - check_run_permission. -ENDCLASS. - -CLASS ltcl_critical_tests IMPLEMENTATION. - - METHOD check_run_permission. - DATA: lo_settings TYPE REF TO zcl_abapgit_settings. - - lo_settings = zcl_abapgit_persist_settings=>get_instance( )->read( ). - - "Objects will be created and deleted, do not run in customer system! - "These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open) - - IF lo_settings->get_run_critical_tests( ) = abap_false. - cl_abap_unit_assert=>fail( - msg = 'Cancelled. You can enable these tests at the Settings page' - level = if_aunit_constants=>tolerable ). - ENDIF. - ENDMETHOD. - -ENDCLASS. - -*----------------------------------------------------------------------* -* CLASS ltcl_dangerous DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS ltcl_dangerous DEFINITION FOR TESTING RISK LEVEL CRITICAL DURATION LONG FINAL. -* if this test class does not run, parameters in transaction SAUNIT_CLIENT_SETUP -* might need to be adjusted - - PRIVATE SECTION. - - CLASS-METHODS: - class_setup. - - METHODS: - run FOR TESTING - RAISING zcx_abapgit_exception. - - CONSTANTS: c_package TYPE devclass VALUE '$ABAPGIT_UNIT_TEST'. - -ENDCLASS. "ltcl_dangerous DEFINITION - -*----------------------------------------------------------------------* -* CLASS ltcl_dangerous IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS ltcl_dangerous IMPLEMENTATION. - - METHOD class_setup. - ltcl_critical_tests=>check_run_permission( ). - ENDMETHOD. "class_setup - - METHOD run. - - DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online, - lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt, - lv_msg TYPE string, - lt_results TYPE zif_abapgit_definitions=>ty_results_tt, - lt_types TYPE zcl_abapgit_objects=>ty_types_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_results, - LIKE LINE OF lt_tadir, - LIKE LINE OF lt_types. - - - zcl_abapgit_sap_package=>create_local( c_package ). - - lt_types = zcl_abapgit_objects=>supported_list( ). - - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online( - iv_url = 'https://github.com/larshp/abapGit-Unit-Test.git' - iv_branch_name = 'refs/heads/master' - iv_package = c_package ). - lo_repo->status( ). - lo_repo->deserialize( ). - - lt_tadir = zcl_abapgit_tadir=>read( c_package ). - LOOP AT lt_types ASSIGNING . - READ TABLE lt_tadir WITH KEY object = TRANSPORTING NO FIELDS. - IF sy-subrc <> 0. - lv_msg = |Missing object type { }|. - cl_abap_unit_assert=>fail( - msg = lv_msg - level = if_aunit_constants=>tolerable - quit = if_aunit_constants=>no ). - ENDIF. - ENDLOOP. - - lt_results = lo_repo->status( ). - LOOP AT lt_results ASSIGNING WHERE match = abap_false. - lv_msg = |Does not match { -obj_type } { -obj_name }|. - cl_abap_unit_assert=>fail( - msg = lv_msg - quit = if_aunit_constants=>no ). - ENDLOOP. - - zcl_abapgit_objects=>delete( lt_tadir ). - lt_tadir = zcl_abapgit_tadir=>read( c_package ). - LOOP AT lt_tadir ASSIGNING . - lv_msg = |Not deleted properly { -object } { -obj_name }|. - cl_abap_unit_assert=>fail( - msg = lv_msg - quit = if_aunit_constants=>no ). - ENDLOOP. - - zcl_abapgit_repo_srv=>get_instance( )->delete( lo_repo ). - - COMMIT WORK. - - ENDMETHOD. "run - -ENDCLASS. "ltcl_dangerous IMPLEMENTATION - -*----------------------------------------------------------------------* -* CLASS ltcl_object_types DEFINITION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS ltcl_object_types DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. - - PRIVATE SECTION. - METHODS: - is_supported FOR TESTING, - not_exist FOR TESTING RAISING zcx_abapgit_exception. - -ENDCLASS. "ltcl_object_types DEFINITION - -*----------------------------------------------------------------------* -* CLASS ltcl_object_types IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS ltcl_object_types IMPLEMENTATION. - - METHOD is_supported. - - DATA: ls_item TYPE zif_abapgit_definitions=>ty_item, - lv_supported TYPE abap_bool, - lt_types TYPE zcl_abapgit_objects=>ty_types_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_types. - - - lt_types = zcl_abapgit_objects=>supported_list( ). - - LOOP AT lt_types ASSIGNING . - - CLEAR ls_item. - ls_item-obj_type = . - lv_supported = zcl_abapgit_objects=>is_supported( ls_item ). - - cl_abap_unit_assert=>assert_equals( - act = lv_supported - exp = abap_true - msg = ls_item-obj_type - quit = if_aunit_constants=>no ). - ENDLOOP. - - ENDMETHOD. "is_supported - - METHOD not_exist. - - DATA: ls_item TYPE zif_abapgit_definitions=>ty_item, - lv_exists TYPE abap_bool, - lt_types TYPE zcl_abapgit_objects=>ty_types_tt. - - FIELD-SYMBOLS: LIKE LINE OF lt_types. - - - lt_types = zcl_abapgit_objects=>supported_list( ). - - LOOP AT lt_types ASSIGNING . - CLEAR ls_item. - ls_item-obj_name = 'ZABAPGIT_FOOBAR'. - ls_item-obj_type = . - lv_exists = zcl_abapgit_objects=>exists( ls_item ). - - cl_abap_unit_assert=>assert_equals( - act = lv_exists - exp = abap_false - msg = ls_item-obj_type - quit = if_aunit_constants=>no ). - ENDLOOP. - - ENDMETHOD. "not_exist - -ENDCLASS. "ltcl_object_types IMPLEMENTATION - - -CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING - DURATION SHORT - RISK LEVEL DANGEROUS. - - PRIVATE SECTION. - CLASS-METHODS: - class_setup. - - METHODS: - setup, - clear_settings_database, - "Proxy - modify_settings_proxy_url FOR TESTING RAISING cx_static_check, - modify_settings_proxy_port FOR TESTING RAISING cx_static_check, - read_proxy_settings FOR TESTING RAISING cx_static_check, - read_not_found_url FOR TESTING RAISING cx_static_check, - read_not_found_port FOR TESTING RAISING cx_static_check, - "Run critical tests - modify_run_critical_tests FOR TESTING RAISING cx_static_check, - read_run_critical_tests FOR TESTING RAISING cx_static_check, - read_not_found_critical_tests FOR TESTING RAISING cx_static_check. - DATA: - mo_persistence_settings TYPE REF TO zcl_abapgit_persist_settings, - mo_settings TYPE REF TO zcl_abapgit_settings. -ENDCLASS. - -CLASS ltcl_persistence_settings IMPLEMENTATION. - - METHOD class_setup. - ltcl_critical_tests=>check_run_permission( ). - ENDMETHOD. - - METHOD setup. - mo_persistence_settings = zcl_abapgit_persist_settings=>get_instance( ). - CREATE OBJECT mo_settings. - clear_settings_database( ). - ENDMETHOD. - - METHOD modify_settings_proxy_url. - DATA lv_proxy_url TYPE string. - - mo_settings->set_proxy_url( 'http://proxy' ). - - mo_persistence_settings->modify( mo_settings ). - - lv_proxy_url = zcl_abapgit_persistence_db=>get_instance( )->read( - iv_type = 'SETTINGS' - iv_value = 'PROXY_URL' ). - - cl_abap_unit_assert=>assert_equals( - act = lv_proxy_url - exp = 'http://proxy' ). - ENDMETHOD. - - METHOD modify_settings_proxy_port. - DATA lv_proxy_port TYPE string. - mo_settings->set_proxy_port( '8080' ). - - mo_persistence_settings->modify( mo_settings ). - - lv_proxy_port = zcl_abapgit_persistence_db=>get_instance( )->read( - iv_type = 'SETTINGS' - iv_value = 'PROXY_PORT' ). - - cl_abap_unit_assert=>assert_equals( - act = lv_proxy_port - exp = '8080' ). - ENDMETHOD. - - METHOD read_proxy_settings. - zcl_abapgit_persistence_db=>get_instance( )->modify( - iv_type = 'SETTINGS' - iv_value = 'PROXY_URL' - iv_data = 'A_URL' ). - - zcl_abapgit_persistence_db=>get_instance( )->modify( - iv_type = 'SETTINGS' - iv_value = 'PROXY_PORT' - iv_data = '1000' ). - - mo_settings = mo_persistence_settings->read( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_proxy_url( ) - exp = 'A_URL' ). - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_proxy_port( ) - exp = '1000' ). - ENDMETHOD. - - METHOD read_not_found_port. - mo_settings = mo_persistence_settings->read( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_proxy_port( ) - exp = '' ). - ENDMETHOD. - - METHOD read_not_found_url. - - mo_settings = mo_persistence_settings->read( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_proxy_url( ) - exp = '' ). - ENDMETHOD. - - METHOD modify_run_critical_tests. - DATA lv_run_critical_tests TYPE abap_bool. - mo_settings->set_run_critical_tests( abap_true ). - - mo_persistence_settings->modify( mo_settings ). - - lv_run_critical_tests = zcl_abapgit_persistence_db=>get_instance( )->read( - iv_type = 'SETTINGS' - iv_value = 'CRIT_TESTS' ). - - cl_abap_unit_assert=>assert_equals( - act = lv_run_critical_tests - exp = abap_true ). - ENDMETHOD. - - METHOD read_run_critical_tests. - zcl_abapgit_persistence_db=>get_instance( )->modify( - iv_type = 'SETTINGS' - iv_value = 'CRIT_TESTS' - iv_data = 'X' ). - mo_settings = mo_persistence_settings->read( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_run_critical_tests( ) - exp = abap_true ). - ENDMETHOD. - METHOD read_not_found_critical_tests. - mo_settings = mo_persistence_settings->read( ). - - cl_abap_unit_assert=>assert_equals( - act = mo_settings->get_run_critical_tests( ) - exp = abap_false ). - ENDMETHOD. - - - METHOD clear_settings_database. - - TRY. - zcl_abapgit_persistence_db=>get_instance( )->delete( - iv_type = 'SETTINGS' - iv_value = 'PROXY_URL' ). - CATCH cx_static_check ##NO_HANDLER. - "If entry didn't exist, that's okay - ENDTRY. - TRY. - zcl_abapgit_persistence_db=>get_instance( )->delete( - iv_type = 'SETTINGS' - iv_value = 'PROXY_PORT' ). - CATCH cx_static_check ##NO_HANDLER. - "If entry didn't exist, that's okay - ENDTRY. - TRY. - zcl_abapgit_persistence_db=>get_instance( )->delete( - iv_type = 'SETTINGS' - iv_value = 'CRIT_TESTS' ). - CATCH cx_static_check ##NO_HANDLER. - "If entry didn't exist, that's okay - ENDTRY. - - ENDMETHOD. - -ENDCLASS. - *CLASS ltcl_oo_serialize DEFINITION FINAL FOR TESTING * DURATION SHORT * RISK LEVEL HARMLESS. diff --git a/src/zcl_abapgit_objects.clas.testclasses.abap b/src/zcl_abapgit_objects.clas.testclasses.abap index a6503eac7..e99995fa3 100644 --- a/src/zcl_abapgit_objects.clas.testclasses.abap +++ b/src/zcl_abapgit_objects.clas.testclasses.abap @@ -1,5 +1,182 @@ *"* use this source file for your ABAP unit test classes +*----------------------------------------------------------------------* +* CLASS ltcl_dangerous DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS ltcl_dangerous DEFINITION FOR TESTING RISK LEVEL CRITICAL DURATION LONG FINAL. +* if this test class does not run, parameters in transaction SAUNIT_CLIENT_SETUP +* might need to be adjusted + + PRIVATE SECTION. + + CLASS-METHODS: + class_setup. + + METHODS: + run FOR TESTING + RAISING zcx_abapgit_exception. + + CONSTANTS: c_package TYPE devclass VALUE '$ABAPGIT_UNIT_TEST'. + +ENDCLASS. "ltcl_dangerous DEFINITION + +*----------------------------------------------------------------------* +* CLASS ltcl_dangerous IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS ltcl_dangerous IMPLEMENTATION. + + METHOD class_setup. + "Objects will be created and deleted, do not run in customer system! + "These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open) + IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_run_critical_tests( ) = abap_false. + cl_abap_unit_assert=>fail( + msg = 'Cancelled. You can enable these tests at the Settings page' + level = if_aunit_constants=>tolerable ). + ENDIF. + ENDMETHOD. "class_setup + + METHOD run. + + DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online, + lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt, + lv_msg TYPE string, + lt_results TYPE zif_abapgit_definitions=>ty_results_tt, + lt_types TYPE zcl_abapgit_objects=>ty_types_tt. + + FIELD-SYMBOLS: LIKE LINE OF lt_results, + LIKE LINE OF lt_tadir, + LIKE LINE OF lt_types. + + + zcl_abapgit_sap_package=>create_local( c_package ). + + lt_types = zcl_abapgit_objects=>supported_list( ). + + lo_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online( + iv_url = 'https://github.com/larshp/abapGit-Unit-Test.git' + iv_branch_name = 'refs/heads/master' + iv_package = c_package ). + lo_repo->status( ). + lo_repo->deserialize( ). + + lt_tadir = zcl_abapgit_tadir=>read( c_package ). + LOOP AT lt_types ASSIGNING . + READ TABLE lt_tadir WITH KEY object = TRANSPORTING NO FIELDS. + IF sy-subrc <> 0. + lv_msg = |Missing object type { }|. + cl_abap_unit_assert=>fail( + msg = lv_msg + level = if_aunit_constants=>tolerable + quit = if_aunit_constants=>no ). + ENDIF. + ENDLOOP. + + lt_results = lo_repo->status( ). + LOOP AT lt_results ASSIGNING WHERE match = abap_false. + lv_msg = |Does not match { -obj_type } { -obj_name }|. + cl_abap_unit_assert=>fail( + msg = lv_msg + quit = if_aunit_constants=>no ). + ENDLOOP. + + zcl_abapgit_objects=>delete( lt_tadir ). + lt_tadir = zcl_abapgit_tadir=>read( c_package ). + LOOP AT lt_tadir ASSIGNING . + lv_msg = |Not deleted properly { -object } { -obj_name }|. + cl_abap_unit_assert=>fail( + msg = lv_msg + quit = if_aunit_constants=>no ). + ENDLOOP. + + zcl_abapgit_repo_srv=>get_instance( )->delete( lo_repo ). + + COMMIT WORK. + + ENDMETHOD. "run + +ENDCLASS. "ltcl_dangerous IMPLEMENTATION + + +*----------------------------------------------------------------------* +* CLASS ltcl_object_types DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS ltcl_object_types DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. + + PRIVATE SECTION. + METHODS: + is_supported FOR TESTING, + not_exist FOR TESTING RAISING zcx_abapgit_exception. + +ENDCLASS. "ltcl_object_types DEFINITION + +*----------------------------------------------------------------------* +* CLASS ltcl_object_types IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS ltcl_object_types IMPLEMENTATION. + + METHOD is_supported. + + DATA: ls_item TYPE zif_abapgit_definitions=>ty_item, + lv_supported TYPE abap_bool, + lt_types TYPE zcl_abapgit_objects=>ty_types_tt. + + FIELD-SYMBOLS: LIKE LINE OF lt_types. + + + lt_types = zcl_abapgit_objects=>supported_list( ). + + LOOP AT lt_types ASSIGNING . + + CLEAR ls_item. + ls_item-obj_type = . + lv_supported = zcl_abapgit_objects=>is_supported( ls_item ). + + cl_abap_unit_assert=>assert_equals( + act = lv_supported + exp = abap_true + msg = ls_item-obj_type + quit = if_aunit_constants=>no ). + ENDLOOP. + + ENDMETHOD. "is_supported + + METHOD not_exist. + + DATA: ls_item TYPE zif_abapgit_definitions=>ty_item, + lv_exists TYPE abap_bool, + lt_types TYPE zcl_abapgit_objects=>ty_types_tt. + + FIELD-SYMBOLS: LIKE LINE OF lt_types. + + + lt_types = zcl_abapgit_objects=>supported_list( ). + + LOOP AT lt_types ASSIGNING . + CLEAR ls_item. + ls_item-obj_name = 'ZABAPGIT_FOOBAR'. + ls_item-obj_type = . + lv_exists = zcl_abapgit_objects=>exists( ls_item ). + + cl_abap_unit_assert=>assert_equals( + act = lv_exists + exp = abap_false + msg = ls_item-obj_type + quit = if_aunit_constants=>no ). + ENDLOOP. + + ENDMETHOD. "not_exist + +ENDCLASS. "ltcl_object_types IMPLEMENTATION + + *----------------------------------------------------------------------* * CLASS ltcl_serialize DEFINITION *----------------------------------------------------------------------*