abapGit/test/zcl_abapgit_tadir_test.clas.testclasses.abap
2023-10-26 09:42:51 -04:00

241 lines
7.3 KiB
ABAP

CLASS ltcl_build DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM FINAL.
PRIVATE SECTION.
CLASS-DATA gi_environment TYPE REF TO if_osql_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
CLASS-METHODS create_envoirment.
METHODS check_build_wo_filter FOR TESTING RAISING zcx_abapgit_exception.
METHODS check_build_w_filter FOR TESTING RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_build IMPLEMENTATION.
METHOD create_envoirment.
DATA lt_tables TYPE if_osql_test_environment=>ty_t_sobjnames.
DATA ls_tadir TYPE tadir.
DATA lt_tadir TYPE STANDARD TABLE OF tadir.
DATA ls_tdevc TYPE tdevc.
DATA lt_tdevc TYPE STANDARD TABLE OF tdevc.
APPEND 'TADIR' TO lt_tables.
APPEND 'TDEVC' TO lt_tables.
APPEND 'SOTR_HEADU' TO lt_tables.
gi_environment = cl_osql_test_environment=>create( lt_tables ).
ls_tadir-pgmid = 'R3TR'.
ls_tadir-object = 'DEVC'.
ls_tadir-obj_name = 'BASIS'.
ls_tadir-devclass = 'BASIS'.
INSERT ls_tadir INTO TABLE lt_tadir.
ls_tadir-pgmid = 'R3TR'.
ls_tadir-object = 'DEVC'.
ls_tadir-obj_name = '/STMC/FND'.
ls_tadir-devclass = '/STMC/FND'.
INSERT ls_tadir INTO TABLE lt_tadir.
ls_tadir-pgmid = 'R3TR'.
ls_tadir-object = 'DTEL'.
ls_tadir-obj_name = 'DEVCLASS'.
ls_tadir-devclass = 'BASIS'. "not in reality
INSERT ls_tadir INTO TABLE lt_tadir.
ls_tadir-pgmid = 'R3TR'.
ls_tadir-object = 'DTEL'.
ls_tadir-obj_name = 'MATNR'.
ls_tadir-devclass = 'BASIS'. "not in reality
INSERT ls_tadir INTO TABLE lt_tadir.
gi_environment->insert_test_data( lt_tadir ).
ls_tdevc-devclass = 'BASIS'.
INSERT ls_tdevc INTO TABLE lt_tdevc.
ls_tdevc-devclass = '$SWF_RUN_CNT'.
ls_tdevc-parentcl = '/STMC/FND'. "not in reality
INSERT ls_tdevc INTO TABLE lt_tdevc.
ls_tdevc-devclass = '/STMC/FND'.
ls_tdevc-parentcl = 'BASIS'. "not in reality
INSERT ls_tdevc INTO TABLE lt_tdevc.
gi_environment->insert_test_data( lt_tdevc ).
ENDMETHOD.
METHOD check_build_wo_filter.
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
DATA li_log TYPE REF TO zif_abapgit_log.
DATA lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA lo_ex TYPE REF TO zcx_abapgit_exception.
DATA lv_top_package TYPE devclass.
lv_top_package = 'BASIS'.
TRY.
CREATE OBJECT li_log TYPE zcl_abapgit_log.
lo_dot = zcl_abapgit_dot_abapgit=>build_default( ).
lo_dot->set_folder_logic( zif_abapgit_dot_abapgit=>c_folder_logic-full ).
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
iv_package = lv_top_package
io_dot = lo_dot
iv_check_exists = abap_false ).
cl_abap_unit_assert=>assert_not_initial( lt_tadir ).
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'DEVC'
obj_name = '$SWF_RUN_CNT'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object DEVC $SWF_RUN_CNT missing| ).
ENDIF.
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'DEVC'
obj_name = 'BASIS'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object DEVC BASIS missing| ).
ENDIF.
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'DEVC'
obj_name = '/STMC/FND'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object DEVC /STMC/FND missing| ).
ENDIF.
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'DTEL'
obj_name = 'DEVCLASS'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object DTEL DEVCLASS missing| ).
ENDIF.
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'DTEL'
obj_name = 'MATNR'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object DTEL MATNR missing| ).
ENDIF.
READ TABLE lt_tadir TRANSPORTING NO FIELDS
WITH KEY object = 'NSPC'
obj_name = '/STMC/'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( |Object NSPC /STMC/ missing| ).
ENDIF.
CATCH zcx_abapgit_exception INTO lo_ex.
cl_abap_unit_assert=>fail( lo_ex->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD check_build_w_filter.
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
DATA li_log TYPE REF TO zif_abapgit_log.
DATA lo_ex TYPE REF TO zcx_abapgit_exception.
DATA lv_top_package TYPE devclass.
DATA lt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA ls_filter TYPE zif_abapgit_definitions=>ty_tadir.
DATA lr_filter TYPE REF TO zif_abapgit_definitions=>ty_tadir.
DATA lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA lr_tadir TYPE REF TO zif_abapgit_definitions=>ty_tadir.
DATA lv_msg TYPE string.
lv_top_package = 'BASIS'.
ls_filter-object = 'NSPC'.
ls_filter-obj_name = '/STMC/'.
INSERT ls_filter INTO TABLE lt_filter.
ls_filter-object = 'DEVC'.
ls_filter-obj_name = '/STMC/FND'.
INSERT ls_filter INTO TABLE lt_filter.
ls_filter-object = 'DTEL'.
ls_filter-obj_name = 'DEVCLASS'.
INSERT ls_filter INTO TABLE lt_filter.
ls_filter-object = 'DEVC'.
ls_filter-obj_name = 'BASIS'.
INSERT ls_filter INTO TABLE lt_filter.
ls_filter-object = 'DEVC'.
ls_filter-obj_name = '$SWF_RUN_CNT'.
INSERT ls_filter INTO TABLE lt_filter.
READ TABLE lt_filter TRANSPORTING NO FIELDS
WITH KEY object = 'NSPC'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( msg = |Read table lt_filter with table key obj_type = 'NSPC' failed'| ).
ENDIF.
READ TABLE lt_filter TRANSPORTING NO FIELDS
WITH KEY object = 'DEVC'.
IF sy-subrc <> 0.
cl_abap_unit_assert=>fail( msg = |Read table lt_filter with table key obj_type = 'DEVC' failed'| ).
ENDIF.
TRY.
CREATE OBJECT li_log TYPE zcl_abapgit_log.
lo_dot = zcl_abapgit_dot_abapgit=>build_default( ).
lo_dot->set_folder_logic( zif_abapgit_dot_abapgit=>c_folder_logic-full ).
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
iv_package = lv_top_package
io_dot = lo_dot
it_filter = lt_filter
iv_check_exists = abap_false ).
cl_abap_unit_assert=>assert_not_initial( lt_tadir ).
IF lines( lt_tadir ) <> lines( lt_filter ).
lv_msg = 'Differnt number of objects found than filtered:'.
LOOP AT lt_tadir REFERENCE INTO lr_tadir.
CONCATENATE lv_msg lr_tadir->obj_name INTO lv_msg SEPARATED BY ' | '.
ENDLOOP.
CONCATENATE lv_msg '; requested:' INTO lv_msg SEPARATED BY space.
LOOP AT lt_filter REFERENCE INTO lr_filter.
CONCATENATE lv_msg lr_filter->obj_name INTO lv_msg SEPARATED BY ' | '.
ENDLOOP.
cl_abap_unit_assert=>assert_equals(
act = lines( lt_tadir )
exp = lines( lt_filter )
msg = lv_msg ).
ENDIF.
CATCH zcx_abapgit_exception INTO lo_ex.
cl_abap_unit_assert=>fail( lo_ex->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD class_setup.
create_envoirment( ).
ENDMETHOD.
METHOD class_teardown.
IF NOT gi_environment IS INITIAL.
gi_environment->destroy( ).
ENDIF.
ENDMETHOD.
ENDCLASS.