All files / src/utils zcl_abapgit_log.clas.testclasses.abap

100% Statements 257/257
100% Branches 16/16
100% Functions 16/16
100% Lines 257/257

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 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 2581x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 8x 8x 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 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_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
 
  PRIVATE SECTION.
    DATA:
      mi_cut TYPE REF TO zif_abapgit_log.
 
    METHODS:
      setup,
      from_x FOR TESTING,
      get_status FOR TESTING,
      get_log_level FOR TESTING,
      merge_with FOR TESTING,
      merge_with_min_level FOR TESTING,
      empty FOR TESTING,
      clone FOR TESTING,
      add FOR TESTING.
ENDCLASS.
 
 
CLASS ltcl_test IMPLEMENTATION.
 
  METHOD setup.
    CREATE OBJECT mi_cut TYPE zcl_abapgit_log.
  ENDMETHOD.
 
  METHOD empty.
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 0 ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_title( )
      exp = 'Log' ).
 
  ENDMETHOD.
 
  METHOD add.
 
    DATA lv_message TYPE string.
    DATA lt_messages TYPE zif_abapgit_log=>ty_log_outs.
    DATA ls_message LIKE LINE OF lt_messages.
 
    lv_message = 'hello'.
 
    mi_cut->add( lv_message ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 1 ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = 'E' ).
 
    lt_messages = mi_cut->get_messages( ).
    READ TABLE lt_messages INDEX 1 INTO ls_message.
    cl_abap_unit_assert=>assert_subrc( ).
 
    cl_abap_unit_assert=>assert_equals(
      act = ls_message-text
      exp = lv_message ).
 
  ENDMETHOD.
 
  METHOD get_status.
 
    DATA lo_x TYPE REF TO zcx_abapgit_exception.
 
    mi_cut->add_success( 'success' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = zif_abapgit_log=>c_status-ok ).
 
    mi_cut->add_warning( 'warn' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = zif_abapgit_log=>c_status-warning ).
 
    mi_cut->add_error( 'err' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = zif_abapgit_log=>c_status-error ).
 
    mi_cut->clear( ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = zif_abapgit_log=>c_status-ok ).
 
    CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
    mi_cut->add_exception( lo_x ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_status( )
      exp = zif_abapgit_log=>c_status-error ).
 
  ENDMETHOD.
 
  METHOD merge_with.
 
    DATA li_secondary_log LIKE mi_cut.
    DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
 
    CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
 
    mi_cut->add_success( 'success' ).
    li_secondary_log->add_warning( 'warn' ).
    mi_cut->merge_with( li_secondary_log ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 2 ).
 
    lt_act_msgs = mi_cut->get_messages( ).
 
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
    cl_abap_unit_assert=>assert_subrc( ).
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
    cl_abap_unit_assert=>assert_subrc( ).
 
  ENDMETHOD.
 
  METHOD merge_with_min_level.
 
    DATA li_secondary_log LIKE mi_cut.
    DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
 
    CREATE OBJECT li_secondary_log TYPE zcl_abapgit_log.
 
    mi_cut->add_success( 'success' ).
    li_secondary_log->add_warning( 'warn' ).
    mi_cut->merge_with(
      ii_log = li_secondary_log
      iv_min_level = zif_abapgit_log=>c_log_level-error ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 1 ).
 
    lt_act_msgs = mi_cut->get_messages( ).
 
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
    cl_abap_unit_assert=>assert_subrc( ).
 
    " change level to warning
    mi_cut->merge_with(
      ii_log = li_secondary_log
      iv_min_level = zif_abapgit_log=>c_log_level-warning ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 2 ).
 
    lt_act_msgs = mi_cut->get_messages( ).
 
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'success'.
    cl_abap_unit_assert=>assert_subrc( ).
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'warn'.
    cl_abap_unit_assert=>assert_subrc( ).
 
  ENDMETHOD.
 
  METHOD from_x.
 
    DATA lo_x TYPE REF TO zcx_abapgit_exception.
    DATA lt_act_msgs TYPE zif_abapgit_log=>ty_log_outs.
 
    " Uninitialized
    mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 0 ).
 
    " Notmal exception
    TRY.
        zcx_abapgit_exception=>raise( 'Error!' ).
      CATCH zcx_abapgit_exception INTO lo_x.
        mi_cut = zcl_abapgit_log=>from_exception( lo_x ).
    ENDTRY.
 
    cl_abap_unit_assert=>assert_bound( mi_cut ).
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->count( )
      exp = 1 ).
 
    lt_act_msgs = mi_cut->get_messages( ).
 
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY type = 'E'.
    cl_abap_unit_assert=>assert_subrc( ).
    READ TABLE lt_act_msgs TRANSPORTING NO FIELDS WITH KEY text = 'Error!'.
    cl_abap_unit_assert=>assert_subrc( ).
 
  ENDMETHOD.
 
  METHOD get_log_level.
 
    DATA lo_x TYPE REF TO zcx_abapgit_exception.
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_log_level( )
      exp = zif_abapgit_log=>c_log_level-empty ).
 
    mi_cut->add_success( 'success' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_log_level( )
      exp = zif_abapgit_log=>c_log_level-info ).
 
    mi_cut->add_warning( 'warn' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_log_level( )
      exp = zif_abapgit_log=>c_log_level-warning ).
 
    mi_cut->add_error( 'err' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_log_level( )
      exp = zif_abapgit_log=>c_log_level-error ).
 
    CREATE OBJECT lo_x EXPORTING msgv1 = 'x'.
    mi_cut->add_exception( lo_x ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mi_cut->get_log_level( )
      exp = zif_abapgit_log=>c_log_level-error ).
 
  ENDMETHOD.
 
  METHOD clone.
 
    DATA li_clone TYPE REF TO zif_abapgit_log.
 
    mi_cut->add( 'Hello' ).
    mi_cut->set_title( 'My log' ).
 
    li_clone = mi_cut->clone( ).
 
    mi_cut->add( 'World' ).
    mi_cut->set_title( 'My log CHANGED' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = li_clone->count( )
      exp = 1 ).
 
    cl_abap_unit_assert=>assert_equals(
      act = li_clone->get_title( )
      exp = 'My log' ).
 
  ENDMETHOD.
 
ENDCLASS.