abapGit/src/utils/zcl_abapgit_string_map.clas.testclasses.abap

182 lines
3.9 KiB
ABAP

CLASS ltcl_sm_test DEFINITION
FINAL
FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_struc,
a TYPE string,
b TYPE abap_bool,
c TYPE i,
END OF ty_struc.
METHODS simple FOR TESTING RAISING zcx_abapgit_exception.
METHODS freeze FOR TESTING RAISING zcx_abapgit_exception.
METHODS strict FOR TESTING RAISING zcx_abapgit_exception.
METHODS case_insensitive FOR TESTING RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS ltcl_sm_test IMPLEMENTATION.
METHOD simple.
DATA lo_cut TYPE REF TO zcl_abapgit_string_map.
lo_cut = zcl_abapgit_string_map=>create( ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->is_empty( )
exp = abap_true ).
lo_cut->set(
iv_key = 'A'
iv_val = '1' ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->is_empty( )
exp = abap_false ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->has( 'A' )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->get( 'A' )
exp = '1' ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->has( 'B' )
exp = abap_false ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->get( 'B' )
exp = '' ).
lo_cut->delete( 'A' ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->is_empty( )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->has( 'A' )
exp = abap_false ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->get( 'A' )
exp = '' ).
ENDMETHOD.
METHOD freeze.
DATA lo_cut TYPE REF TO zcl_abapgit_string_map.
lo_cut = zcl_abapgit_string_map=>create( ).
lo_cut->set(
iv_key = 'A'
iv_val = '1' )->freeze( ).
TRY.
lo_cut->set(
iv_key = 'B'
iv_val = '2' ).
cl_abap_unit_assert=>fail( ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
lo_cut->delete( 'A' ).
cl_abap_unit_assert=>fail( ).
CATCH zcx_abapgit_exception.
ENDTRY.
TRY.
lo_cut->clear( ).
cl_abap_unit_assert=>fail( ).
CATCH zcx_abapgit_exception.
ENDTRY.
ENDMETHOD.
METHOD strict.
DATA ls_struc_act TYPE ty_struc.
DATA ls_struc_exp TYPE ty_struc.
DATA lo_x TYPE REF TO cx_root.
DATA lo_cut TYPE REF TO zcl_abapgit_string_map.
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
lo_cut = zcl_abapgit_string_map=>create( ).
lo_cut->set(
iv_key = 'a'
iv_val = 'avalue' ).
lo_cut->set(
iv_key = 'b'
iv_val = 'X' ).
lo_cut->set(
iv_key = 'c'
iv_val = '123' ).
lo_cut->set(
iv_key = 'z'
iv_val = 'xyz' ).
ls_struc_exp-a = 'avalue'.
ls_struc_exp-b = abap_true.
ls_struc_exp-c = 123.
TRY.
lo_cut->to_abap( CHANGING cs_container = ls_struc_act ).
cl_abap_unit_assert=>fail( ).
CATCH cx_root INTO lo_x.
cl_abap_unit_assert=>assert_equals(
exp = 'Component Z not found in target'
act = lo_x->get_text( ) ).
ENDTRY.
lo_map = lo_cut->strict( abap_false ).
lo_map->to_abap( CHANGING cs_container = ls_struc_act ).
cl_abap_unit_assert=>assert_equals(
exp = ls_struc_exp
act = ls_struc_act ).
ENDMETHOD.
METHOD case_insensitive.
DATA lo_cut TYPE REF TO zcl_abapgit_string_map.
lo_cut = zcl_abapgit_string_map=>create( abap_true ).
lo_cut->set(
iv_key = 'A'
iv_val = 'avalue' ).
lo_cut->set(
iv_key = 'b'
iv_val = 'bvalue' ).
cl_abap_unit_assert=>assert_equals(
exp = 'avalue'
act = lo_cut->get( 'A' ) ).
cl_abap_unit_assert=>assert_equals(
exp = 'avalue'
act = lo_cut->get( 'a' ) ).
cl_abap_unit_assert=>assert_equals(
exp = 'bvalue'
act = lo_cut->get( 'B' ) ).
cl_abap_unit_assert=>assert_equals(
exp = 'bvalue'
act = lo_cut->get( 'b' ) ).
ENDMETHOD.
ENDCLASS.