mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 18:16:16 +08:00
unit tests (#194)
This commit is contained in:
parent
d6c714fd73
commit
3189e5e3b3
|
@ -1408,7 +1408,8 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
|
|
||||||
lo_ui5_model->add_attribute_object( `oSystem`
|
lo_ui5_model->add_attribute_object( `oSystem`
|
||||||
)->add_attribute( n = `ID` v = ms_db-id
|
)->add_attribute( n = `ID` v = ms_db-id
|
||||||
)->add_attribute( n = `CHECK_DEBUG_ACTIVE` v = z2ui5_lcl_utility=>get_abap_2_json( abap_true ) apos_active = abap_false ).
|
" )->add_attribute( n = `CHECK_DEBUG_ACTIVE` v = z2ui5_lcl_utility=>get_abap_2_json( abap_true ) apos_active = abap_false
|
||||||
|
).
|
||||||
|
|
||||||
IF ms_next-t_after IS NOT INITIAL.
|
IF ms_next-t_after IS NOT INITIAL.
|
||||||
DATA(lo_list) = lo_ui5_model->add_attribute_list( `oAfter` ).
|
DATA(lo_list) = lo_ui5_model->add_attribute_list( `oAfter` ).
|
||||||
|
|
|
@ -2,10 +2,31 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||||
DURATION SHORT
|
DURATION SHORT
|
||||||
RISK LEVEL HARMLESS.
|
RISK LEVEL HARMLESS.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES z2ui5_if_app.
|
||||||
|
|
||||||
|
DATA product TYPE string.
|
||||||
|
DATA quantity TYPE string.
|
||||||
|
DATA check_initialized TYPE abap_bool.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_row,
|
||||||
|
title TYPE string,
|
||||||
|
value TYPE string,
|
||||||
|
descr TYPE string,
|
||||||
|
icon TYPE string,
|
||||||
|
info TYPE string,
|
||||||
|
selected TYPE abap_bool,
|
||||||
|
checkbox TYPE abap_bool,
|
||||||
|
END OF ty_row.
|
||||||
|
|
||||||
|
DATA t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS test_json_attri FOR TESTING RAISING cx_static_check.
|
METHODS test_json_attri FOR TESTING RAISING cx_static_check.
|
||||||
METHODS test_json_object FOR TESTING RAISING cx_static_check.
|
METHODS test_json_object FOR TESTING RAISING cx_static_check.
|
||||||
METHODS test_index_html FOR TESTING RAISING cx_static_check.
|
METHODS test_index_html FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS test_app FOR TESTING RAISING cx_static_check.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,4 +73,150 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD z2ui5_if_app~main.
|
||||||
|
|
||||||
|
IF check_initialized = abap_false.
|
||||||
|
check_initialized = abap_true.
|
||||||
|
product = 'tomato'.
|
||||||
|
quantity = '500'.
|
||||||
|
|
||||||
|
t_tab = VALUE #(
|
||||||
|
( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
( title = 'Peter' info = 'incompleted' descr = 'this is a description' icon = 'sap-icon://account' )
|
||||||
|
).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CASE client->get( )-event.
|
||||||
|
WHEN 'BUTTON_POST'.
|
||||||
|
client->popup_message_toast( |{ product } { quantity } - send to the server| ).
|
||||||
|
WHEN 'BACK'.
|
||||||
|
client->nav_app_leave( client->get_app( client->get( )-id_prev_app_stack ) ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
client->set_next( VALUE #( xml_main = z2ui5_cl_xml_view=>factory( )->shell(
|
||||||
|
)->page(
|
||||||
|
title = 'abap2UI5 - First Example'
|
||||||
|
navbuttonpress = client->_event( 'BACK' )
|
||||||
|
shownavbutton = abap_true
|
||||||
|
)->simple_form( title = 'Form Title' editable = abap_true
|
||||||
|
)->content( 'form'
|
||||||
|
)->title( 'Input'
|
||||||
|
)->label( 'quantity'
|
||||||
|
)->input( client->_bind( quantity )
|
||||||
|
)->label( 'product'
|
||||||
|
)->input(
|
||||||
|
value = product
|
||||||
|
enabled = abap_false
|
||||||
|
)->button(
|
||||||
|
text = 'post'
|
||||||
|
press = client->_event( 'BUTTON_POST' )
|
||||||
|
)->get_parent( )->get_parent(
|
||||||
|
)->list(
|
||||||
|
headertext = 'List Ouput'
|
||||||
|
items = client->_bind_one( t_tab )
|
||||||
|
mode = `SingleSelectMaster`
|
||||||
|
selectionchange = client->_event( 'SELCHANGE' )
|
||||||
|
)->standard_list_item(
|
||||||
|
title = '{TITLE}'
|
||||||
|
description = '{DESCR}'
|
||||||
|
icon = '{ICON}'
|
||||||
|
info = '{INFO}'
|
||||||
|
press = client->_event( 'TEST' )
|
||||||
|
type = `Navigation`
|
||||||
|
selected = `{SELECTED}`
|
||||||
|
)->get_root( )->xml_get( ) ) ).
|
||||||
|
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD test_app.
|
||||||
|
|
||||||
|
z2ui5_cl_http_handler=>client = VALUE #(
|
||||||
|
t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_TEST' ) )
|
||||||
|
).
|
||||||
|
|
||||||
|
DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ).
|
||||||
|
|
||||||
|
DATA lo_data TYPE REF TO data.
|
||||||
|
/ui2/cl_json=>deserialize(
|
||||||
|
EXPORTING
|
||||||
|
json = lv_response
|
||||||
|
CHANGING
|
||||||
|
data = lo_data ).
|
||||||
|
|
||||||
|
DATA lv_assign TYPE string.
|
||||||
|
FIELD-SYMBOLS <val> TYPE any.
|
||||||
|
|
||||||
|
UNASSIGN <val>.
|
||||||
|
lv_assign = `OVIEWMODEL->OUPDATE->QUANTITY->*`.
|
||||||
|
ASSIGN lo_data->(lv_assign) TO <val>.
|
||||||
|
IF <val> <> `500`.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'data binding - initial set oUpdate wrong' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
UNASSIGN <val>.
|
||||||
|
lv_assign = `VVIEW->*`.
|
||||||
|
ASSIGN lo_data->(lv_assign) TO <val>.
|
||||||
|
<val> = shift_left( <val> ).
|
||||||
|
IF <val>(9) <> `<mvc:View`.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'xml view - intital view wrong' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
UNASSIGN <val>.
|
||||||
|
lv_assign = `OSYSTEM->ID->*`.
|
||||||
|
ASSIGN lo_data->(lv_assign) TO <val>.
|
||||||
|
IF <val> IS INITIAL.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'id - initial value is initial' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
DATA(lv_id) = CONV string( <val> ).
|
||||||
|
|
||||||
|
UNASSIGN <val>.
|
||||||
|
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||||
|
FIELD-SYMBOLS <row> TYPE any.
|
||||||
|
lv_assign = `OVIEWMODEL->T_TAB->*`.
|
||||||
|
ASSIGN lo_data->(lv_assign) TO <tab>.
|
||||||
|
ASSIGN <tab>[ 1 ] TO <row>.
|
||||||
|
|
||||||
|
DATA ls_tab_test TYPE ltcl_unit_test=>ty_row.
|
||||||
|
ls_tab_test = VALUE #( title = 'Peter' info = 'completed' descr = 'this is a description' icon = 'sap-icon://account' ).
|
||||||
|
|
||||||
|
lv_assign = `TITLE->*`.
|
||||||
|
ASSIGN <row>->(lv_assign) TO <val>.
|
||||||
|
IF <val> <> ls_tab_test-title.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'data binding - initial tab data wrong' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lv_assign = `INFO->*`.
|
||||||
|
ASSIGN <row>->(lv_assign) TO <val>.
|
||||||
|
IF <val> <> ls_tab_test-info.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'data binding - initial tab data wrong' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lv_assign = `DESCR->*`.
|
||||||
|
ASSIGN <row>->(lv_assign) TO <val>.
|
||||||
|
IF <val> <> ls_tab_test-descr.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'data binding - initial tab data wrong' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lv_request) = `{"oUpdate":{"QUANTITY":"600"},"oSystem":{"ID": "` && lv_id && `"` && `,"CHECK_DEBUG_ACTIVE":true},"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`.
|
||||||
|
z2ui5_cl_http_handler=>client = VALUE #( body = lv_request ).
|
||||||
|
lv_response = z2ui5_cl_http_handler=>http_post( ).
|
||||||
|
|
||||||
|
CLEAR lo_data.
|
||||||
|
/ui2/cl_json=>deserialize(
|
||||||
|
EXPORTING
|
||||||
|
json = lv_response
|
||||||
|
CHANGING
|
||||||
|
data = lo_data ).
|
||||||
|
|
||||||
|
UNASSIGN <val>.
|
||||||
|
lv_assign = `OVIEWMODEL->OUPDATE->QUANTITY->*`.
|
||||||
|
ASSIGN lo_data->(lv_assign) TO <val>.
|
||||||
|
IF <val> <> `600`.
|
||||||
|
cl_abap_unit_assert=>fail( msg = 'data binding - frontend updated value wrong after roundtrip' quit = 5 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user