Object type mix: INTF, TABL, STRU, MSAG, exception tasks (harness G2, mutants, generator notes), balanced generator, kind-deficit job order, dashboard mix card
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
182
tasks_gen/train/G1901/hidden/t20_hidden.clas.abap
Normal file
182
tasks_gen/train/G1901/hidden/t20_hidden.clas.abap
Normal file
@@ -0,0 +1,182 @@
|
||||
CLASS {{p}}t20_hidden 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 fields_exist FOR TESTING.
|
||||
METHODS key_fields FOR TESTING.
|
||||
METHODS field_lengths FOR TESTING.
|
||||
METHODS field_types FOR TESTING.
|
||||
METHODS insert_and_read FOR TESTING.
|
||||
METHODS decimal_roundtrip FOR TESTING.
|
||||
METHODS duplicate_key FOR TESTING.
|
||||
METHODS other_key_allowed FOR TESTING.
|
||||
METHODS get_fields RETURNING VALUE(rt_fields) TYPE ddfields.
|
||||
METHODS field_of IMPORTING it_fields TYPE ddfields
|
||||
iv_name TYPE string
|
||||
RETURNING VALUE(rs_field) TYPE dfies.
|
||||
METHODS assert_has_field IMPORTING it_fields TYPE ddfields
|
||||
iv_name TYPE string.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS {{p}}t20_hidden 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 get_fields.
|
||||
DATA(lo_descr) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( '{{P}}STOCK' ) ).
|
||||
rt_fields = lo_descr->get_ddic_field_list( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_of.
|
||||
LOOP AT it_fields INTO DATA(ls_field).
|
||||
IF to_upper( ls_field-fieldname ) = to_upper( iv_name ).
|
||||
rs_field = ls_field.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD assert_has_field.
|
||||
cl_abap_unit_assert=>assert_true(
|
||||
act = boolc( field_of( it_fields = it_fields iv_name = iv_name )-fieldname IS NOT INITIAL )
|
||||
msg = |Field { iv_name } is missing| ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD fields_exist.
|
||||
DATA(lt_fields) = get_fields( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = lines( lt_fields ) ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'CLIENT' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'BIN_ID' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'ARTICLE_ID' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'QUANTITY' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'UNIT_OF_MEASURE' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'SHELF_NO' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'LAST_COUNT_DATE' ).
|
||||
assert_has_field( it_fields = lt_fields iv_name = 'BLOCKED' ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD key_fields.
|
||||
DATA(lt_fields) = get_fields( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_of( it_fields = lt_fields iv_name = 'CLIENT' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_of( it_fields = lt_fields iv_name = 'BIN_ID' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_of( it_fields = lt_fields iv_name = 'ARTICLE_ID' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( it_fields = lt_fields iv_name = 'QUANTITY' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( it_fields = lt_fields iv_name = 'UNIT_OF_MEASURE' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( it_fields = lt_fields iv_name = 'SHELF_NO' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( it_fields = lt_fields iv_name = 'LAST_COUNT_DATE' )-keyflag ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_of( it_fields = lt_fields iv_name = 'BLOCKED' )-keyflag ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_lengths.
|
||||
DATA(lt_fields) = get_fields( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = field_of( it_fields = lt_fields iv_name = 'CLIENT' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = field_of( it_fields = lt_fields iv_name = 'BIN_ID' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 12 act = field_of( it_fields = lt_fields iv_name = 'ARTICLE_ID' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 13 act = field_of( it_fields = lt_fields iv_name = 'QUANTITY' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = field_of( it_fields = lt_fields iv_name = 'UNIT_OF_MEASURE' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = field_of( it_fields = lt_fields iv_name = 'SHELF_NO' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 8 act = field_of( it_fields = lt_fields iv_name = 'LAST_COUNT_DATE' )-leng ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 1 act = field_of( it_fields = lt_fields iv_name = 'BLOCKED' )-leng ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD field_types.
|
||||
DATA(lt_fields) = get_fields( ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CLNT' act = field_of( it_fields = lt_fields iv_name = 'CLIENT' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = field_of( it_fields = lt_fields iv_name = 'BIN_ID' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = field_of( it_fields = lt_fields iv_name = 'ARTICLE_ID' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'P' act = field_of( it_fields = lt_fields iv_name = 'QUANTITY' )-inttype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3 act = field_of( it_fields = lt_fields iv_name = 'QUANTITY' )-decimals ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'UNIT' act = field_of( it_fields = lt_fields iv_name = 'UNIT_OF_MEASURE' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'NUMC' act = field_of( it_fields = lt_fields iv_name = 'SHELF_NO' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'DATS' act = field_of( it_fields = lt_fields iv_name = 'LAST_COUNT_DATE' )-datatype ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = field_of( it_fields = lt_fields iv_name = 'BLOCKED' )-datatype ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD insert_and_read.
|
||||
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-shelf_no act = ls_read-shelf_no ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_row-last_count_date act = ls_read-last_count_date ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_row-blocked act = ls_read-blocked ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_row-client act = ls_read-client ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD decimal_roundtrip.
|
||||
DATA ls_row TYPE {{p}}stock.
|
||||
DATA lv_quantity TYPE {{p}}stock-quantity.
|
||||
ls_row-client = sy-mandt.
|
||||
ls_row-bin_id = 'BIN-0002'.
|
||||
ls_row-article_id = 'ART-000002'.
|
||||
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-0002' AND article_id = 'ART-000002'
|
||||
INTO @lv_quantity.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = CONV decfloat34( '0.125' )
|
||||
act = CONV decfloat34( lv_quantity ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD duplicate_key.
|
||||
DATA ls_row TYPE {{p}}stock.
|
||||
DATA lv_subrc TYPE sy-subrc.
|
||||
ls_row-client = sy-mandt.
|
||||
ls_row-bin_id = 'BIN-0003'.
|
||||
ls_row-article_id = 'ART-000003'.
|
||||
INSERT {{p}}stock FROM @ls_row.
|
||||
lv_subrc = sy-subrc.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
INSERT {{p}}stock FROM @ls_row.
|
||||
lv_subrc = sy-subrc.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_subrc ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD other_key_allowed.
|
||||
DATA ls_row TYPE {{p}}stock.
|
||||
DATA lv_subrc TYPE sy-subrc.
|
||||
DATA lv_count TYPE i.
|
||||
ls_row-client = sy-mandt.
|
||||
ls_row-bin_id = 'BIN-0004'.
|
||||
ls_row-article_id = 'ART-000004'.
|
||||
INSERT {{p}}stock FROM @ls_row.
|
||||
ls_row-article_id = 'ART-000005'.
|
||||
INSERT {{p}}stock FROM @ls_row.
|
||||
lv_subrc = sy-subrc.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_subrc ).
|
||||
SELECT COUNT(*) FROM {{p}}stock INTO @lv_count.
|
||||
cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_count ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user