Files
abap-llm/tasks_gen/train/G1103/reference/t37_test.clas.abap
2026-10-05 18:02:52 +02:00

102 lines
3.9 KiB
ABAP

CLASS {{p}}t37_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS price_for
IMPORTING iv_program TYPE string
iv_vehicle TYPE string
iv_wax TYPE abap_bool DEFAULT abap_false
iv_fleet TYPE abap_bool DEFAULT abap_false
EXPORTING ev_price TYPE decfloat34
ev_reject TYPE abap_bool
ev_subrc TYPE sysubrc.
METHODS base_prices FOR TESTING.
METHODS vehicle_surcharge FOR TESTING.
METHODS extra_wax FOR TESTING.
METHODS fleet_discount FOR TESTING.
METHODS large_basic_rejected FOR TESTING.
METHODS invalid_program FOR TESTING.
METHODS invalid_vehicle FOR TESTING.
ENDCLASS.
CLASS {{p}}t37_test IMPLEMENTATION.
METHOD price_for.
ev_price = 0.
CALL FUNCTION '{{P}}WASH_FEE'
EXPORTING
iv_program = iv_program
iv_vehicle = iv_vehicle
iv_extra_wax = iv_wax
iv_fleet = iv_fleet
IMPORTING
ev_reject = ev_reject
CHANGING
cv_price = ev_price
EXCEPTIONS
invalid_program = 1
invalid_vehicle = 2
OTHERS = 3.
ev_subrc = sy-subrc.
ENDMETHOD.
METHOD base_prices.
price_for( EXPORTING iv_program = 'BASIC' iv_vehicle = 'S'
IMPORTING ev_price = DATA(lv_basic) ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rc ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.50' ) act = lv_basic ).
price_for( EXPORTING iv_program = 'PLUS' iv_vehicle = 'S'
IMPORTING ev_price = DATA(lv_plus) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.50' ) act = lv_plus ).
price_for( EXPORTING iv_program = 'PREMIUM' iv_vehicle = 'S'
IMPORTING ev_price = DATA(lv_premium) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.50' ) act = lv_premium ).
ENDMETHOD.
METHOD vehicle_surcharge.
price_for( EXPORTING iv_program = 'PLUS' iv_vehicle = 'M'
IMPORTING ev_price = DATA(lv_medium) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '15.00' ) act = lv_medium ).
price_for( EXPORTING iv_program = 'PLUS' iv_vehicle = 'L'
IMPORTING ev_price = DATA(lv_large) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.00' ) act = lv_large ).
ENDMETHOD.
METHOD extra_wax.
price_for( EXPORTING iv_program = 'BASIC' iv_vehicle = 'S' iv_wax = abap_true
IMPORTING ev_price = DATA(lv_basic) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.00' ) act = lv_basic ).
price_for( EXPORTING iv_program = 'PREMIUM' iv_vehicle = 'S' iv_wax = abap_true
IMPORTING ev_price = DATA(lv_premium) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.50' ) act = lv_premium ).
ENDMETHOD.
METHOD fleet_discount.
price_for( EXPORTING iv_program = 'BASIC' iv_vehicle = 'S' iv_fleet = abap_true
IMPORTING ev_price = DATA(lv_price) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '7.23' ) act = lv_price ).
ENDMETHOD.
METHOD large_basic_rejected.
price_for( EXPORTING iv_program = 'BASIC' iv_vehicle = 'L'
IMPORTING ev_price = DATA(lv_price) ev_reject = DATA(lv_reject) ).
cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_reject ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 0 ) act = lv_price ).
ENDMETHOD.
METHOD invalid_program.
price_for( EXPORTING iv_program = 'GOLD' iv_vehicle = 'S'
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rc ).
ENDMETHOD.
METHOD invalid_vehicle.
price_for( EXPORTING iv_program = 'BASIC' iv_vehicle = 'XL'
IMPORTING ev_subrc = DATA(lv_rc) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rc ).
ENDMETHOD.
ENDCLASS.