CLASS ltc_factory DEFINITION FINAL
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
PRIVATE SECTION.
METHODS test_car_type FOR TESTING.
METHODS test_truck_type FOR TESTING.
METHODS test_car_describe FOR TESTING.
METHODS test_unknown_raises FOR TESTING.
ENDCLASS.
CLASS ltc_factory IMPLEMENTATION.
METHOD test_car_type.
DATA(lo_v) = zcl_vehicle_factory=>create_vehicle( 'CAR' ).
cl_abap_unit_assert=>assert_equals(
exp = 'CAR'
act = lo_v->get_type( )
msg = 'Vehicle type must be CAR' ).
ENDMETHOD.
METHOD test_truck_type.
DATA(lo_v) = zcl_vehicle_factory=>create_vehicle( 'TRUCK' ).
cl_abap_unit_assert=>assert_equals(
exp = 'TRUCK'
act = lo_v->get_type( ) ).
ENDMETHOD.
METHOD test_car_describe.
DATA(lo_v) = zcl_vehicle_factory=>create_vehicle( 'CAR' ).
cl_abap_unit_assert=>assert_not_initial(
act = lo_v->describe( )
msg = 'Describe must not be empty' ).
ENDMETHOD.
METHOD test_unknown_raises.
TRY.
DATA(lo_v) = zcl_vehicle_factory=>create_vehicle( 'SPACESHIP' ).
cl_abap_unit_assert=>fail( 'Should have raised exception' ).
CATCH cx_sy_create_object_error.
" expected
ENDTRY.
ENDMETHOD.
ENDCLASS.