75 lines
3.2 KiB
ABAP
75 lines
3.2 KiB
ABAP
CLASS ltc_towing_fee DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}towing_fee.
|
|
METHODS setup.
|
|
METHODS minimum_fee FOR TESTING.
|
|
METHODS distance_charge FOR TESTING.
|
|
METHODS night_surcharge FOR TESTING.
|
|
METHODS weekend_surcharge FOR TESTING.
|
|
METHODS invalid_class FOR TESTING.
|
|
METHODS invalid_distance FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_towing_fee IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}towing_fee( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_fee.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'S'
|
|
iv_distance_km = 3
|
|
iv_hour = 12
|
|
iv_is_weekend = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}towing_fee=>c_status-ok
|
|
act = ls_result-status ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 80
|
|
act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD distance_charge.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'M'
|
|
iv_distance_km = 30
|
|
iv_hour = 12
|
|
iv_is_weekend = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 130
|
|
act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD night_surcharge.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'M'
|
|
iv_distance_km = 30
|
|
iv_hour = 23
|
|
iv_is_weekend = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 165
|
|
act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD weekend_surcharge.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'M'
|
|
iv_distance_km = 30
|
|
iv_hour = 12
|
|
iv_is_weekend = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 150
|
|
act = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_class.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'X'
|
|
iv_distance_km = 30
|
|
iv_hour = 12
|
|
iv_is_weekend = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}towing_fee=>c_status-bad_class
|
|
act = ls_result-status ).
|
|
ENDMETHOD.
|
|
|
|
METHOD invalid_distance.
|
|
DATA(ls_result) = mo_cut->calculate( iv_vehicle_class = 'M'
|
|
iv_distance_km = 0
|
|
iv_hour = 12
|
|
iv_is_weekend = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}towing_fee=>c_status-bad_distance
|
|
act = ls_result-status ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|