abap2UI5/src/00/z2ui5_cl_util_func.clas.testclasses.abap
oblomov 31a376b4fa
refactoring and cleanup (#812)
* refactoring and cleanup

* lint fixes
2024-01-25 10:03:17 +01:00

855 lines
23 KiB
ABAP

CLASS ltcl_test_app DEFINITION FOR TESTING.
PUBLIC SECTION.
INTERFACES if_serializable_object.
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.
CONSTANTS sv_status TYPE string VALUE `test` ##NEEDED.
CLASS-DATA sv_var TYPE string.
CLASS-DATA ss_tab TYPE ty_row.
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
CLASS-METHODS class_constructor.
DATA mv_val TYPE string ##NEEDED.
DATA ms_tab TYPE ty_row ##NEEDED.
DATA mt_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY ##NEEDED.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ltcl_test_app IMPLEMENTATION.
METHOD class_constructor.
sv_var = 1.
ss_tab = VALUE #( ).
st_tab = VALUE #( ).
ENDMETHOD.
ENDCLASS.
CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS check_input
IMPORTING
val TYPE data
RETURNING
VALUE(result) TYPE abap_bool.
METHODS test_assign FOR TESTING RAISING cx_static_check.
METHODS test_eledescr_rel_name FOR TESTING RAISING cx_static_check.
METHODS test_classdescr FOR TESTING RAISING cx_static_check.
METHODS test_substring_after FOR TESTING RAISING cx_static_check.
METHODS test_substring_before FOR TESTING RAISING cx_static_check.
METHODS test_string_shift FOR TESTING RAISING cx_static_check.
METHODS test_string_replace FOR TESTING RAISING cx_static_check.
METHODS test_raise_error FOR TESTING RAISING cx_static_check.
METHODS test_xsdbool FOR TESTING RAISING cx_static_check.
METHODS test_xsdbool_nested FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
DURATION MEDIUM
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS test_create FOR TESTING RAISING cx_static_check.
METHODS test_boolean_abap_2_json FOR TESTING RAISING cx_static_check.
METHODS test_boolean_check FOR TESTING RAISING cx_static_check.
METHODS test_c_trim FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_lower FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_upper FOR TESTING RAISING cx_static_check.
METHODS test_c_replace_assign_struc FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_horizontal_tab FOR TESTING RAISING cx_static_check.
METHODS test_time_get_timestampl FOR TESTING RAISING cx_static_check.
METHODS test_time_substract_seconds FOR TESTING RAISING cx_static_check.
METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check.
METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check.
METHODS test_func_get_user_tech FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_classname_by_ref FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_type_name FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_type_kind FOR TESTING RAISING cx_static_check.
METHODS test_rtti_check_type_kind FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_t_attri_by_obj FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_t_comp_by_struc FOR TESTING RAISING cx_static_check.
METHODS test_trans_json_any_2__w_tab FOR TESTING RAISING cx_static_check.
METHODS test_trans_json_any_2__w_struc FOR TESTING RAISING cx_static_check.
METHODS test_trans_json_2_any__w_dref FOR TESTING RAISING cx_static_check.
METHODS test_trans_ref_tab_2_tab FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_any_2__w_obj FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_any_2__w_data FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_2_any__w_obj FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_2_any__w_data FOR TESTING RAISING cx_static_check.
METHODS test_url_param_create_url FOR TESTING RAISING cx_static_check.
METHODS test_url_param_get FOR TESTING RAISING cx_static_check.
METHODS test_url_param_get_tab FOR TESTING RAISING cx_static_check.
METHODS test_url_param_set FOR TESTING RAISING cx_static_check.
METHODS test_x_check_raise FOR TESTING RAISING cx_static_check.
METHODS test_x_check_raise_not FOR TESTING RAISING cx_static_check.
METHODS test_x_raise FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
METHOD test_assign.
DATA(lo_app) = NEW ltcl_test_app( ).
lo_app->mv_val = `ABC`.
FIELD-SYMBOLS <any> TYPE any.
DATA(lv_assign) = `LO_APP->` && 'MV_VAL'.
ASSIGN (lv_assign) TO <any>.
cl_abap_unit_assert=>assert_equals(
act = <any>
exp = `ABC` ).
ENDMETHOD.
METHOD test_classdescr.
DATA(lo_app) = NEW ltcl_test_app( ).
DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes.
DATA(lv_test) = lt_attri[ name = `MS_TAB` ].
lv_test = lt_attri[ name = `MT_TAB` ].
lv_test = lt_attri[ name = `MV_VAL` ].
lv_test = lt_attri[ name = `SS_TAB` ].
lv_test = lt_attri[ name = `ST_TAB` ].
lv_test = lt_attri[ name = `SV_STATUS` ].
lv_test = lt_attri[ name = `SV_VAR` ].
ENDMETHOD.
METHOD test_eledescr_rel_name.
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( abap_true ) ).
cl_abap_unit_assert=>assert_equals(
act = lo_ele->get_relative_name( )
exp = `ABAP_BOOL` ).
ENDMETHOD.
METHOD test_substring_after.
cl_abap_unit_assert=>assert_equals(
act = substring_after( val = 'this is a string' sub = 'a' )
exp = ` string` ).
ENDMETHOD.
METHOD test_substring_before.
cl_abap_unit_assert=>assert_equals(
act = substring_before( val = 'this is a string' sub = 'a' )
exp = `this is ` ).
ENDMETHOD.
METHOD test_string_shift.
cl_abap_unit_assert=>assert_equals(
act = shift_left( shift_right( val = ` string ` sub = ` ` ) )
exp = `string` ).
ENDMETHOD.
METHOD test_string_replace.
DATA(lv_search) = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 ) ##NEEDED.
cl_abap_unit_assert=>assert_equals(
act = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 )
exp = `one ABC three` ).
ENDMETHOD.
METHOD test_raise_error.
TRY.
IF 1 = 1.
RAISE EXCEPTION TYPE z2ui5_cx_util_error.
ENDIF.
cl_abap_unit_assert=>fail( ).
CATCH z2ui5_cx_util_error INTO DATA(lx).
cl_abap_unit_assert=>assert_bound( lx ).
ENDTRY.
ENDMETHOD.
METHOD test_xsdbool.
DATA(lv_xsdbool) = xsdbool( 1 = 1 ).
IF lv_xsdbool = abap_false.
cl_abap_unit_assert=>assert_equals(
act = lv_xsdbool
exp = abap_false ).
ENDIF.
IF xsdbool( 1 = 1 ) = abap_false.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_xsdbool_nested.
DATA(lv_xsdbool) = check_input( xsdbool( 1 = 1 ) ).
IF lv_xsdbool = abap_false.
cl_abap_unit_assert=>assert_equals(
act = lv_xsdbool
exp = abap_false ).
ENDIF.
IF check_input( abap_false ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF check_input( xsdbool( 1 = 1 ) ) = abap_false.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD check_input.
result = val.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_boolean_check.
DATA(lv_bool) = xsdbool( 1 = 1 ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>boolean_check_by_data( lv_bool )
exp = abap_true ).
lv_bool = xsdbool( 1 = 2 ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>boolean_check_by_data( lv_bool )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>boolean_check_by_data( abap_true )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>boolean_check_by_data( abap_false )
exp = abap_true ).
ENDMETHOD.
METHOD test_create.
DATA(lo_test) = NEW z2ui5_cl_util_func( ) ##NEEDED.
ENDMETHOD.
METHOD test_rtti_get_classname_by_ref.
DATA(lo_test) = NEW z2ui5_cl_util_func( ).
DATA(lv_name) = z2ui5_cl_util_func=>rtti_get_classname_by_ref( lo_test ).
cl_abap_unit_assert=>assert_equals( exp = `Z2UI5_CL_UTIL_FUNC` act = lv_name ).
DATA(lo_test2) = NEW ltcl_test_app( ).
DATA(lv_name2) = z2ui5_cl_util_func=>rtti_get_classname_by_ref( lo_test2 ).
cl_abap_unit_assert=>assert_equals( exp = `LTCL_TEST_APP` act = lv_name2 ).
ENDMETHOD.
METHOD test_boolean_abap_2_json.
cl_abap_unit_assert=>assert_equals( exp = `false` act = z2ui5_cl_util_func=>boolean_abap_2_json( abap_false ) ).
IF `{ABCD}` <> z2ui5_cl_util_func=>boolean_abap_2_json( `{ABCD}` ).
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_time_get_timestampl.
DATA(lv_time) = z2ui5_cl_util_func=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_util_func=>time_substract_seconds(
time = lv_time
seconds = 60 * 60 * 4
).
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF lv_time < lv_time2.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_time_substract_seconds.
DATA(lv_time) = z2ui5_cl_util_func=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_util_func=>time_get_timestampl( ).
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF lv_time2 < lv_time.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_c_trim.
IF z2ui5_cl_util_func=>c_trim( ` JsadfHHs ` ) <> `JsadfHHs`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_c_trim_lower.
IF z2ui5_cl_util_func=>c_trim_lower( ` JsadfHHs ` ) <> `jsadfhhs`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_c_trim_upper.
IF z2ui5_cl_util_func=>c_trim_upper( ` JsadfHHs ` ) <> `JSADFHHS`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_func_get_uuid_32.
DATA(lv_uuid) = z2ui5_cl_util_func=>uuid_get_c32( ).
IF lv_uuid IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF strlen( lv_uuid ) <> 32.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_func_get_uuid_22.
DATA(lv_uuid) = z2ui5_cl_util_func=>uuid_Get_c22( ).
IF lv_uuid IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF strlen( lv_uuid ) <> 22.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_func_get_user_tech.
DATA(lv_uname) = z2ui5_cl_util_func=>user_get_tech( ).
IF sy-uname <> lv_uname OR lv_uname IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_x_raise.
TRY.
z2ui5_cl_util_func=>x_raise( ).
cl_abap_unit_assert=>fail( ).
CATCH cx_root.
ENDTRY.
ENDMETHOD.
METHOD test_x_check_raise.
TRY.
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 1 ) ).
cl_abap_unit_assert=>fail( ).
CATCH cx_root.
ENDTRY.
TRY.
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 3 ) ).
CATCH cx_root.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.
METHOD test_trans_json_any_2__w_tab.
TYPES:
BEGIN OF ty_row,
title TYPE string,
value TYPE string,
selected TYPE abap_bool,
END OF ty_row.
TYPES ty_t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
DATA(lt_tab) = VALUE ty_t_tab( ( title = 'Test' value = 'this is a description' selected = abap_true )
( title = 'Test2' value = 'this is a new descr' selected = abap_false ) ).
DATA(lv_tab_json) = z2ui5_cl_util_func=>trans_json_by_any( lt_tab ).
DATA(lv_result) = `[{"TITLE":"Test","VALUE":"this is a description","SELECTED":true},{"TITLE":"Test2","VALUE":"this is a new descr"}]`.
IF lv_result <> lv_tab_json.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_json_2_any__w_dref.
DATA(lv_test) = `{ ` &&
` "EDIT": { ` &&
` "DATE": "2023-08-26", ` &&
` "DEC1": -0.3333, ` &&
` "DEC2": 0, ` &&
` "DEC_SUM": -0.3333, ` &&
` "INT1": 0, ` &&
` "INT2": 0, ` &&
` "INT_SUM": 0, ` &&
` "TIME": "12:51:55" ` &&
` }, ` &&
` "oScroll": [], ` &&
` "OMESSAGEMANAGER": [], ` &&
` "ID": "0242B09497911EEE90CFA16736E6EEF8", ` &&
` "ARGUMENTS": [{ ` &&
` "EVENT": "BACK", ` &&
` "METHOD": "UPDATE", ` &&
` "CHECK_VIEW_DESTROY": false ` &&
` }] ` &&
` } `.
DATA mr_data TYPE REF TO data.
z2ui5_cl_util_func=>trans_json_2_any(
EXPORTING
val = lv_test
CHANGING
data = mr_data
).
FIELD-SYMBOLS <any> TYPE any.
ASSIGN (`MR_DATA->EDIT->TIME->*`) TO <any>.
cl_abap_unit_assert=>assert_equals(
act = <any>
exp = `12:51:55`
).
ENDMETHOD.
METHOD test_trans_json_any_2__w_struc.
TYPES:
BEGIN OF ty_row,
title TYPE string,
value TYPE string,
selected TYPE abap_bool,
END OF ty_row.
TYPES ty_t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
DATA(lt_tab2) = VALUE ty_t_tab( ) ##NEEDED.
DATA(ls_row) = VALUE ty_row( ).
ls_row-title = `test`.
DATA(lv_json) = z2ui5_cl_util_func=>trans_json_by_any( ls_row ).
IF lv_json IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_ref_tab_2_tab.
TYPES:
BEGIN OF ty_row,
title TYPE string,
value TYPE string,
selected TYPE abap_bool,
END OF ty_row.
TYPES ty_t_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
DATA(lv_result) = `[{"TITLE":"Test","VALUE":"this is a description","SELECTED":true},{"TITLE":"Test2","VALUE":"this is a new descr","SELECTED":false}]`.
DATA lo_data TYPE REF TO data.
/ui2/cl_json=>deserialize( EXPORTING json = lv_result
CHANGING data = lo_data ).
DATA(lt_tab2) = VALUE ty_t_tab( ).
z2ui5_cl_util_func=>trans_ref_tab_2_tab(
EXPORTING ir_tab_from = lo_data
IMPORTING t_result = lt_tab2 ).
DATA(lt_tab) = VALUE ty_t_tab( ( title = 'Test' value = 'this is a description' selected = abap_true )
( title = 'Test2' value = 'this is a new descr' selected = abap_false ) ).
IF lt_tab <> lt_tab2.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_url_param_create_url.
DATA(lt_param) = z2ui5_cl_util_func=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
DATA(lv_url) = z2ui5_cl_util_func=>url_param_create_url( lt_param ).
IF lv_url <> `sap-client=100&app_start=z2ui5_cl_app_hello_world`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_url_param_get.
DATA(lv_param) = z2ui5_cl_util_func=>url_param_get(
val = `app_start`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
IF lv_param <> `z2ui5_cl_app_hello_world`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_url_param_get_tab.
DATA(lt_param) = z2ui5_cl_util_func=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
IF lt_param[ n = `sap-client` ]-v <> `100`.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF lt_param[ n = `app_start` ]-v <> `z2ui5_cl_app_hello_world`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_url_param_set.
DATA(lv_param) = z2ui5_cl_util_func=>url_param_set(
name = `app_start`
value = `z2ui5_cl_app_hello_world2`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
IF lv_param <> `sap-client=100&app_start=z2ui5_cl_app_hello_world2`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_x_check_raise_not.
TRY.
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( 1 = 2 ) ).
CATCH z2ui5_cx_util_error.
cl_abap_unit_assert=>fail( ).
ENDTRY.
ENDMETHOD.
METHOD test_rtti_get_type_name.
DATA(lv_xsdbool) = VALUE xsdboolean( ).
DATA(lv_name) = z2ui5_cl_util_func=>rtti_get_type_name( lv_xsdbool ).
cl_abap_unit_assert=>assert_equals(
act = lv_name
exp = `XSDBOOLEAN`
).
ENDMETHOD.
METHOD test_rtti_get_type_kind.
DATA(lv_string) = VALUE string( ).
DATA(lv_type_kind) = z2ui5_cl_util_func=>rtti_get_type_kind( lv_string ).
cl_abap_unit_assert=>assert_equals(
act = lv_type_kind
exp = cl_abap_typedescr=>typekind_string
).
DATA lr_string TYPE REF TO string.
CREATE DATA lr_string.
lv_type_kind = z2ui5_cl_util_func=>rtti_get_type_kind( lr_string ).
cl_abap_unit_assert=>assert_equals(
act = lv_type_kind
exp = cl_abap_typedescr=>typekind_dref
).
ENDMETHOD.
METHOD test_rtti_check_type_kind.
DATA(lv_string) = VALUE string( ).
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>rtti_check_type_kind_dref( lv_string )
exp = abap_false
).
DATA lr_string TYPE REF TO string.
CREATE DATA lr_string.
cl_abap_unit_assert=>assert_equals(
act = z2ui5_cl_util_func=>rtti_check_type_kind_dref( lr_string )
exp = abap_true
).
ENDMETHOD.
METHOD test_rtti_get_t_attri_by_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lt_attri) = z2ui5_cl_util_func=>rtti_get_t_attri_by_object( lo_obj ).
IF lines( lt_attri ) <> 7.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_attri[ name = `MS_TAB` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_attri[ name = `SS_TAB` type_kind = `v` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_attri[ name = `SV_VAR` type_kind = `g` is_class = abap_true ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_attri[ name = `SV_STATUS` type_kind = `g` is_class = abap_true is_constant = `X` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_rtti_get_t_comp_by_struc.
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(ls_row) = VALUE ty_row( ).
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( ls_row ).
IF lines( lt_comp ) <> 7.
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_comp[ name = `TITLE` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_comp[ name = `VALUE` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_comp[ name = `SELECTED` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
IF NOT line_exists( lt_comp[ name = `CHECKBOX` ] ).
cl_abap_unit_assert=>fail( ).
ENDIF.
DATA(ls_title) = lt_comp[ 1 ].
IF ls_title-type->type_kind <> `g`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_xml_any_2__w_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_by_any( lo_obj ).
IF lv_xml IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_xml_2_any__w_obj.
DATA(lo_obj) = NEW ltcl_test_app( ).
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_by_any( lo_obj ).
CLEAR lo_obj.
z2ui5_cl_util_func=>trans_xml_2_any(
EXPORTING
xml = lv_xml
IMPORTING
any = lo_obj
).
IF lo_obj IS NOT BOUND.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_xml_any_2__w_data.
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(ls_row) = VALUE ty_row( ).
ls_row-value = `test`.
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_by_any( ls_row ).
IF lv_xml IS INITIAL.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
METHOD test_trans_xml_2_any__w_data.
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(ls_row) = VALUE ty_row( ).
DATA(ls_row2) = VALUE ty_row( ).
ls_row-value = `test`.
DATA(lv_xml) = z2ui5_cl_util_func=>trans_xml_by_any( ls_row ).
z2ui5_cl_util_func=>trans_xml_2_any(
EXPORTING
xml = lv_xml
IMPORTING
any = ls_row2
).
cl_abap_unit_assert=>assert_equals(
act = ls_row
exp = ls_row2
).
ENDMETHOD.
METHOD test_c_replace_assign_struc.
DATA(lv_result) = z2ui5_cl_util_func=>c_replace_assign_struc( `MO_APP->MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = 'MO_APP->MS_STRUC->'
).
DATA(lv_result2) = z2ui5_cl_util_func=>c_replace_assign_struc( `MO_APP->MS_STRUC-MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result2
exp = 'MO_APP->MS_STRUC-MS_STRUC->'
).
DATA(lv_result3) = z2ui5_cl_util_func=>c_replace_assign_struc( `*MO_APP->*MS_STRUC->*`).
cl_abap_unit_assert=>assert_equals(
act = lv_result3
exp = `*MO_APP->*MS_STRUC->`
).
DATA(lv_result4) = z2ui5_cl_util_func=>c_replace_assign_struc( `*MO_APP->*MS_STRUC`).
cl_abap_unit_assert=>assert_equals(
act = lv_result4
exp = `*MO_APP->*MS_STRUC-`
).
ENDMETHOD.
METHOD test_c_trim_horizontal_tab.
IF z2ui5_cl_util_func=>c_trim( |{ cl_abap_char_utilities=>horizontal_tab }|
&& |JsadfHHs|
&& |{ cl_abap_char_utilities=>horizontal_tab }| ) <> `JsadfHHs`.
cl_abap_unit_assert=>fail( ).
ENDIF.
ENDMETHOD.
ENDCLASS.