53 lines
1.9 KiB
ABAP
53 lines
1.9 KiB
ABAP
CLASS ltc_scaffold_fee DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}scaffold_fee.
|
|
METHODS setup.
|
|
METHODS base_fee_only FOR TESTING.
|
|
METHODS express_surcharge_rounds_up FOR TESTING.
|
|
METHODS discount_on_long_hire FOR TESTING.
|
|
METHODS no_discount_on_short_hire FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_scaffold_fee IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}scaffold_fee( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD base_fee_only.
|
|
DATA lv_exp TYPE {{p}}if_hire_fee=>ty_amount.
|
|
DATA(ls_result) = mo_cut->{{p}}if_hire_fee~calculate_fee(
|
|
iv_days = 3 iv_parts = 2 iv_express = abap_false ).
|
|
lv_exp = '25.20'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-fee ).
|
|
lv_exp = '0.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-discount ).
|
|
ENDMETHOD.
|
|
|
|
METHOD express_surcharge_rounds_up.
|
|
DATA lv_exp TYPE {{p}}if_hire_fee=>ty_amount.
|
|
DATA(ls_result) = mo_cut->{{p}}if_hire_fee~calculate_fee(
|
|
iv_days = 2 iv_parts = 1 iv_express = abap_true ).
|
|
lv_exp = '9.41'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD discount_on_long_hire.
|
|
DATA lv_exp TYPE {{p}}if_hire_fee=>ty_amount.
|
|
DATA(ls_result) = mo_cut->{{p}}if_hire_fee~calculate_fee(
|
|
iv_days = 31 iv_parts = 5 iv_express = abap_false ).
|
|
lv_exp = '39.06'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-discount ).
|
|
lv_exp = '611.94'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD no_discount_on_short_hire.
|
|
DATA lv_exp TYPE {{p}}if_hire_fee=>ty_amount.
|
|
DATA(ls_result) = mo_cut->{{p}}if_hire_fee~calculate_fee(
|
|
iv_days = 30 iv_parts = 1 iv_express = abap_false ).
|
|
lv_exp = '0.00'.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = ls_result-discount ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|