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.