149 lines
5.8 KiB
ABAP
149 lines
5.8 KiB
ABAP
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
|
|
PUBLIC SECTION.
|
|
INTERFACES {{p}}if_kiln_quote.
|
|
|
|
PRIVATE SECTION.
|
|
METHODS kiln_codes FOR TESTING.
|
|
METHODS reason_codes FOR TESTING.
|
|
METHODS base_fees FOR TESTING.
|
|
METHODS extra_fees FOR TESTING.
|
|
METHODS load_limits FOR TESTING.
|
|
METHODS reason_type_length FOR TESTING.
|
|
METHODS kiln_type_length FOR TESTING.
|
|
METHODS amount_decimals FOR TESTING.
|
|
METHODS load_structure FOR TESTING.
|
|
METHODS quote_structure FOR TESTING.
|
|
METHODS methods_callable FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t02_hidden IMPLEMENTATION.
|
|
METHOD {{p}}if_kiln_quote~check_load.
|
|
rv_reason = {{p}}if_kiln_quote=>c_reason-ok.
|
|
ENDMETHOD.
|
|
|
|
METHOD {{p}}if_kiln_quote~kiln_fee.
|
|
rv_fee = {{p}}if_kiln_quote=>c_base_small.
|
|
ENDMETHOD.
|
|
|
|
METHOD {{p}}if_kiln_quote~quote.
|
|
rs_quote-kiln = is_load-kiln.
|
|
rs_quote-reason = {{p}}if_kiln_quote=>c_reason-ok.
|
|
ENDMETHOD.
|
|
|
|
METHOD kiln_codes.
|
|
cl_abap_unit_assert=>assert_equals( exp = 'SMAL' act = {{p}}if_kiln_quote=>c_kiln-small ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'MEDI' act = {{p}}if_kiln_quote=>c_kiln-medium ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'LARG' act = {{p}}if_kiln_quote=>c_kiln-large ).
|
|
ENDMETHOD.
|
|
|
|
METHOD reason_codes.
|
|
cl_abap_unit_assert=>assert_equals( exp = 'OK' act = {{p}}if_kiln_quote=>c_reason-ok ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'KILN' act = {{p}}if_kiln_quote=>c_reason-kiln ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'PIECES' act = {{p}}if_kiln_quote=>c_reason-pieces ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'WEIGHT' act = {{p}}if_kiln_quote=>c_reason-weight ).
|
|
ENDMETHOD.
|
|
|
|
METHOD base_fees.
|
|
DATA lv_exp TYPE {{p}}if_kiln_quote=>ty_amount.
|
|
lv_exp = '25.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_kiln_quote=>c_base_small ).
|
|
lv_exp = '40.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_kiln_quote=>c_base_medium ).
|
|
lv_exp = '60.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_kiln_quote=>c_base_large ).
|
|
ENDMETHOD.
|
|
|
|
METHOD extra_fees.
|
|
DATA lv_exp TYPE {{p}}if_kiln_quote=>ty_amount.
|
|
lv_exp = '1.50'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_kiln_quote=>c_weight_rate ).
|
|
lv_exp = '8.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = {{p}}if_kiln_quote=>c_glaze_fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD load_limits.
|
|
cl_abap_unit_assert=>assert_equals( exp = 40 act = {{p}}if_kiln_quote=>c_max_pieces ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 120 act = {{p}}if_kiln_quote=>c_max_weight ).
|
|
ENDMETHOD.
|
|
|
|
METHOD reason_type_length.
|
|
DATA lv_reason TYPE {{p}}if_kiln_quote=>ty_reason.
|
|
DATA lv_src TYPE string.
|
|
lv_src = 'ABCDEFGHIJKLM'.
|
|
lv_reason = lv_src.
|
|
cl_abap_unit_assert=>assert_equals( exp = 'ABCDEFGHIJKL' act = lv_reason ).
|
|
ENDMETHOD.
|
|
|
|
METHOD kiln_type_length.
|
|
DATA lv_kiln TYPE {{p}}if_kiln_quote=>ty_kiln.
|
|
DATA lv_src TYPE string.
|
|
lv_src = 'ABCDE'.
|
|
lv_kiln = lv_src.
|
|
cl_abap_unit_assert=>assert_equals( exp = 'ABCD' act = lv_kiln ).
|
|
ENDMETHOD.
|
|
|
|
METHOD amount_decimals.
|
|
DATA lv_amount TYPE {{p}}if_kiln_quote=>ty_amount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 2
|
|
act = cl_abap_typedescr=>describe_by_data( lv_amount )->decimals ).
|
|
ENDMETHOD.
|
|
|
|
METHOD load_structure.
|
|
DATA ls_load TYPE {{p}}if_kiln_quote=>ty_load.
|
|
DATA(lo_struct) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_data( ls_load ) ).
|
|
DATA(lt_comp) = lo_struct->get_components( ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 4 act = lines( lt_comp ) ).
|
|
DATA(lv_names) = REDUCE string( INIT s TYPE string
|
|
FOR ls IN lt_comp
|
|
NEXT s = s && ls-name ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'KILN' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'PIECES' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'WEIGHT_KG' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'GLAZED' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD quote_structure.
|
|
DATA ls_quote TYPE {{p}}if_kiln_quote=>ty_quote.
|
|
DATA(lo_struct) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_data( ls_quote ) ).
|
|
DATA(lt_comp) = lo_struct->get_components( ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 6 act = lines( lt_comp ) ).
|
|
DATA(lv_names) = REDUCE string( INIT s TYPE string
|
|
FOR ls IN lt_comp
|
|
NEXT s = s && ls-name ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'KILN' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'BASE' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'WEIGHT' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'GLAZE' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'TOTAL' ) ).
|
|
cl_abap_unit_assert=>assert_true( xsdbool( lv_names CS 'REASON' ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD methods_callable.
|
|
DATA lo_cut TYPE REF TO {{p}}if_kiln_quote.
|
|
lo_cut = me.
|
|
|
|
DATA ls_load TYPE {{p}}if_kiln_quote=>ty_load.
|
|
ls_load-kiln = {{p}}if_kiln_quote=>c_kiln-small.
|
|
ls_load-pieces = 5.
|
|
ls_load-weight_kg = 10.
|
|
ls_load-glazed = abap_true.
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_kiln_quote=>c_reason-ok
|
|
act = lo_cut->check_load( ls_load ) ).
|
|
|
|
DATA(ls_quote) = lo_cut->quote( ls_load ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_kiln_quote=>c_reason-ok
|
|
act = ls_quote-reason ).
|
|
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = {{p}}if_kiln_quote=>c_base_small
|
|
act = lo_cut->kiln_fee( {{p}}if_kiln_quote=>c_kiln-small ) ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|