mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Refactor feature check (is_feature_enabled
) (#6599)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
9cb286004d
commit
d4156132be
|
@ -9,10 +9,6 @@ CLASS zcl_abapgit_aff_registry DEFINITION
|
||||||
|
|
||||||
CONSTANTS c_aff_feature TYPE string VALUE 'AFF'.
|
CONSTANTS c_aff_feature TYPE string VALUE 'AFF'.
|
||||||
|
|
||||||
METHODS:
|
|
||||||
constructor
|
|
||||||
IMPORTING
|
|
||||||
io_settings TYPE REF TO zcl_abapgit_settings OPTIONAL.
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -25,8 +21,6 @@ CLASS zcl_abapgit_aff_registry DEFINITION
|
||||||
CLASS-DATA:
|
CLASS-DATA:
|
||||||
gt_registry TYPE HASHED TABLE OF ty_registry_entry WITH UNIQUE KEY obj_type.
|
gt_registry TYPE HASHED TABLE OF ty_registry_entry WITH UNIQUE KEY obj_type.
|
||||||
|
|
||||||
DATA:
|
|
||||||
mo_settings TYPE REF TO zcl_abapgit_settings.
|
|
||||||
METHODS initialize_registry_table.
|
METHODS initialize_registry_table.
|
||||||
|
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
|
@ -42,15 +36,6 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_aff_registry IMPLEMENTATION.
|
CLASS zcl_abapgit_aff_registry IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
IF io_settings IS SUPPLIED.
|
|
||||||
mo_settings = io_settings.
|
|
||||||
ELSE.
|
|
||||||
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
|
||||||
ENDIF.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD initialize_registry_table.
|
METHOD initialize_registry_table.
|
||||||
register( 'CHKC' ).
|
register( 'CHKC' ).
|
||||||
register( 'CHKO' ).
|
register( 'CHKO' ).
|
||||||
|
@ -86,7 +71,7 @@ CLASS zcl_abapgit_aff_registry IMPLEMENTATION.
|
||||||
READ TABLE gt_registry WITH TABLE KEY obj_type = iv_obj_type INTO ls_registry_entry.
|
READ TABLE gt_registry WITH TABLE KEY obj_type = iv_obj_type INTO ls_registry_entry.
|
||||||
IF sy-subrc = 0 AND ls_registry_entry-experimental = abap_false.
|
IF sy-subrc = 0 AND ls_registry_entry-experimental = abap_false.
|
||||||
rv_result = abap_true.
|
rv_result = abap_true.
|
||||||
ELSEIF sy-subrc = 0 AND mo_settings->is_feature_enabled( c_aff_feature ) = abap_true.
|
ELSEIF sy-subrc = 0 AND zcl_abapgit_feature=>is_enabled( c_aff_feature ) = abap_true.
|
||||||
rv_result = abap_true.
|
rv_result = abap_true.
|
||||||
ELSE.
|
ELSE.
|
||||||
rv_result = abap_false.
|
rv_result = abap_false.
|
||||||
|
|
|
@ -30,16 +30,14 @@ CLASS ltcl_aff_registry IMPLEMENTATION.
|
||||||
lo_settings_stub TYPE REF TO zcl_abapgit_settings,
|
lo_settings_stub TYPE REF TO zcl_abapgit_settings,
|
||||||
lv_act TYPE abap_bool.
|
lv_act TYPE abap_bool.
|
||||||
|
|
||||||
|
lo_settings_stub = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
||||||
CREATE OBJECT lo_settings_stub.
|
|
||||||
IF iv_experimental = abap_true.
|
IF iv_experimental = abap_true.
|
||||||
lo_settings_stub->set_experimental_features( zcl_abapgit_aff_registry=>c_aff_feature ).
|
lo_settings_stub->set_experimental_features( zcl_abapgit_aff_registry=>c_aff_feature ).
|
||||||
ELSE.
|
ELSE.
|
||||||
lo_settings_stub->set_experimental_features( '' ).
|
lo_settings_stub->set_experimental_features( '' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
CREATE OBJECT lo_cut TYPE zcl_abapgit_aff_registry
|
|
||||||
EXPORTING
|
CREATE OBJECT lo_cut TYPE zcl_abapgit_aff_registry.
|
||||||
io_settings = lo_settings_stub.
|
|
||||||
lv_act = lo_cut->is_supported_object_type( iv_obj_type ).
|
lv_act = lo_cut->is_supported_object_type( iv_obj_type ).
|
||||||
cl_abap_unit_assert=>assert_equals( exp = iv_is_supported
|
cl_abap_unit_assert=>assert_equals( exp = iv_is_supported
|
||||||
act = lv_act ).
|
act = lv_act ).
|
||||||
|
|
|
@ -112,8 +112,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||||
iv_language = iv_language ).
|
iv_language = iv_language ).
|
||||||
mi_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
|
mi_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
|
||||||
|
|
||||||
mv_aff_enabled = zcl_abapgit_persist_factory=>get_settings( )->read( )->is_feature_enabled(
|
mv_aff_enabled = zcl_abapgit_feature=>is_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ).
|
||||||
zcl_abapgit_aff_registry=>c_aff_feature ).
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ CLASS ltc_ci IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lv_repo_url TYPE string.
|
DATA lv_repo_url TYPE string.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->is_feature_enabled( 'PDTS' ) = abap_false.
|
IF zcl_abapgit_feature=>is_enabled( 'PDTS' ) = abap_false.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ CLASS ltc_smoke_test IMPLEMENTATION.
|
||||||
|
|
||||||
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->is_feature_enabled( 'PDTS' ) = abap_false.
|
IF zcl_abapgit_feature=>is_enabled( 'PDTS' ) = abap_false.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ CLASS ltc_smoke_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD run_simple_methods.
|
METHOD run_simple_methods.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->is_feature_enabled( 'PDTS' ) = abap_false.
|
IF zcl_abapgit_feature=>is_enabled( 'PDTS' ) = abap_false.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -1000,7 +1000,7 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
|
|
||||||
CREATE OBJECT ro_toolbar EXPORTING iv_id = 'toolbar-main'.
|
CREATE OBJECT ro_toolbar EXPORTING iv_id = 'toolbar-main'.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_factory=>get_settings( )->read( )->is_feature_enabled( 'FLOW' ) = abap_true.
|
IF zcl_abapgit_feature=>is_enabled( 'FLOW' ) = abap_true.
|
||||||
ro_toolbar->add(
|
ro_toolbar->add(
|
||||||
iv_txt = zcl_abapgit_gui_buttons=>flow( )
|
iv_txt = zcl_abapgit_gui_buttons=>flow( )
|
||||||
iv_act = zif_abapgit_definitions=>c_action-flow ).
|
iv_act = zif_abapgit_definitions=>c_action-flow ).
|
||||||
|
|
|
@ -51,7 +51,6 @@ CLASS zcl_abapgit_gui_page_sett_repo DEFINITION
|
||||||
|
|
||||||
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
|
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
|
||||||
DATA mv_requirements_count TYPE i .
|
DATA mv_requirements_count TYPE i .
|
||||||
DATA mv_feature_enabled TYPE abap_bool.
|
|
||||||
|
|
||||||
METHODS validate_form
|
METHODS validate_form
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -88,7 +87,6 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
|
||||||
|
|
||||||
" Feature for ABAP Language Version
|
" Feature for ABAP Language Version
|
||||||
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
||||||
mv_feature_enabled = lo_settings->is_feature_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ).
|
|
||||||
|
|
||||||
CREATE OBJECT mo_validation_log.
|
CREATE OBJECT mo_validation_log.
|
||||||
CREATE OBJECT mo_form_data.
|
CREATE OBJECT mo_form_data.
|
||||||
|
@ -176,7 +174,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
|
||||||
iv_label = 'Minimum Patch'
|
iv_label = 'Minimum Patch'
|
||||||
iv_width = '30%' ).
|
iv_width = '30%' ).
|
||||||
|
|
||||||
IF mv_feature_enabled = abap_true.
|
IF zcl_abapgit_feature=>is_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ) = abap_true.
|
||||||
ro_form->radio(
|
ro_form->radio(
|
||||||
iv_name = c_id-abap_langu_vers
|
iv_name = c_id-abap_langu_vers
|
||||||
iv_default_value = ''
|
iv_default_value = ''
|
||||||
|
@ -310,7 +308,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
|
||||||
iv_key = |{ c_id-requirements }-{ zif_abapgit_html_form=>c_rows }|
|
iv_key = |{ c_id-requirements }-{ zif_abapgit_html_form=>c_rows }|
|
||||||
iv_val = |{ mv_requirements_count }| ).
|
iv_val = |{ mv_requirements_count }| ).
|
||||||
|
|
||||||
IF mv_feature_enabled = abap_true.
|
IF zcl_abapgit_feature=>is_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ) = abap_true.
|
||||||
ro_form_data->set(
|
ro_form_data->set(
|
||||||
iv_key = c_id-abap_langu_vers
|
iv_key = c_id-abap_langu_vers
|
||||||
iv_val = ls_dot-abap_language_version ).
|
iv_val = ls_dot-abap_language_version ).
|
||||||
|
@ -334,7 +332,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
|
||||||
lo_dot->set_starting_folder( mo_form_data->get( c_id-starting_folder ) ).
|
lo_dot->set_starting_folder( mo_form_data->get( c_id-starting_folder ) ).
|
||||||
lo_dot->set_version_constant( mo_form_data->get( c_id-version_constant ) ).
|
lo_dot->set_version_constant( mo_form_data->get( c_id-version_constant ) ).
|
||||||
|
|
||||||
IF mv_feature_enabled = abap_true.
|
IF zcl_abapgit_feature=>is_enabled( zcl_abapgit_abap_language_vers=>c_feature_flag ) = abap_true.
|
||||||
lo_dot->set_abap_language_version( mo_form_data->get( c_id-abap_langu_vers ) ).
|
lo_dot->set_abap_language_version( mo_form_data->get( c_id-abap_langu_vers ) ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -62,13 +62,9 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
|
||||||
DATA lo_settings TYPE REF TO zcl_abapgit_settings.
|
|
||||||
|
|
||||||
mo_dot_abapgit = io_dot_abapgit.
|
mo_dot_abapgit = io_dot_abapgit.
|
||||||
|
|
||||||
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
IF zcl_abapgit_feature=>is_enabled( c_feature_flag ) = abap_false.
|
||||||
|
|
||||||
IF lo_settings->is_feature_enabled( c_feature_flag ) = abap_false.
|
|
||||||
mv_has_abap_language_vers = abap_false.
|
mv_has_abap_language_vers = abap_false.
|
||||||
ELSEIF get_abap_language_vers_by_repo( ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
ELSEIF get_abap_language_vers_by_repo( ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||||
mv_has_abap_language_vers = abap_false.
|
mv_has_abap_language_vers = abap_false.
|
||||||
|
|
|
@ -176,7 +176,6 @@ CLASS ltcl_abap_language_version IMPLEMENTATION.
|
||||||
exp = iv_exp
|
exp = iv_exp
|
||||||
msg = |ABAP Language Version: { iv_version }, Cloud| ).
|
msg = |ABAP Language Version: { iv_version }, Cloud| ).
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD repo_setting_feature_off.
|
METHOD repo_setting_feature_off.
|
||||||
|
|
48
src/zcl_abapgit_feature.clas.abap
Normal file
48
src/zcl_abapgit_feature.clas.abap
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
CLASS zcl_abapgit_feature DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
" For dependency injection/testing, use the following
|
||||||
|
" zcl_abapgit_persist_factory=>get_settings( )->read( )->set_experimental_features( )
|
||||||
|
|
||||||
|
CLASS-METHODS is_enabled
|
||||||
|
IMPORTING
|
||||||
|
!iv_feature TYPE string OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_run) TYPE abap_bool.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_abapgit_feature IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD is_enabled.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lv_features TYPE string,
|
||||||
|
lt_features TYPE string_table.
|
||||||
|
|
||||||
|
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lv_features = zcl_abapgit_persist_factory=>get_settings( )->read( )->get_experimental_features( ).
|
||||||
|
CONDENSE lv_features NO-GAPS.
|
||||||
|
|
||||||
|
rv_run = boolc( lv_features = abap_true ).
|
||||||
|
|
||||||
|
IF iv_feature IS NOT INITIAL.
|
||||||
|
SPLIT lv_features AT ',' INTO TABLE lt_features.
|
||||||
|
READ TABLE lt_features TRANSPORTING NO FIELDS WITH TABLE KEY table_line = iv_feature.
|
||||||
|
rv_run = boolc( rv_run = abap_true OR sy-subrc = 0 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
101
src/zcl_abapgit_feature.clas.testclasses.abap
Normal file
101
src/zcl_abapgit_feature.clas.testclasses.abap
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
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.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
|
setup,
|
||||||
|
merged_disabled FOR TESTING,
|
||||||
|
feature_disabled FOR TESTING,
|
||||||
|
feature_enabled FOR TESTING.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS ltcl_feature IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
CREATE OBJECT mo_cut.
|
||||||
|
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD merged_disabled.
|
||||||
|
|
||||||
|
IF zcl_abapgit_factory=>get_environment( )->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 ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD feature_disabled.
|
||||||
|
|
||||||
|
" Only run for dev version
|
||||||
|
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" All off
|
||||||
|
mo_settings->set_experimental_features( '' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = mo_cut->is_enabled( 'TEST' )
|
||||||
|
exp = abap_false ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD feature_enabled.
|
||||||
|
|
||||||
|
" Only run for dev version
|
||||||
|
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" 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.
|
17
src/zcl_abapgit_feature.clas.xml
Normal file
17
src/zcl_abapgit_feature.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_FEATURE</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - Feature</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -55,11 +55,6 @@ CLASS zcl_abapgit_settings DEFINITION
|
||||||
METHODS get_experimental_features
|
METHODS get_experimental_features
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_features) TYPE string.
|
VALUE(rv_features) TYPE string.
|
||||||
METHODS is_feature_enabled
|
|
||||||
IMPORTING
|
|
||||||
!iv_feature TYPE string OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_run) TYPE abap_bool.
|
|
||||||
METHODS set_max_lines
|
METHODS set_max_lines
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_lines TYPE i .
|
!iv_lines TYPE i .
|
||||||
|
@ -338,19 +333,6 @@ CLASS zcl_abapgit_settings IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD is_feature_enabled.
|
|
||||||
DATA lt_features TYPE string_table.
|
|
||||||
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_false.
|
|
||||||
rv_run = boolc( ms_settings-experimental_features = abap_true ).
|
|
||||||
IF iv_feature IS NOT INITIAL.
|
|
||||||
SPLIT ms_settings-experimental_features AT ',' INTO TABLE lt_features.
|
|
||||||
READ TABLE lt_features TRANSPORTING NO FIELDS WITH TABLE KEY table_line = iv_feature.
|
|
||||||
rv_run = boolc( rv_run = abap_true OR sy-subrc = 0 ).
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD set_activate_wo_popup.
|
METHOD set_activate_wo_popup.
|
||||||
ms_user_settings-activate_wo_popup = iv_act_wo_popup.
|
ms_user_settings-activate_wo_popup = iv_act_wo_popup.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
CLASS ltcl_settings DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
|
||||||
DURATION SHORT FINAL.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
DATA mo_cut TYPE REF TO zcl_abapgit_settings.
|
|
||||||
|
|
||||||
METHODS:
|
|
||||||
setup,
|
|
||||||
feature_disabled FOR TESTING,
|
|
||||||
feature_enabled FOR TESTING.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS ltcl_settings IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD setup.
|
|
||||||
CREATE OBJECT mo_cut.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD feature_disabled.
|
|
||||||
|
|
||||||
" Only run for dev version
|
|
||||||
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
" All off
|
|
||||||
mo_cut->set_experimental_features( '' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->get_experimental_features( )
|
|
||||||
exp = '' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->is_feature_enabled( 'TEST' )
|
|
||||||
exp = abap_false ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD feature_enabled.
|
|
||||||
|
|
||||||
" Only run for dev version
|
|
||||||
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
" All on
|
|
||||||
mo_cut->set_experimental_features( 'X' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->get_experimental_features( )
|
|
||||||
exp = 'X' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->is_feature_enabled( 'TEST' )
|
|
||||||
exp = abap_true ).
|
|
||||||
|
|
||||||
" Just one feature on
|
|
||||||
mo_cut->set_experimental_features( 'TEST' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->get_experimental_features( )
|
|
||||||
exp = 'TEST' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->is_feature_enabled( 'TEST' )
|
|
||||||
exp = abap_true ).
|
|
||||||
|
|
||||||
" Several features on
|
|
||||||
mo_cut->set_experimental_features( 'AFF,LXE' ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->is_feature_enabled( 'TEST' )
|
|
||||||
exp = abap_false ).
|
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = mo_cut->is_feature_enabled( 'AFF' )
|
|
||||||
exp = abap_true ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
|
@ -10,7 +10,6 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user