Files
abap-llm/tasks_gen/train/G1073/reference/parking_eval.testclasses.abap
2026-10-05 18:02:52 +02:00

76 lines
2.7 KiB
ABAP

CLASS ltc_parking_eval DEFINITION FINAL FOR TESTING
DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CONSTANTS:
c_fee_000 TYPE p LENGTH 8 DECIMALS 2 VALUE '0.00',
c_fee_200 TYPE p LENGTH 8 DECIMALS 2 VALUE '2.00',
c_fee_2000 TYPE p LENGTH 8 DECIMALS 2 VALUE '20.00'.
DATA mo_cut TYPE REF TO {{p}}if_park_eval.
METHODS setup.
"! @testing {{p}}parking_eval
METHODS free_minutes_are_free FOR TESTING.
"! @testing {{p}}parking_eval
METHODS one_hour_is_charged FOR TESTING.
"! @testing {{p}}parking_eval
METHODS fee_is_capped FOR TESTING.
"! @testing {{p}}parking_eval
METHODS invalid_tariff_is_ignored FOR TESTING.
"! @testing {{p}}parking_eval
METHODS groups_by_park FOR TESTING.
"! @testing {{p}}parking_eval
METHODS empty_input_gives_no_row FOR TESTING.
ENDCLASS.
CLASS ltc_parking_eval IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}parking_eval( ).
ENDMETHOD.
METHOD free_minutes_are_free.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
( park_id = 'P001' tariff = 'A' duration_min = 30 ) ) ).
cl_abap_unit_assert=>assert_equals( exp = c_fee_000 act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD one_hour_is_charged.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
( park_id = 'P001' tariff = 'A' duration_min = 31 ) ) ).
cl_abap_unit_assert=>assert_equals( exp = c_fee_200 act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD fee_is_capped.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
( park_id = 'P001' tariff = 'C' duration_min = 400 ) ) ).
cl_abap_unit_assert=>assert_equals( exp = c_fee_2000 act = lt_result[ 1 ]-total_fee ).
ENDMETHOD.
METHOD invalid_tariff_is_ignored.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
( park_id = 'P001' tariff = 'X' duration_min = 120 ) ) ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
ENDMETHOD.
METHOD groups_by_park.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session(
( park_id = 'P002' tariff = 'A' duration_min = 60 )
( park_id = 'P001' tariff = 'A' duration_min = 60 ) ) ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_result ) ).
cl_abap_unit_assert=>assert_equals( exp = 'P001' act = lt_result[ 1 ]-park_id ).
cl_abap_unit_assert=>assert_equals( exp = 'P002' act = lt_result[ 2 ]-park_id ).
ENDMETHOD.
METHOD empty_input_gives_no_row.
DATA(lt_result) = mo_cut->summarize( VALUE {{p}}if_park_eval=>tt_session( ) ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = lines( lt_result ) ).
ENDMETHOD.
ENDCLASS.