All files / test/src zcl_abapgit_tadir_test.clas.testclasses.abap

87.08% Statements 209/240
60.86% Branches 14/23
100% Functions 10/10
87.08% Lines 209/240

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 2411x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x                               1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
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.