mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:09:24 +08:00
refactoring (#866)
* refactoring * update * refactoring * update * update * update * update * refactoring * update
This commit is contained in:
parent
6a49cbc0da
commit
6d5ef37197
|
@ -444,7 +444,6 @@ CLASS Z2UI5_CL_FW_HTTP_GET IMPLEMENTATION.
|
|||
` sap.z2ui5.oBody.OLOCATION.SEARCH = sap.z2ui5.search;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` let event = (args) => { if ( args != undefined ) { return args[ 0 ].EVENT; } };` && |\n| &&
|
||||
* ` let args = (args) => { if ( args != undefined ) { if ( args.length > 1 ) { return args.shift(); } } };` && |\n| &&
|
||||
` sap.z2ui5.oBody.S_FRONTEND = {` && |\n| &&
|
||||
` ID: sap.z2ui5?.oBody?.ID,` && |\n| &&
|
||||
` APP_START: sap.z2ui5?.oBody?.APP_START,` && |\n| &&
|
||||
|
@ -458,7 +457,10 @@ CLASS Z2UI5_CL_FW_HTTP_GET IMPLEMENTATION.
|
|||
` };` && |\n| &&
|
||||
` if ( sap.z2ui5.oBody?.ARGUMENTS != undefined ) { if ( sap.z2ui5.oBody?.ARGUMENTS.length > 0 ) { sap.z2ui5.oBody?.ARGUMENTS.shift(); } }` && |\n| &&
|
||||
` sap.z2ui5.oBody.S_FRONTEND.T_EVENT_ARG = sap.z2ui5.oBody?.ARGUMENTS;` && |\n| &&
|
||||
* ` debugger;` && |\n| &&
|
||||
` delete sap.z2ui5.oBody.ID;` && |\n| &&
|
||||
` delete sap.z2ui5.oBody?.OLOCATION;` && |\n| &&
|
||||
` delete sap.z2ui5.oBody?.VIEWNAME;` && |\n| &&
|
||||
` delete sap.z2ui5.oBody?.APP_START;` && |\n| &&
|
||||
` sap.z2ui5.oController.readHttp();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` })` && |\n| &&
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
CLASS ltcl_index_html_test DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
|
@ -6,20 +6,20 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
|||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_index_html FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_launchpad_compatibility FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_path FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_avoid_debugger FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_avoid_sap_ui_get_core FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_avoid_window FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_avoid_document FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_avoid_jquery FOR TESTING RAISING cx_static_check.
|
||||
METHODS file_not_initial FOR TESTING RAISING cx_static_check.
|
||||
METHODS launchpad_compatibility FOR TESTING RAISING cx_static_check.
|
||||
METHODS path_setup FOR TESTING RAISING cx_static_check.
|
||||
METHODS js_no_debugger FOR TESTING RAISING cx_static_check.
|
||||
METHODS js_no_sap_ui_get_core FOR TESTING RAISING cx_static_check.
|
||||
METHODS js_no_window FOR TESTING RAISING cx_static_check.
|
||||
METHODS js_no_document FOR TESTING RAISING cx_static_check.
|
||||
METHODS js_no_jquery FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
CLASS ltcl_index_html_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_index_html.
|
||||
METHOD file_not_initial.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = lo_get->main( ).
|
||||
|
@ -30,7 +30,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_launchpad_compatibility.
|
||||
METHOD launchpad_compatibility.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = lo_get->main( ).
|
||||
|
@ -41,7 +41,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_path.
|
||||
METHOD path_setup.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ).
|
||||
|
@ -55,7 +55,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_avoid_debugger.
|
||||
METHOD js_no_debugger.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ).
|
||||
|
@ -65,7 +65,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_avoid_sap_ui_get_core.
|
||||
METHOD js_no_sap_ui_get_core.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ) ##NEEDED.
|
||||
|
@ -75,7 +75,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_avoid_jquery.
|
||||
METHOD js_no_jquery.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ).
|
||||
|
@ -85,7 +85,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_avoid_window.
|
||||
METHOD js_no_window.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ) ##NEEDED.
|
||||
|
@ -95,7 +95,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_avoid_document.
|
||||
METHOD js_no_document.
|
||||
|
||||
DATA(lo_get) = NEW z2ui5_cl_fw_http_get( ).
|
||||
DATA(lv_index_html) = to_upper( lo_get->main( ) ) ##NEEDED.
|
||||
|
|
|
@ -165,7 +165,9 @@ CLASS z2ui5_cl_fw_http_mapper IMPLEMENTATION.
|
|||
z2ui5_cl_util_func=>url_param_get( val = `app_start` url = result-s_frontend-search ) ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = x.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
60
src/01/02/z2ui5_cl_fw_http_mapper.clas.testclasses.abap
Normal file
60
src/01/02/z2ui5_cl_fw_http_mapper.clas.testclasses.abap
Normal file
|
@ -0,0 +1,60 @@
|
|||
CLASS ltcl_http_json_mapper_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS request_json_to_abap FOR TESTING RAISING cx_static_check.
|
||||
METHODS model_front_to_back FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_http_json_mapper_test IMPLEMENTATION.
|
||||
|
||||
METHOD request_json_to_abap.
|
||||
|
||||
DATA(lv_payload) = `{"EDIT":{"NAME":"test"},"ARGUMENTS":[],"S_FRONTEND":{"ID":"ID_NR","EDIT":{"NAME":"test"},"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":"SEARCH"` &&
|
||||
`,"VIEWNAME":"MAIN","EVENT":"BUTTON_POST","T_EVENT_ARG":[]}}`.
|
||||
|
||||
DATA(lo_mapper) = NEW z2ui5_cl_fw_http_mapper( ).
|
||||
DATA(ls_result) = lo_mapper->request_json_to_abap( lv_payload ).
|
||||
|
||||
DATA(ls_exp) = VALUE z2ui5_if_client=>ty_s_http_request_post(
|
||||
s_frontend = VALUE #(
|
||||
id = `ID_NR`
|
||||
viewname = `MAIN`
|
||||
origin = `ORIGIN`
|
||||
pathname = `PATHNAME`
|
||||
search = `SEARCH`
|
||||
event = `BUTTON_POST`
|
||||
) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_result-s_frontend
|
||||
exp = ls_exp-s_frontend ).
|
||||
|
||||
DATA lt_tree TYPE z2ui5_if_ajson_types=>ty_nodes_ts.
|
||||
lt_tree = ls_result-o_model->mt_json_tree.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_tree[ name = `NAME` ]-value
|
||||
exp = `test` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_tree )
|
||||
exp = 2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD model_front_to_back.
|
||||
|
||||
* NEW z2ui5_cl_fw_http_mapper( )->model_front_to_back(
|
||||
* viewname = `MAIN`
|
||||
* app = lo_ap
|
||||
* t_attri = lt_attri
|
||||
* model = lo_ajson ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -37,7 +37,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_FW_HTTP_POST IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_fw_http_post IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -63,17 +63,21 @@ CLASS Z2UI5_CL_FW_HTTP_POST IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD main_begin.
|
||||
|
||||
ms_request = mo_http_mapper->request_json_to_abap( mv_request_json ).
|
||||
|
||||
TRY.
|
||||
|
||||
ms_request = mo_http_mapper->request_json_to_abap( mv_request_json ).
|
||||
|
||||
IF ms_request-s_frontend-id IS NOT INITIAL.
|
||||
mo_app = mo_app->factory_by_frontend( ).
|
||||
|
||||
ELSEIF ms_request-s_control-app_start IS NOT INITIAL.
|
||||
mo_app = mo_app->factory_first_start( ).
|
||||
|
||||
ELSE.
|
||||
mo_app = mo_app->factory_system_startup( ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
mo_app = mo_app->factory_system_error( x ).
|
||||
ENDTRY.
|
||||
|
@ -91,12 +95,11 @@ CLASS Z2UI5_CL_FW_HTTP_POST IMPLEMENTATION.
|
|||
ms_response-s_frontend-params = mo_app->ms_next-s_set.
|
||||
ms_response-s_frontend-id = mo_app->ms_db-id.
|
||||
|
||||
result = mo_http_mapper->response_abap_to_json( ms_response ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
|
||||
result = mo_http_mapper->response_abap_to_json( ms_response ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
35
src/01/02/z2ui5_cl_fw_http_post.clas.testclasses.abap
Normal file
35
src/01/02/z2ui5_cl_fw_http_post.clas.testclasses.abap
Normal file
|
@ -0,0 +1,35 @@
|
|||
|
||||
CLASS ltcl_post_handler_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS:
|
||||
load_startup_app FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_fw_http_post DEFINITION LOCAL FRIENDS ltcl_post_handler_test.
|
||||
|
||||
CLASS ltcl_post_handler_test IMPLEMENTATION.
|
||||
|
||||
METHOD load_startup_app.
|
||||
|
||||
DATA(lv_payload) = `{"S_FRONTEND":{"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":""}}`.
|
||||
DATA(lo_post) = NEW z2ui5_cl_fw_http_post( lv_payload ).
|
||||
lo_post->main_begin( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound( lo_post->mo_app ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_post->ms_request-s_frontend-origin
|
||||
exp = `ORIGIN` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_post->ms_request-s_frontend-pathname
|
||||
exp = `PATHNAME` ).
|
||||
|
||||
DATA(lo_startup) = CAST z2ui5_cl_fw_app_startup( lo_post->mo_app->ms_db-app ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -1,26 +1,27 @@
|
|||
CLASS z2ui5_cl_fw_app_error DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PROTECTED.
|
||||
class Z2UI5_CL_FW_APP_ERROR definition
|
||||
public
|
||||
final
|
||||
create protected .
|
||||
|
||||
PUBLIC SECTION.
|
||||
public section.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
DATA mx_error TYPE REF TO cx_root .
|
||||
interfaces Z2UI5_IF_APP .
|
||||
interfaces IF_SERIALIZABLE_OBJECT .
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
!error TYPE REF TO cx_root
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_fw_app_error.
|
||||
data MX_ERROR type ref to CX_ROOT .
|
||||
|
||||
class-methods FACTORY
|
||||
importing
|
||||
!ERROR type ref to CX_ROOT
|
||||
returning
|
||||
value(RESULT) type ref to Z2UI5_CL_FW_APP_ERROR .
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_fw_app_error IMPLEMENTATION.
|
||||
CLASS Z2UI5_CL_FW_APP_ERROR IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
@ -30,6 +31,7 @@ CLASS z2ui5_cl_fw_app_error IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
DATA(lv_url) = shift_left( val = client->get( )-s_config-origin && client->get( )-s_config-pathname
|
||||
|
@ -60,5 +62,4 @@ CLASS z2ui5_cl_fw_app_error IMPLEMENTATION.
|
|||
client->view_display( view->_stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
20
src/01/03/z2ui5_cl_fw_app_error.clas.testclasses.abap
Normal file
20
src/01/03/z2ui5_cl_fw_app_error.clas.testclasses.abap
Normal file
|
@ -0,0 +1,20 @@
|
|||
CLASS ltcl_app_error_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL DANGEROUS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS first_test FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_app_error_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lx) = NEW z2ui5_cx_util_error( ).
|
||||
DATA(lo_app) = z2ui5_cl_fw_app_error=>factory( lx ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
CLASS ltcl_app_startup_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL DANGEROUS.
|
||||
|
||||
|
@ -8,7 +8,7 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
CLASS ltcl_app_startup_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
|
|
|
@ -6,19 +6,28 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
|||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_first_start FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_get FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_post FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_first_start.
|
||||
METHOD test_get.
|
||||
|
||||
DATA(lv_index_html) = z2ui5_cl_http_handler=>http_get( ).
|
||||
IF lv_index_html IS INITIAL.
|
||||
DATA(lv_resp) = z2ui5_cl_http_handler=>http_get( ).
|
||||
IF lv_resp IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( 'HTTP GET' ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_post.
|
||||
|
||||
* DATA(lv_resp) = z2ui5_cl_http_handler=>http_post( value #( ) ).
|
||||
* IF lv_resp IS INITIAL.
|
||||
* cl_abap_unit_assert=>fail( 'HTTP POST' ).
|
||||
* ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user