abapGit/src/persist/zcl_abapgit_persist_settings.clas.testclasses.abap
2018-08-03 13:32:57 +02:00

176 lines
5.2 KiB
ABAP

CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL DANGEROUS.
PRIVATE SECTION.
CLASS-METHODS:
class_setup.
METHODS:
setup,
clear_settings_database,
"Proxy
modify_settings_proxy_url FOR TESTING RAISING cx_static_check,
modify_settings_proxy_port FOR TESTING RAISING cx_static_check,
read_proxy_settings FOR TESTING RAISING cx_static_check,
read_not_found_url FOR TESTING RAISING cx_static_check,
read_not_found_port FOR TESTING RAISING cx_static_check,
"Run critical tests
modify_run_critical_tests FOR TESTING RAISING cx_static_check,
read_run_critical_tests FOR TESTING RAISING cx_static_check,
read_not_found_critical_tests FOR TESTING RAISING cx_static_check.
DATA:
mo_persistence_settings TYPE REF TO zcl_abapgit_persist_settings,
mo_settings TYPE REF TO zcl_abapgit_settings.
ENDCLASS.
CLASS ltcl_persistence_settings IMPLEMENTATION.
METHOD class_setup.
"Objects will be created and deleted, do not run in customer system!
"These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open)
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_run_critical_tests( ) = abap_false.
cl_abap_unit_assert=>fail(
msg = 'Cancelled. You can enable these tests at the Settings page'
level = if_aunit_constants=>tolerable ).
ENDIF.
ENDMETHOD.
METHOD setup.
mo_persistence_settings = zcl_abapgit_persist_settings=>get_instance( ).
CREATE OBJECT mo_settings.
clear_settings_database( ).
ENDMETHOD.
METHOD modify_settings_proxy_url.
DATA lv_proxy_url TYPE string.
mo_settings->set_proxy_url( 'http://proxy' ).
mo_persistence_settings->modify( mo_settings ).
lv_proxy_url = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'PROXY_URL' ).
cl_abap_unit_assert=>assert_equals(
act = lv_proxy_url
exp = 'http://proxy' ).
ENDMETHOD.
METHOD modify_settings_proxy_port.
DATA lv_proxy_port TYPE string.
mo_settings->set_proxy_port( '8080' ).
mo_persistence_settings->modify( mo_settings ).
lv_proxy_port = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'PROXY_PORT' ).
cl_abap_unit_assert=>assert_equals(
act = lv_proxy_port
exp = '8080' ).
ENDMETHOD.
METHOD read_proxy_settings.
zcl_abapgit_persistence_db=>get_instance( )->modify(
iv_type = 'SETTINGS'
iv_value = 'PROXY_URL'
iv_data = 'A_URL' ).
zcl_abapgit_persistence_db=>get_instance( )->modify(
iv_type = 'SETTINGS'
iv_value = 'PROXY_PORT'
iv_data = '1000' ).
mo_settings = mo_persistence_settings->read( ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_proxy_url( )
exp = 'A_URL' ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_proxy_port( )
exp = '1000' ).
ENDMETHOD.
METHOD read_not_found_port.
mo_settings = mo_persistence_settings->read( ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_proxy_port( )
exp = '' ).
ENDMETHOD.
METHOD read_not_found_url.
mo_settings = mo_persistence_settings->read( ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_proxy_url( )
exp = '' ).
ENDMETHOD.
METHOD modify_run_critical_tests.
DATA lv_run_critical_tests TYPE abap_bool.
mo_settings->set_run_critical_tests( abap_true ).
mo_persistence_settings->modify( mo_settings ).
lv_run_critical_tests = zcl_abapgit_persistence_db=>get_instance( )->read(
iv_type = 'SETTINGS'
iv_value = 'CRIT_TESTS' ).
cl_abap_unit_assert=>assert_equals(
act = lv_run_critical_tests
exp = abap_true ).
ENDMETHOD.
METHOD read_run_critical_tests.
zcl_abapgit_persistence_db=>get_instance( )->modify(
iv_type = 'SETTINGS'
iv_value = 'CRIT_TESTS'
iv_data = 'X' ).
mo_settings = mo_persistence_settings->read( ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_run_critical_tests( )
exp = abap_true ).
ENDMETHOD.
METHOD read_not_found_critical_tests.
mo_settings = mo_persistence_settings->read( ).
cl_abap_unit_assert=>assert_equals(
act = mo_settings->get_run_critical_tests( )
exp = abap_false ).
ENDMETHOD.
METHOD clear_settings_database.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'PROXY_URL' ).
CATCH cx_static_check ##NO_HANDLER.
"If entry didn't exist, that's okay
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'PROXY_PORT' ).
CATCH cx_static_check ##NO_HANDLER.
"If entry didn't exist, that's okay
ENDTRY.
TRY.
zcl_abapgit_persistence_db=>get_instance( )->delete(
iv_type = 'SETTINGS'
iv_value = 'CRIT_TESTS' ).
CATCH cx_static_check ##NO_HANDLER.
"If entry didn't exist, that's okay
ENDTRY.
ENDMETHOD.
ENDCLASS.