Files
abap-llm/tasks_gen/train/G1901/reference/t20_test.clas.abap

81 lines
2.5 KiB
ABAP

CLASS {{p}}t20_test DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA go_env TYPE REF TO if_osql_test_environment.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS stores_row FOR TESTING.
METHODS rejects_duplicate FOR TESTING.
METHODS keeps_three_decimals FOR TESTING.
ENDCLASS.
CLASS {{p}}t20_test IMPLEMENTATION.
METHOD class_setup.
go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}STOCK' ) ) ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
go_env->clear_doubles( ).
ENDMETHOD.
METHOD stores_row.
DATA ls_row TYPE {{p}}stock.
DATA ls_read TYPE {{p}}stock.
DATA lv_subrc TYPE sy-subrc.
ls_row-client = sy-mandt.
ls_row-bin_id = 'BIN-0001'.
ls_row-article_id = 'ART-000001'.
ls_row-quantity = '12.500'.
ls_row-unit_of_measure = 'ST'.
ls_row-shelf_no = '0042'.
ls_row-last_count_date = '20250115'.
ls_row-blocked = 'X'.
INSERT {{p}}stock FROM @ls_row.
lv_subrc = sy-subrc.
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
SELECT SINGLE * FROM {{p}}stock
WHERE bin_id = 'BIN-0001' AND article_id = 'ART-000001'
INTO @ls_read.
cl_abap_unit_assert=>assert_equals( exp = ls_row-quantity act = ls_read-quantity ).
cl_abap_unit_assert=>assert_equals( exp = ls_row-unit_of_measure act = ls_read-unit_of_measure ).
cl_abap_unit_assert=>assert_equals( exp = ls_row-blocked act = ls_read-blocked ).
ENDMETHOD.
METHOD rejects_duplicate.
DATA ls_row TYPE {{p}}stock.
DATA lv_subrc TYPE sy-subrc.
ls_row-client = sy-mandt.
ls_row-bin_id = 'BIN-0002'.
ls_row-article_id = 'ART-000002'.
INSERT {{p}}stock FROM @ls_row.
INSERT {{p}}stock FROM @ls_row.
lv_subrc = sy-subrc.
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_subrc ).
ENDMETHOD.
METHOD keeps_three_decimals.
DATA ls_row TYPE {{p}}stock.
DATA lv_quantity TYPE {{p}}stock-quantity.
ls_row-client = sy-mandt.
ls_row-bin_id = 'BIN-0003'.
ls_row-article_id = 'ART-000003'.
ls_row-quantity = '0.125'.
ls_row-unit_of_measure = 'KG'.
INSERT {{p}}stock FROM @ls_row.
SELECT SINGLE quantity FROM {{p}}stock
WHERE bin_id = 'BIN-0003' AND article_id = 'ART-000003'
INTO @lv_quantity.
cl_abap_unit_assert=>assert_equals(
exp = CONV decfloat34( '0.125' )
act = CONV decfloat34( lv_quantity ) ).
ENDMETHOD.
ENDCLASS.