All files / src/env zcl_abapgit_feature.clas.testclasses.abap

100% Statements 169/169
100% Branches 9/9
100% Functions 9/9
100% Lines 169/169

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 1701x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 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 ltd_environment DEFINITION FOR TESTING.
 
  PUBLIC SECTION.
    INTERFACES:
      zif_abapgit_environment.
 
    METHODS:
      set_is_merged
        IMPORTING
          iv_is_merged TYPE abap_bool.
  PRIVATE SECTION.
    DATA mv_is_merged TYPE abap_bool.
 
ENDCLASS.
 
CLASS ltd_environment IMPLEMENTATION.
 
  METHOD zif_abapgit_environment~check_parallel_processing.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~compare_with_inactive.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~get_available_user_sessions.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~get_basis_release.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~get_system_language_filter.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~init_parallel_processing.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_merged.
    rv_result = mv_is_merged.
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_repo_object_changes_allowed.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_restart_required.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_sap_cloud_platform.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_sap_object_allowed.
 
  ENDMETHOD.
 
  METHOD zif_abapgit_environment~is_variant_maintenance.
 
  ENDMETHOD.
 
  METHOD set_is_merged.
    mv_is_merged = iv_is_merged.
  ENDMETHOD.
 
ENDCLASS.
 
 
CLASS ltcl_feature DEFINITION FOR TESTING RISK LEVEL HARMLESS
  DURATION SHORT FINAL.
 
  PRIVATE SECTION.
 
    DATA mo_settings TYPE REF TO zcl_abapgit_settings.
    DATA mo_cut TYPE REF TO zcl_abapgit_feature.
    DATA mo_env TYPE REF TO ltd_environment.
 
    METHODS:
      setup,
      merged_feature_disabled FOR TESTING,
      dev_feature_disabled FOR TESTING,
      dev_feature_enabled FOR TESTING.
 
ENDCLASS.
 
CLASS ltcl_feature IMPLEMENTATION.
 
  METHOD setup.
    CREATE OBJECT mo_cut.
    mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
 
    CREATE OBJECT mo_env.
    zcl_abapgit_injector=>set_environment( mo_env ).
  ENDMETHOD.
 
  METHOD merged_feature_disabled.
 
    mo_env->set_is_merged( abap_true ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( )
      exp = abap_false ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_false ).
 
  ENDMETHOD.
 
  METHOD dev_feature_disabled.
 
    mo_env->set_is_merged( abap_false ).
 
    " All off
    mo_settings->set_experimental_features( '' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_false ).
 
  ENDMETHOD.
 
  METHOD dev_feature_enabled.
 
    mo_env->set_is_merged( abap_false ).
 
    " All on
    mo_settings->set_experimental_features( 'X' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_true ).
 
    " Just one feature on
    mo_settings->set_experimental_features( 'TEST' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_true ).
 
    " Several features on
    mo_settings->set_experimental_features( 'AFF,LXE' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_false ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'AFF' )
      exp = abap_true ).
 
    " Several features on with whitespace
    mo_settings->set_experimental_features( ' AFF , FLOW   ,LXE ' ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'TEST' )
      exp = abap_false ).
 
    cl_abap_unit_assert=>assert_equals(
      act = mo_cut->is_enabled( 'FLOW' )
      exp = abap_true ).
 
  ENDMETHOD.
 
ENDCLASS.