72 lines
2.5 KiB
ABAP
72 lines
2.5 KiB
ABAP
CLASS ltc_shred_pricer DEFINITION FINAL FOR TESTING
|
|
DURATION SHORT RISK LEVEL HARMLESS.
|
|
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}shred_pricer.
|
|
|
|
METHODS setup.
|
|
METHODS expect_price
|
|
IMPORTING iv_expected TYPE {{p}}shred_pricer=>ty_price
|
|
iv_boxes TYPE i
|
|
iv_size TYPE {{p}}shred_pricer=>ty_size
|
|
iv_service TYPE {{p}}shred_pricer=>ty_service
|
|
iv_express TYPE abap_bool
|
|
iv_contract TYPE abap_bool.
|
|
|
|
METHODS no_boxes_is_free FOR TESTING.
|
|
METHODS plant_minimum_charge FOR TESTING.
|
|
METHODS onsite_minimum_charge FOR TESTING.
|
|
METHODS volume_discount FOR TESTING.
|
|
METHODS contract_and_express FOR TESTING.
|
|
METHODS unknown_size_falls_back FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_shred_pricer IMPLEMENTATION.
|
|
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}shred_pricer( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD expect_price.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = iv_expected
|
|
act = mo_cut->calculate_price( iv_boxes = iv_boxes
|
|
iv_size = iv_size
|
|
iv_service = iv_service
|
|
iv_express = iv_express
|
|
iv_contract = iv_contract ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD no_boxes_is_free.
|
|
expect_price( iv_expected = '0.00' iv_boxes = 0 iv_size = 120
|
|
iv_service = 'P' iv_express = abap_false iv_contract = abap_false ).
|
|
ENDMETHOD.
|
|
|
|
METHOD plant_minimum_charge.
|
|
expect_price( iv_expected = '35.00' iv_boxes = 1 iv_size = 60
|
|
iv_service = 'P' iv_express = abap_false iv_contract = abap_false ).
|
|
ENDMETHOD.
|
|
|
|
METHOD onsite_minimum_charge.
|
|
expect_price( iv_expected = '60.00' iv_boxes = 1 iv_size = 60
|
|
iv_service = 'O' iv_express = abap_false iv_contract = abap_false ).
|
|
ENDMETHOD.
|
|
|
|
METHOD volume_discount.
|
|
expect_price( iv_expected = '182.40' iv_boxes = 24 iv_size = 60
|
|
iv_service = 'P' iv_express = abap_false iv_contract = abap_false ).
|
|
ENDMETHOD.
|
|
|
|
METHOD contract_and_express.
|
|
expect_price( iv_expected = '437.40' iv_boxes = 25 iv_size = 240
|
|
iv_service = 'P' iv_express = abap_true iv_contract = abap_true ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_size_falls_back.
|
|
expect_price( iv_expected = '114.00' iv_boxes = 10 iv_size = 100
|
|
iv_service = 'P' iv_express = abap_false iv_contract = abap_false ).
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|