67 lines
2.2 KiB
ABAP
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.
|