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

97 lines
3.4 KiB
ABAP

CLASS ltc_tyre_checker DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}tyre_checker.
METHODS setup.
METHODS accepts_valid_order FOR TESTING.
METHODS rejects_bad_qty FOR TESTING.
METHODS rejects_wrong_size FOR TESTING.
METHODS rejects_low_load FOR TESTING.
METHODS rejects_low_speed FOR TESTING.
METHODS reports_qty_message FOR TESTING.
ENDCLASS.
CLASS ltc_tyre_checker IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}tyre_checker(
is_vehicle = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 91 speed_kmh = 240 ) ).
ENDMETHOD.
METHOD accepts_valid_order.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 91 speed_kmh = 240 qty = 4 ) ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>fail( |Unexpected exception: { lo_error->mv_text }| ).
ENDTRY.
ENDMETHOD.
METHOD rejects_bad_qty.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 91 speed_kmh = 240 qty = 0 ) ).
cl_abap_unit_assert=>fail( `An exception is expected` ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = `Quantity must be between 1 and 4`
act = lo_error->mv_text ).
ENDTRY.
ENDMETHOD.
METHOD rejects_wrong_size.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 60 rim_inch = 16
load_index = 91 speed_kmh = 240 qty = 2 ) ).
cl_abap_unit_assert=>fail( `An exception is expected` ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = `Tyre size does not match the vehicle`
act = lo_error->mv_text ).
ENDTRY.
ENDMETHOD.
METHOD rejects_low_load.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 90 speed_kmh = 240 qty = 2 ) ).
cl_abap_unit_assert=>fail( `An exception is expected` ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = `Load index is too low`
act = lo_error->mv_text ).
ENDTRY.
ENDMETHOD.
METHOD rejects_low_speed.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 91 speed_kmh = 230 qty = 2 ) ).
cl_abap_unit_assert=>fail( `An exception is expected` ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = `Speed rating is too low`
act = lo_error->mv_text ).
ENDTRY.
ENDMETHOD.
METHOD reports_qty_message.
TRY.
mo_cut->check_order(
is_order = VALUE #( width_mm = 205 profile_pct = 55 rim_inch = 16
load_index = 91 speed_kmh = 240 qty = 5 ) ).
cl_abap_unit_assert=>fail( `An exception is expected` ).
CATCH {{p}}cx_tyre_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = `Quantity must be between 1 and 4`
act = lo_error->mv_text ).
ENDTRY.
ENDMETHOD.
ENDCLASS.