71 lines
2.6 KiB
ABAP
71 lines
2.6 KiB
ABAP
CLASS ltc_tailor_pricer DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}tailor_pricer.
|
|
METHODS setup.
|
|
METHODS minimum_price FOR TESTING.
|
|
METHODS ten_percent_discount FOR TESTING.
|
|
METHODS twenty_percent_discount FOR TESTING.
|
|
METHODS express_fee FOR TESTING.
|
|
METHODS unknown_service FOR TESTING.
|
|
METHODS unknown_garment FOR TESTING.
|
|
METHODS no_quantity FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_tailor_pricer IMPLEMENTATION.
|
|
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}tailor_pricer( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_price.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '15.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'TROUSERS' iv_service = 'HEM'
|
|
iv_quantity = 1 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD ten_percent_discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '32.40' )
|
|
act = mo_cut->calculate_price( iv_garment = 'SKIRT' iv_service = 'ZIP'
|
|
iv_quantity = 3 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD twenty_percent_discount.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '32.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'TROUSERS' iv_service = 'HEM'
|
|
iv_quantity = 5 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD express_fee.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '57.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'JACKET' iv_service = 'TAKE_IN'
|
|
iv_quantity = 2 iv_express = abap_true ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_service.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '0.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'TROUSERS' iv_service = 'PATCH'
|
|
iv_quantity = 2 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_garment.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '0.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'SHIRT' iv_service = 'HEM'
|
|
iv_quantity = 2 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD no_quantity.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}tailor_pricer=>ty_price( '0.00' )
|
|
act = mo_cut->calculate_price( iv_garment = 'TROUSERS' iv_service = 'HEM'
|
|
iv_quantity = 0 iv_express = abap_false ) ).
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|