88 lines
3.0 KiB
ABAP
88 lines
3.0 KiB
ABAP
CLASS {{p}}t21_test 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_message FOR TESTING.
|
|
METHODS stock_message FOR TESTING.
|
|
METHODS warning_message FOR TESTING.
|
|
METHODS info_message FOR TESTING.
|
|
METHODS exception_message FOR TESTING.
|
|
METHODS exception_attributes FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t21_test 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_message.
|
|
DATA lv_order TYPE string VALUE 'SO-100'.
|
|
DATA lv_reason TYPE string VALUE 'Missing permit'.
|
|
DATA lv_text TYPE string.
|
|
MESSAGE ID '{{P}}SCAF_MSG' TYPE 'E' NUMBER '001'
|
|
WITH lv_order lv_reason INTO lv_text.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'Scaffolding order SO-100 is blocked: Missing permit'
|
|
act = strip_period( lv_text ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD stock_message.
|
|
DATA lv_part TYPE string VALUE 'STD-300'.
|
|
DATA lv_text TYPE string.
|
|
MESSAGE ID '{{P}}SCAF_MSG' TYPE 'E' NUMBER '002'
|
|
WITH lv_part INTO lv_text.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'Scaffold part STD-300 is not in stock'
|
|
act = strip_period( lv_text ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD warning_message.
|
|
DATA lv_order TYPE string VALUE 'SO-101'.
|
|
DATA lv_limit TYPE string VALUE '900'.
|
|
DATA lv_text TYPE string.
|
|
MESSAGE ID '{{P}}SCAF_MSG' TYPE 'W' NUMBER '004'
|
|
WITH lv_order lv_limit INTO lv_text.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'Order SO-101 exceeds the load limit of 900 kg'
|
|
act = strip_period( lv_text ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD info_message.
|
|
DATA lv_order TYPE string VALUE 'SO-102'.
|
|
DATA lv_site TYPE string VALUE 'South Gate'.
|
|
DATA lv_text TYPE string.
|
|
MESSAGE ID '{{P}}SCAF_MSG' TYPE 'I' NUMBER '005'
|
|
WITH lv_order lv_site INTO lv_text.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'Order SO-102 was released for site South Gate'
|
|
act = strip_period( lv_text ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD exception_message.
|
|
DATA(lo_exception) = NEW {{p}}cx_scaf_order(
|
|
iv_order_id = 'SO-100'
|
|
iv_reason = 'Missing permit' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = 'Scaffolding order SO-100 is blocked: Missing permit'
|
|
act = strip_period( lo_exception->get_message( ) ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD exception_attributes.
|
|
DATA(lo_exception) = NEW {{p}}cx_scaf_order(
|
|
iv_order_id = 'SO-100'
|
|
iv_reason = 'Missing permit' ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'SO-100' act = lo_exception->order_id ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'Missing permit' act = lo_exception->reason ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|