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

101 lines
3.7 KiB
ABAP

CLASS {{p}}t37_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS call
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
iv_price TYPE decfloat34 DEFAULT 99
EXPORTING ev_price TYPE decfloat34
ev_reject TYPE abap_bool
ev_subrc TYPE sysubrc.
METHODS basic_small_price FOR TESTING.
METHODS plus_medium_price FOR TESTING.
METHODS premium_wax_free FOR TESTING.
METHODS fleet_discount_rounds FOR TESTING.
METHODS fleet_rounds_up FOR TESTING.
METHODS large_basic_rejected FOR TESTING.
METHODS invalid_program_raises FOR TESTING.
METHODS invalid_vehicle_raises FOR TESTING.
METHODS reject_flag_false FOR TESTING.
ENDCLASS.
CLASS {{p}}t37_hidden IMPLEMENTATION.
METHOD call.
ev_price = iv_price.
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 basic_small_price.
call( EXPORTING iv_program = `BASIC` iv_vehicle = `S`
IMPORTING ev_price = DATA(lv_price) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.50' ) act = lv_price ).
ENDMETHOD.
METHOD plus_medium_price.
call( EXPORTING iv_program = `PLUS` iv_vehicle = `M`
IMPORTING ev_price = DATA(lv_price) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '15.00' ) act = lv_price ).
ENDMETHOD.
METHOD premium_wax_free.
call( EXPORTING iv_program = `PREMIUM` iv_vehicle = `S` iv_wax = abap_true
IMPORTING ev_price = DATA(lv_price) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '18.50' ) act = lv_price ).
ENDMETHOD.
METHOD fleet_discount_rounds.
call( 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 fleet_rounds_up.
call( EXPORTING iv_program = `PREMIUM` iv_vehicle = `S` iv_wax = abap_true
iv_fleet = abap_true
IMPORTING ev_price = DATA(lv_price) ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '15.73' ) act = lv_price ).
ENDMETHOD.
METHOD large_basic_rejected.
call( 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_raises.
call( EXPORTING iv_program = `GOLD` iv_vehicle = `S`
IMPORTING ev_subrc = DATA(lv_subrc) ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_subrc ).
ENDMETHOD.
METHOD invalid_vehicle_raises.
call( EXPORTING iv_program = `BASIC` iv_vehicle = `XL`
IMPORTING ev_subrc = DATA(lv_subrc) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_subrc ).
ENDMETHOD.
METHOD reject_flag_false.
call( EXPORTING iv_program = `PLUS` iv_vehicle = `M`
IMPORTING ev_reject = DATA(lv_reject) ).
cl_abap_unit_assert=>assert_equals( exp = abap_false act = lv_reject ).
ENDMETHOD.
ENDCLASS.