Files
abap-llm/tasks_gen/train/G1940/reference/lift_check.clas.testclasses.abap
2026-10-05 22:08:59 +02:00

67 lines
2.2 KiB
ABAP

CLASS ltc_lift_check DEFINITION FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS no_crane FOR TESTING.
METHODS overload FOR TESTING.
METHODS wind FOR TESTING.
METHODS valid_plan FOR TESTING.
ENDCLASS.
CLASS ltc_lift_check IMPLEMENTATION.
METHOD no_crane.
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
plan_id = 'L-1' crane_id = '' ).
DATA(lo_check) = NEW {{p}}lift_check( ).
TRY.
lo_check->check_lift_plan( ls_plan ).
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = 'Lift plan L-1 has no crane'
act = lo_error->get_message_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD overload.
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
plan_id = 'L-2' crane_id = 'K-1' load_kg = 2000 capacity_kg = 1000 ).
DATA(lo_check) = NEW {{p}}lift_check( ).
TRY.
lo_check->check_lift_plan( ls_plan ).
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = 'Lift plan L-2 is too heavy for crane K-1'
act = lo_error->get_message_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD wind.
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
plan_id = 'L-3' crane_id = 'K-1' wind_kmh = 80 ).
DATA(lo_check) = NEW {{p}}lift_check( ).
TRY.
lo_check->check_lift_plan( ls_plan ).
cl_abap_unit_assert=>fail( msg = 'Exception expected' ).
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
cl_abap_unit_assert=>assert_equals(
exp = 'Lift plan L-3 is blocked because of wind'
act = lo_error->get_message_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD valid_plan.
DATA(ls_plan) = VALUE {{p}}lift_check=>ty_lift_plan(
plan_id = 'L-4' crane_id = 'K-1' load_kg = 500 capacity_kg = 1000 wind_kmh = 30 ).
DATA(lo_check) = NEW {{p}}lift_check( ).
TRY.
lo_check->check_lift_plan( ls_plan ).
CATCH {{p}}cx_crane_error INTO DATA(lo_error).
cl_abap_unit_assert=>fail( msg = lo_error->get_message_text( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.