From 9063a2d6a64e15b49a4cc2f1b1bb27c4f469ab92 Mon Sep 17 00:00:00 2001 From: EduardoCopat Date: Thu, 10 Nov 2016 16:40:49 +0100 Subject: [PATCH] Settings (proxy) #412 (#414) * Added empty settings page Also added it in the Advanced meun * Added Settings HTML structure * Provide settings persistence I put the unit tests in the persistence include rather than the unit test include * Triggering settings save on UI event * Plug-in the proxy settings into CL_HTTP_CLIENT Also, removed a break point... * abaplint fixes * abaplint fixes #2 --- src/zabapgit_app.prog.abap | 7 +- src/zabapgit_app_impl.prog.abap | 7 + src/zabapgit_definitions.prog.abap | 1 + src/zabapgit_git.prog.abap | 10 +- src/zabapgit_gui_pages.prog.abap | 3 +- src/zabapgit_gui_router.prog.abap | 5 +- src/zabapgit_html_action_utils.prog.abap | 14 -- src/zabapgit_page_main.prog.abap | 1 + src/zabapgit_page_settings.prog.abap | 169 +++++++++++++++ src/zabapgit_page_settings.prog.xml | 48 +++++ src/zabapgit_persistence.prog.abap | 261 +++++++++++++++++++++-- src/zabapgit_unit_test.prog.abap | 1 - 12 files changed, 492 insertions(+), 35 deletions(-) create mode 100644 src/zabapgit_page_settings.prog.abap create mode 100644 src/zabapgit_page_settings.prog.xml diff --git a/src/zabapgit_app.prog.abap b/src/zabapgit_app.prog.abap index 639cddca6..26f17a1b2 100644 --- a/src/zabapgit_app.prog.abap +++ b/src/zabapgit_app.prog.abap @@ -6,6 +6,7 @@ CLASS lcl_gui DEFINITION DEFERRED. CLASS lcl_persistence_user DEFINITION DEFERRED. CLASS lcl_repo_srv DEFINITION DEFERRED. CLASS lcl_persistence_db DEFINITION DEFERRED. +CLASS lcl_persistence_settings DEFINITION DEFERRED. *----------------------------------------------------------------------* * CLASS lcl_app DEFINITION @@ -31,10 +32,14 @@ CLASS lcl_app DEFINITION FINAL. CLASS-METHODS db RETURNING VALUE(ro_db) TYPE REF TO lcl_persistence_db. + CLASS-METHODS settings + RETURNING VALUE(ro_settings) TYPE REF TO lcl_persistence_settings. + PRIVATE SECTION. CLASS-DATA: go_gui TYPE REF TO lcl_gui, go_current_user TYPE REF TO lcl_persistence_user, go_db TYPE REF TO lcl_persistence_db, - go_repo_srv TYPE REF TO lcl_repo_srv. + go_repo_srv TYPE REF TO lcl_repo_srv, + go_settings TYPE REF TO lcl_persistence_settings. ENDCLASS. "lcl_app \ No newline at end of file diff --git a/src/zabapgit_app_impl.prog.abap b/src/zabapgit_app_impl.prog.abap index c9d95128e..9af5079b0 100644 --- a/src/zabapgit_app_impl.prog.abap +++ b/src/zabapgit_app_impl.prog.abap @@ -60,4 +60,11 @@ CLASS lcl_app IMPLEMENTATION. ENDMETHOD. "repo_srv + METHOD settings. + IF go_settings IS NOT BOUND. + CREATE OBJECT go_settings. + ENDIF. + ro_settings = go_settings. + ENDMETHOD. + ENDCLASS. "lcl_app \ No newline at end of file diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 075f6415e..58343edfb 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -186,5 +186,6 @@ CONSTANTS: BEGIN OF gc_action, go_branch_overview TYPE string VALUE 'go_branch_overview', go_playground TYPE string VALUE 'go_playground', go_debuginfo TYPE string VALUE 'go_debuginfo', + go_settings type string value 'go_settings', jump TYPE string VALUE 'jump', END OF gc_action. \ No newline at end of file diff --git a/src/zabapgit_git.prog.abap b/src/zabapgit_git.prog.abap index 4aa359c21..c80967bbf 100644 --- a/src/zabapgit_git.prog.abap +++ b/src/zabapgit_git.prog.abap @@ -337,13 +337,17 @@ CLASS lcl_git_transport IMPLEMENTATION. DATA: lv_data TYPE string, lv_uri TYPE string, - lv_expect_potentual_auth TYPE abap_bool. + lv_expect_potentual_auth TYPE abap_bool, + lo_settings TYPE REF TO lcl_settings. + lo_settings = lcl_app=>settings( )->read( ). cl_http_client=>create_by_url( EXPORTING - url = lcl_url=>host( iv_url ) - ssl_id = 'ANONYM' + url = lcl_url=>host( iv_url ) + ssl_id = 'ANONYM' + proxy_host = lo_settings->get_proxy_url( ) + proxy_service = lo_settings->get_proxy_port( ) IMPORTING client = ei_client ). diff --git a/src/zabapgit_gui_pages.prog.abap b/src/zabapgit_gui_pages.prog.abap index ba388c6ae..46343076e 100644 --- a/src/zabapgit_gui_pages.prog.abap +++ b/src/zabapgit_gui_pages.prog.abap @@ -15,4 +15,5 @@ INCLUDE zabapgit_page_diff. INCLUDE zabapgit_page_explore. INCLUDE zabapgit_page_main. INCLUDE zabapgit_page_stage. -INCLUDE zabapgit_page_debug. \ No newline at end of file +INCLUDE zabapgit_page_debug. +INCLUDE zabapgit_page_settings. \ No newline at end of file diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap index 0d8689f81..58b254941 100644 --- a/src/zabapgit_gui_router.prog.abap +++ b/src/zabapgit_gui_router.prog.abap @@ -73,11 +73,12 @@ CLASS lcl_gui_router IMPLEMENTATION. CASE iv_action. " General routing - WHEN gc_action-go_main " Go Main page + WHEN gc_action-go_main " Go Main page OR gc_action-go_explore " Go Explore page OR gc_action-go_db " Go DB util page OR gc_action-go_background_run " Go background run page - OR gc_action-go_debuginfo. " Go debug info page + OR gc_action-go_debuginfo " Go debug info page + OR gc_action-go_settings. " Go settings page ei_page = get_page_by_name( iv_action ). ev_state = gc_event_state-new_page. WHEN gc_action-go_background. " Go Background page diff --git a/src/zabapgit_html_action_utils.prog.abap b/src/zabapgit_html_action_utils.prog.abap index 4c6838765..8fd1ed7bb 100644 --- a/src/zabapgit_html_action_utils.prog.abap +++ b/src/zabapgit_html_action_utils.prog.abap @@ -74,10 +74,6 @@ CLASS lcl_html_action_utils DEFINITION FINAL. IMPORTING it_postdata TYPE cnht_post_data_tab EXPORTING es_fields TYPE any. -* CLASS-METHODS repo_key_encode -* IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key -* RETURNING VALUE(rv_string) TYPE string. - CLASS-METHODS decode_bg_update IMPORTING iv_getdata TYPE clike RETURNING VALUE(rs_fields) TYPE lcl_persistence_background=>ty_background. @@ -311,16 +307,6 @@ CLASS lcl_html_action_utils IMPLEMENTATION. ENDMETHOD. "parse_commit_request -* METHOD repo_key_encode. -* -* DATA: lt_fields TYPE tihttpnvp. -* -* add_field( EXPORTING name = 'KEY' iv = iv_key CHANGING ct = lt_fields ). -* -* rv_string = cl_http_utility=>if_http_utility~fields_to_string( lt_fields ). -* -* ENDMETHOD. "repo_key_encode - METHOD decode_bg_update. DATA: lt_fields TYPE tihttpnvp. diff --git a/src/zabapgit_page_main.prog.abap b/src/zabapgit_page_main.prog.abap index f62a63e44..09c7140e4 100644 --- a/src/zabapgit_page_main.prog.abap +++ b/src/zabapgit_page_main.prog.abap @@ -179,6 +179,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. lo_betasub->add( iv_txt = 'Object to files' iv_act = gc_action-zip_object ) ##NO_TEXT. lo_betasub->add( iv_txt = 'Page playground' iv_act = gc_action-go_playground ) ##NO_TEXT. lo_betasub->add( iv_txt = 'Debug info' iv_act = gc_action-go_debuginfo ) ##NO_TEXT. + lo_betasub->add( iv_txt = 'Settings' iv_act = gc_action-go_settings ) ##NO_TEXT. ro_menu->add( iv_txt = 'Clone' iv_act = gc_action-repo_clone ) ##NO_TEXT. ro_menu->add( iv_txt = 'Explore' iv_act = gc_action-go_explore ) ##NO_TEXT. diff --git a/src/zabapgit_page_settings.prog.abap b/src/zabapgit_page_settings.prog.abap new file mode 100644 index 000000000..5fc857fb7 --- /dev/null +++ b/src/zabapgit_page_settings.prog.abap @@ -0,0 +1,169 @@ +*&---------------------------------------------------------------------* +*& Include ZABAPGIT_PAGE_SETTINGS +*&---------------------------------------------------------------------* + +CLASS lcl_gui_page_settings DEFINITION FINAL INHERITING FROM lcl_gui_page_super. + PUBLIC SECTION. + METHODS lif_gui_page~render REDEFINITION. + METHODS lif_gui_page~on_event REDEFINITION. + CONSTANTS: + BEGIN OF c_action, + save_settings TYPE string VALUE 'save_settings', + END OF c_action. + PRIVATE SECTION. + METHODS styles + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. + METHODS render_proxy + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. + METHODS render_form_begin + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. + METHODS render_form_end + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper. + METHODS build_settings + IMPORTING + it_post_fields TYPE tihttpnvp. + METHODS validate_settings. + METHODS parse_post + IMPORTING + it_postdata TYPE cnht_post_data_tab + RETURNING + VALUE(rt_post_fields) TYPE tihttpnvp. + METHODS persist_settings + RAISING + lcx_exception. + METHODS read_settings. + DATA: + mo_settings TYPE REF TO lcl_settings, + mv_error TYPE abap_bool. +ENDCLASS. + +CLASS lcl_gui_page_settings IMPLEMENTATION. + + METHOD lif_gui_page~render. + CREATE OBJECT ro_html. + + read_settings( ). + + ro_html->add( header( io_include_style = styles( ) ) ). + ro_html->add( title( 'Settings' ) ). + + ro_html->add( render_form_begin( ) ). + ro_html->add( render_proxy( ) ). + ro_html->add( render_form_end( ) ). + ENDMETHOD. + + METHOD styles. + CREATE OBJECT ro_html. + + _add '/* settings STYLES */'. + _add 'div.settings_container {'. + _add ' padding: 0.5em;'. + _add ' font-size: 10pt;'. + _add ' color: #444;'. + _add ' background-color: #f2f2f2;'. + _add '}'. + ENDMETHOD. + + METHOD render_proxy. + CREATE OBJECT ro_html. + ro_html->add( |

Proxy

| ). + ro_html->add( || ). + ro_html->add( |
| ). + ro_html->add( `` ). + ro_html->add( |
| ). + ro_html->add( || ). + ro_html->add( |
| ). + ro_html->add( `` ). + ro_html->add( |
| ). + ro_html->add( |
| ). + ENDMETHOD. + + METHOD lif_gui_page~on_event. + DATA: + lt_post_fields TYPE tihttpnvp. + CASE iv_action. + WHEN c_action-save_settings. + lt_post_fields = parse_post( it_postdata ). + + build_settings( lt_post_fields ). + + validate_settings( ). + + IF mv_error = abap_true. + MESSAGE 'Error when saving settings. Open an issue at https://github.com/larshp/abapGit' TYPE 'E'. + ELSE. + persist_settings( ). + ENDIF. + + ev_state = gc_event_state-go_back. + ENDCASE. + ENDMETHOD. + + + METHOD build_settings. + DATA ls_post_field TYPE ihttpnvp. + + CREATE OBJECT mo_settings. + READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'proxy_url'. + IF sy-subrc <> 0. + mv_error = abap_true. + ENDIF. + mo_settings->set_proxy_url( ls_post_field-value ). + + READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'proxy_port'. + IF sy-subrc <> 0. + mv_error = abap_true. + ENDIF. + mo_settings->set_proxy_port( ls_post_field-value ). + ENDMETHOD. + + + METHOD validate_settings. + IF ( mo_settings->get_proxy_url( ) IS NOT INITIAL AND mo_settings->get_proxy_port( ) IS INITIAL ) OR + ( mo_settings->get_proxy_url( ) IS INITIAL AND mo_settings->get_proxy_port( ) IS NOT INITIAL ). + MESSAGE 'If specifying proxy, specify both URL and port' TYPE 'W'. + ENDIF. + ENDMETHOD. + + + METHOD parse_post. + DATA lv_serialized_post_data TYPE string. + + CONCATENATE LINES OF it_postdata INTO lv_serialized_post_data. + rt_post_fields = cl_http_utility=>if_http_utility~string_to_fields( lv_serialized_post_data ). + ENDMETHOD. + + + METHOD persist_settings. + + DATA lo_settings_persistence TYPE REF TO lcl_persistence_settings. + + lo_settings_persistence = lcl_app=>settings( ). + lo_settings_persistence->modify( mo_settings ). + MESSAGE 'Settings succesfully saved' TYPE 'S'. + + ENDMETHOD. + + METHOD render_form_begin. + CREATE OBJECT ro_html. + ro_html->add( '
' ). + ro_html->add( `
` ). + ENDMETHOD. + + METHOD render_form_end. + CREATE OBJECT ro_html. + ro_html->add( '' ). + ro_html->add( '
' ). + ro_html->add( '
' ). + ENDMETHOD. + + + METHOD read_settings. + + DATA lo_settings_persistence TYPE REF TO lcl_persistence_settings. + lo_settings_persistence = lcl_app=>settings( ). + mo_settings = lo_settings_persistence->read( ). + + ENDMETHOD. + +ENDCLASS. \ No newline at end of file diff --git a/src/zabapgit_page_settings.prog.xml b/src/zabapgit_page_settings.prog.xml new file mode 100644 index 000000000..8506d80c5 --- /dev/null +++ b/src/zabapgit_page_settings.prog.xml @@ -0,0 +1,48 @@ + + + + + + ZABAPGIT_PAGE_SETTINGS + A + + + X + + + + + + I + + + + 0000-00-00 + + 0000-00-00 + + + + + E + + + 0000-00-00 + + 0000-00-00 + + + X + + + + R + + Include ZABAPGIT_PAGE_SETTINGS + 30 + + + + + + diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index 9a4bf77c5..2a8d9efbf 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -1,4 +1,4 @@ -*&---------------------------------------------------------------------* +*&---------------------------- *& Include ZABAPGIT_PERSISTENCE *&---------------------------------------------------------------------* @@ -147,8 +147,8 @@ CLASS lcl_persistence_repo DEFINITION FINAL. RAISING lcx_exception. METHODS update_offline - IMPORTING iv_key TYPE ty_repo-key - iv_offline TYPE ty_repo_xml-offline + IMPORTING iv_key TYPE ty_repo-key + iv_offline TYPE ty_repo_xml-offline RAISING lcx_exception. METHODS add @@ -240,7 +240,7 @@ CLASS lcl_persistence_background DEFINITION FINAL. RAISING lcx_exception. METHODS exists - IMPORTING iv_key TYPE ty_background-key + IMPORTING iv_key TYPE ty_background-key RETURNING VALUE(rv_yes) TYPE abap_bool RAISING lcx_exception. @@ -384,22 +384,22 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. RAISING lcx_exception. METHODS set_repo_username - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url iv_username TYPE string RAISING lcx_exception. METHODS get_repo_username - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url RETURNING VALUE(rv_username) TYPE string RAISING lcx_exception. METHODS set_repo_email - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url iv_email TYPE string RAISING lcx_exception. METHODS get_repo_email - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url RETURNING VALUE(rv_email) TYPE string RAISING lcx_exception. @@ -425,9 +425,9 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. DATA: mv_user TYPE xubname. TYPES: BEGIN OF ty_repo_config, - url TYPE lcl_persistence_repo=>ty_repo-url, - username TYPE string, - email TYPE string, + url TYPE lcl_persistence_repo=>ty_repo-url, + username TYPE string, + email TYPE string, END OF ty_repo_config. TYPES: ty_repo_config_tt TYPE STANDARD TABLE OF ty_repo_config WITH DEFAULT KEY. @@ -461,12 +461,12 @@ CLASS lcl_persistence_user DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. RAISING lcx_exception. METHODS read_repo_config - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url RETURNING VALUE(rs_repo_config) TYPE ty_repo_config RAISING lcx_exception. METHODS update_repo_config - IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url + IMPORTING iv_url TYPE lcl_persistence_repo=>ty_repo-url is_repo_config TYPE ty_repo_config RAISING lcx_exception. @@ -1345,4 +1345,239 @@ CLASS lcl_persistence_migrate IMPLEMENTATION. ENDMETHOD. +ENDCLASS. + +CLASS lcl_settings DEFINITION FINAL. + + PUBLIC SECTION. + METHODS set_proxy_url + IMPORTING + iv_url TYPE string. + METHODS set_proxy_port + IMPORTING + iv_port TYPE string. + METHODS get_proxy_url + RETURNING + VALUE(rv_proxy_url) TYPE string. + METHODS get_proxy_port + RETURNING + VALUE(rv_port) TYPE string. + PROTECTED SECTION. + + PRIVATE SECTION. + DATA mv_proxy_url TYPE string. + DATA mv_proxy_port TYPE string. + + +ENDCLASS. + +CLASS lcl_settings IMPLEMENTATION. + + + METHOD set_proxy_url. + mv_proxy_url = iv_url. + ENDMETHOD. + + METHOD get_proxy_url. + rv_proxy_url = mv_proxy_url. + ENDMETHOD. + + METHOD set_proxy_port. + mv_proxy_port = iv_port. + ENDMETHOD. + + METHOD get_proxy_port. + rv_port = mv_proxy_port. + ENDMETHOD. + +ENDCLASS. + + +CLASS lcl_persistence_settings DEFINITION FINAL. + + PUBLIC SECTION. + METHODS modify + IMPORTING + io_settings TYPE REF TO lcl_settings + RAISING + lcx_exception. + METHODS read + RETURNING + VALUE(ro_settings) TYPE REF TO lcl_settings. + + PROTECTED SECTION. + + PRIVATE SECTION. + +ENDCLASS. + +CLASS lcl_persistence_settings IMPLEMENTATION. + + + METHOD modify. + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + iv_data = io_settings->get_proxy_url( ) ). + + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' + iv_data = io_settings->get_proxy_port( ) ). + ENDMETHOD. + + + METHOD read. + CREATE OBJECT ro_settings. + TRY. + ro_settings->set_proxy_url( + lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + ) ). + CATCH lcx_not_found. + ro_settings->set_proxy_url( '' ). + ENDTRY. + TRY. + ro_settings->set_proxy_port( + lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' + ) ). + CATCH lcx_not_found. + ro_settings->set_proxy_port( '' ). + ENDTRY. + ENDMETHOD. + +ENDCLASS. + +CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PRIVATE SECTION. + METHODS: + setup, + modify_settings_proxy_url FOR TESTING, + modify_settings_proxy_port FOR TESTING, + read_settings FOR TESTING, + read_not_found_url FOR TESTING, + read_not_found_port FOR TESTING. + DATA: + mo_persistence_settings TYPE REF TO lcl_persistence_settings, + mo_settings TYPE REF TO lcl_settings. +ENDCLASS. + +CLASS ltcl_persistence_settings IMPLEMENTATION. + METHOD setup. + CREATE OBJECT mo_persistence_settings. + "These tests may fail if you are locking the entries (e.g. the ZABAPGIT transaction is open) + ENDMETHOD. + + METHOD modify_settings_proxy_url. + DATA lv_proxy_url TYPE string. + TRY. + CREATE OBJECT mo_settings. + mo_settings->set_proxy_url( 'http://proxy' ). + + mo_persistence_settings->modify( mo_settings ). + + lv_proxy_url = lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_proxy_url + exp = 'http://proxy' ). + CATCH cx_root. + cl_abap_unit_assert=>fail( 'Unexpected exception' ). + ENDTRY. + ENDMETHOD. + + METHOD modify_settings_proxy_port. + DATA lv_proxy_port TYPE string. + TRY. + CREATE OBJECT mo_settings. + mo_settings->set_proxy_port( '8080' ). + + mo_persistence_settings->modify( mo_settings ). + + lv_proxy_port = lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_proxy_port + exp = '8080' ). + CATCH cx_root. + cl_abap_unit_assert=>fail( 'Unexpected exception' ). + ENDTRY. + ENDMETHOD. + + METHOD read_settings. + TRY. + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + iv_data = 'A_URL' ). + + lcl_app=>db( )->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' ). + CATCH cx_root. + cl_abap_unit_assert=>fail( 'Unexpected exception' ). + ENDTRY. + ENDMETHOD. + + METHOD read_not_found_port. + TRY. + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + iv_data = 'A_URL' ). + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' + iv_data = '' ). + + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_port( ) + exp = '' ). + CATCH cx_root. + cl_abap_unit_assert=>fail( 'Unexpected exception' ). + ENDTRY. + ENDMETHOD. + + METHOD read_not_found_url. + TRY. + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_PORT' + iv_data = '1000' ). + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'PROXY_URL' + iv_data = '' ). + mo_settings = mo_persistence_settings->read( ). + + cl_abap_unit_assert=>assert_equals( + act = mo_settings->get_proxy_url( ) + exp = '' ). + CATCH cx_root. + cl_abap_unit_assert=>fail( 'Unexpected exception' ). + ENDTRY. + ENDMETHOD. + ENDCLASS. \ No newline at end of file diff --git a/src/zabapgit_unit_test.prog.abap b/src/zabapgit_unit_test.prog.abap index 9c8f61b24..114207f29 100644 --- a/src/zabapgit_unit_test.prog.abap +++ b/src/zabapgit_unit_test.prog.abap @@ -1745,5 +1745,4 @@ CLASS ltcl_path IMPLEMENTATION. ENDMETHOD. - ENDCLASS. "ltcl_path \ No newline at end of file