73 lines
2.3 KiB
ABAP
73 lines
2.3 KiB
ABAP
CLASS ltc_bowling_fee DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
CONSTANTS:
|
|
c_48_00 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '48.00',
|
|
c_129_60 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '129.60',
|
|
c_96_00 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '96.00',
|
|
c_288_00 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '288.00',
|
|
c_55_50 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '55.50',
|
|
c_134_60 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '134.60',
|
|
c_0_00 TYPE {{p}}if_bowling_fee=>ty_fee VALUE '0.00'.
|
|
|
|
DATA mo_cut TYPE REF TO {{p}}if_bowling_fee.
|
|
|
|
METHODS setup.
|
|
METHODS lane_fee_only FOR TESTING.
|
|
METHODS group_discount FOR TESTING.
|
|
METHODS large_discount FOR TESTING.
|
|
METHODS group_and_large FOR TESTING.
|
|
METHODS shoes_are_added FOR TESTING.
|
|
METHODS shoes_never_discounted FOR TESTING.
|
|
METHODS zero_lanes FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_bowling_fee IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}bowling_fee( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD lane_fee_only.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_48_00
|
|
act = mo_cut->calculate_fee( iv_lanes = 2 iv_hours = 2 iv_shoes = 0 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD group_discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_129_60
|
|
act = mo_cut->calculate_fee( iv_lanes = 6 iv_hours = 2 iv_shoes = 0 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD large_discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_96_00
|
|
act = mo_cut->calculate_fee( iv_lanes = 2 iv_hours = 5 iv_shoes = 0 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD group_and_large.
|
|
" The large discount replaces the group discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_288_00
|
|
act = mo_cut->calculate_fee( iv_lanes = 6 iv_hours = 5 iv_shoes = 0 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shoes_are_added.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_55_50
|
|
act = mo_cut->calculate_fee( iv_lanes = 2 iv_hours = 2 iv_shoes = 3 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD shoes_never_discounted.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_134_60
|
|
act = mo_cut->calculate_fee( iv_lanes = 6 iv_hours = 2 iv_shoes = 2 ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD zero_lanes.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = c_0_00
|
|
act = mo_cut->calculate_fee( iv_lanes = 0 iv_hours = 2 iv_shoes = 0 ) ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|