CLASS ltc_volume_discount DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}if_discount. METHODS setup. METHODS key_high_volume FOR TESTING. METHODS key_mid_volume FOR TESTING. METHODS standard_small FOR TESTING. METHODS standard_high FOR TESTING. METHODS unknown_group FOR TESTING. ENDCLASS. CLASS ltc_volume_discount IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}volume_discount( ). ENDMETHOD. METHOD key_high_volume. DATA lv_expected TYPE {{p}}if_discount=>ty_percent. lv_expected = '12.00'. cl_abap_unit_assert=>assert_equals( exp = lv_expected act = mo_cut->calculate( iv_quantity = 800 iv_group = {{p}}if_discount=>c_group_key ) ). ENDMETHOD. METHOD key_mid_volume. DATA lv_expected TYPE {{p}}if_discount=>ty_percent. lv_expected = '9.00'. cl_abap_unit_assert=>assert_equals( exp = lv_expected act = mo_cut->calculate( iv_quantity = 250 iv_group = {{p}}if_discount=>c_group_key ) ). ENDMETHOD. METHOD standard_small. DATA lv_expected TYPE {{p}}if_discount=>ty_percent. lv_expected = '0.00'. cl_abap_unit_assert=>assert_equals( exp = lv_expected act = mo_cut->calculate( iv_quantity = 50 iv_group = {{p}}if_discount=>c_group_standard ) ). ENDMETHOD. METHOD standard_high. DATA lv_expected TYPE {{p}}if_discount=>ty_percent. lv_expected = '7.00'. cl_abap_unit_assert=>assert_equals( exp = lv_expected act = mo_cut->calculate( iv_quantity = 600 iv_group = {{p}}if_discount=>c_group_standard ) ). ENDMETHOD. METHOD unknown_group. DATA lv_expected TYPE {{p}}if_discount=>ty_percent. lv_expected = '7.00'. cl_abap_unit_assert=>assert_equals( exp = lv_expected act = mo_cut->calculate( iv_quantity = 600 iv_group = 'X' ) ). ENDMETHOD. ENDCLASS.