Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
63 lines
2.8 KiB
ABAP
63 lines
2.8 KiB
ABAP
CLASS ltc_laundry_pricer DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}laundry_pricer.
|
|
METHODS setup.
|
|
METHODS wash_basic FOR TESTING.
|
|
METHODS iron_rate FOR TESTING.
|
|
METHODS member_then_express FOR TESTING.
|
|
METHODS min_after_discount FOR TESTING.
|
|
METHODS unknown_service FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_laundry_pricer IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}laundry_pricer( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD wash_basic.
|
|
DATA(lv_price) = mo_cut->calculate( iv_weight_kg = '2.00'
|
|
iv_service = {{p}}laundry_pricer=>c_service_wash
|
|
iv_express = abap_false
|
|
iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}laundry_pricer=>ty_amount( '10.00' )
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD iron_rate.
|
|
DATA(lv_price) = mo_cut->calculate( iv_weight_kg = '8.00'
|
|
iv_service = {{p}}laundry_pricer=>c_service_iron
|
|
iv_express = abap_false
|
|
iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}laundry_pricer=>ty_amount( '12.00' )
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD member_then_express.
|
|
DATA(lv_price) = mo_cut->calculate( iv_weight_kg = '4.00'
|
|
iv_service = {{p}}laundry_pricer=>c_service_wash
|
|
iv_express = abap_true
|
|
iv_member = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}laundry_pricer=>ty_amount( '14.00' )
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD min_after_discount.
|
|
DATA(lv_price) = mo_cut->calculate( iv_weight_kg = '2.00'
|
|
iv_service = {{p}}laundry_pricer=>c_service_wash
|
|
iv_express = abap_false
|
|
iv_member = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}laundry_pricer=>ty_amount( '10.00' )
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_service.
|
|
DATA(lv_price) = mo_cut->calculate( iv_weight_kg = '2.00'
|
|
iv_service = 'XXXX'
|
|
iv_express = abap_false
|
|
iv_member = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}laundry_pricer=>ty_amount( '10.00' )
|
|
act = lv_price ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|