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

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.