CLASS {{p}}t21_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. METHODS strip_period IMPORTING iv_text TYPE string RETURNING VALUE(rv_text) TYPE string. METHODS blocked_order FOR TESTING. METHODS part_not_in_stock FOR TESTING. METHODS invalid_quantity FOR TESTING. METHODS load_limit_warning FOR TESTING. METHODS released_info FOR TESTING. METHODS exception_text FOR TESTING. METHODS exception_attributes FOR TESTING. METHODS exception_is_static_check FOR TESTING. ENDCLASS. CLASS {{p}}t21_hidden IMPLEMENTATION. METHOD strip_period. rv_text = iv_text. DATA(lv_len) = strlen( rv_text ). IF lv_len > 1. DATA(lv_last) = substring( val = rv_text off = lv_len - 1 len = 1 ). IF lv_last = '.'. rv_text = substring( val = rv_text len = lv_len - 1 ). ENDIF. ENDIF. ENDMETHOD. METHOD blocked_order. DATA lv_p1 TYPE string VALUE 'SO-4711'. DATA lv_p2 TYPE string VALUE 'Permit missing'. DATA lv_text TYPE string. MESSAGE ID '{{P}}SCAF_MSG' TYPE 'E' NUMBER '001' WITH lv_p1 lv_p2 INTO lv_text. cl_abap_unit_assert=>assert_equals( exp = 'Scaffolding order SO-4711 is blocked: Permit missing' act = strip_period( lv_text ) ). ENDMETHOD. METHOD part_not_in_stock. DATA lv_p1 TYPE string VALUE 'STD-200'. DATA lv_text TYPE string. MESSAGE ID '{{P}}SCAF_MSG' TYPE 'E' NUMBER '002' WITH lv_p1 INTO lv_text. cl_abap_unit_assert=>assert_equals( exp = 'Scaffold part STD-200 is not in stock' act = strip_period( lv_text ) ). ENDMETHOD. METHOD invalid_quantity. DATA lv_p1 TYPE string VALUE '0'. DATA lv_p2 TYPE string VALUE 'STD-200'. DATA lv_text TYPE string. MESSAGE ID '{{P}}SCAF_MSG' TYPE 'E' NUMBER '003' WITH lv_p1 lv_p2 INTO lv_text. cl_abap_unit_assert=>assert_equals( exp = 'Quantity 0 is not valid for part STD-200' act = strip_period( lv_text ) ). ENDMETHOD. METHOD load_limit_warning. DATA lv_p1 TYPE string VALUE 'SO-4712'. DATA lv_p2 TYPE string VALUE '750'. DATA lv_text TYPE string. MESSAGE ID '{{P}}SCAF_MSG' TYPE 'W' NUMBER '004' WITH lv_p1 lv_p2 INTO lv_text. cl_abap_unit_assert=>assert_equals( exp = 'Order SO-4712 exceeds the load limit of 750 kg' act = strip_period( lv_text ) ). ENDMETHOD. METHOD released_info. DATA lv_p1 TYPE string VALUE 'SO-4713'. DATA lv_p2 TYPE string VALUE 'North Gate'. DATA lv_text TYPE string. MESSAGE ID '{{P}}SCAF_MSG' TYPE 'I' NUMBER '005' WITH lv_p1 lv_p2 INTO lv_text. cl_abap_unit_assert=>assert_equals( exp = 'Order SO-4713 was released for site North Gate' act = strip_period( lv_text ) ). ENDMETHOD. METHOD exception_text. DATA(lo_exception) = NEW {{p}}cx_scaf_order( iv_order_id = 'SO-4711' iv_reason = 'Permit missing' ). cl_abap_unit_assert=>assert_equals( exp = 'Scaffolding order SO-4711 is blocked: Permit missing' act = strip_period( lo_exception->get_message( ) ) ). ENDMETHOD. METHOD exception_attributes. DATA(lo_exception) = NEW {{p}}cx_scaf_order( iv_order_id = 'SO-99' iv_reason = 'Late delivery' ). cl_abap_unit_assert=>assert_equals( exp = 'SO-99' act = lo_exception->order_id ). cl_abap_unit_assert=>assert_equals( exp = 'Late delivery' act = lo_exception->reason ). ENDMETHOD. METHOD exception_is_static_check. DATA(lo_exception) = NEW {{p}}cx_scaf_order( iv_order_id = 'SO-1' iv_reason = 'Test' ). DATA lv_is_static TYPE abap_bool. IF lo_exception IS INSTANCE OF cx_static_check. lv_is_static = abap_true. ENDIF. cl_abap_unit_assert=>assert_equals( exp = abap_true act = lv_is_static ). ENDMETHOD. ENDCLASS.