Files
abap-llm/tasks_gen/train/G1919/hidden/t20_hidden.clas.abap
2026-10-05 22:08:59 +02:00

204 lines
9.0 KiB
ABAP

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.
CLASS-METHODS get_fields RETURNING VALUE(rt_fields) TYPE ddfields.
CLASS-METHODS field_of
IMPORTING iv_name TYPE fieldname
RETURNING VALUE(rs_field) TYPE dfies.
CLASS-METHODS not_null_flag
IMPORTING iv_name TYPE fieldname
RETURNING VALUE(rv_flag) TYPE abap_bool.
METHODS setup.
METHODS field_names FOR TESTING.
METHODS key_fields FOR TESTING.
METHODS field_types FOR TESTING.
METHODS field_lengths FOR TESTING.
METHODS decimals FOR TESTING.
METHODS not_null_fields FOR TESTING.
METHODS store_and_read FOR TESTING.
METHODS duplicate_key FOR TESTING.
ENDCLASS.
CLASS {{p}}t20_hidden IMPLEMENTATION.
METHOD class_setup.
go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}RESCUE' ) ) ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
go_env->clear_doubles( ).
ENDMETHOD.
METHOD get_fields.
DATA lo_struct TYPE REF TO cl_abap_structdescr.
lo_struct ?= cl_abap_typedescr=>describe_by_name( '{{P}}RESCUE' ).
rt_fields = lo_struct->get_ddic_field_list( ).
ENDMETHOD.
METHOD field_of.
DATA(lt_fields) = get_fields( ).
LOOP AT lt_fields INTO DATA(ls_field) WHERE fieldname = iv_name.
rs_field = ls_field.
RETURN.
ENDLOOP.
ENDMETHOD.
METHOD not_null_flag.
SELECT SINGLE notnull FROM dd03l
WHERE tabname = '{{P}}RESCUE' AND fieldname = @iv_name AND as4local = 'A'
INTO @rv_flag.
ENDMETHOD.
METHOD field_names.
DATA(lt_fields) = get_fields( ).
cl_abap_unit_assert=>assert_equals( exp = 9 act = lines( lt_fields ) ).
DATA(ls_field) = field_of( 'CLIENT' ).
cl_abap_unit_assert=>assert_equals( exp = 'CLIENT' act = ls_field-fieldname ).
ls_field = field_of( 'CALLOUT_ID' ).
cl_abap_unit_assert=>assert_equals( exp = 'CALLOUT_ID' act = ls_field-fieldname ).
ls_field = field_of( 'CALLOUT_DATE' ).
cl_abap_unit_assert=>assert_equals( exp = 'CALLOUT_DATE' act = ls_field-fieldname ).
ls_field = field_of( 'LOCATION' ).
cl_abap_unit_assert=>assert_equals( exp = 'LOCATION' act = ls_field-fieldname ).
ls_field = field_of( 'DURATION_MIN' ).
cl_abap_unit_assert=>assert_equals( exp = 'DURATION_MIN' act = ls_field-fieldname ).
ls_field = field_of( 'TEAM_SIZE' ).
cl_abap_unit_assert=>assert_equals( exp = 'TEAM_SIZE' act = ls_field-fieldname ).
ls_field = field_of( 'RESCUED_COUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 'RESCUED_COUNT' act = ls_field-fieldname ).
ls_field = field_of( 'FEE_AMOUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 'FEE_AMOUNT' act = ls_field-fieldname ).
ls_field = field_of( 'CURRENCY_CODE' ).
cl_abap_unit_assert=>assert_equals( exp = 'CURRENCY_CODE' act = ls_field-fieldname ).
ENDMETHOD.
METHOD key_fields.
DATA(ls_field) = field_of( 'CLIENT' ).
cl_abap_unit_assert=>assert_equals( exp = 'X' act = ls_field-keyflag ).
ls_field = field_of( 'CALLOUT_ID' ).
cl_abap_unit_assert=>assert_equals( exp = 'X' act = ls_field-keyflag ).
ls_field = field_of( 'CALLOUT_DATE' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'LOCATION' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'DURATION_MIN' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'TEAM_SIZE' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'RESCUED_COUNT' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'FEE_AMOUNT' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ls_field = field_of( 'CURRENCY_CODE' ).
cl_abap_unit_assert=>assert_initial( act = ls_field-keyflag ).
ENDMETHOD.
METHOD field_types.
DATA(ls_field) = field_of( 'CLIENT' ).
cl_abap_unit_assert=>assert_equals( exp = 'CLNT' act = ls_field-datatype ).
ls_field = field_of( 'CALLOUT_ID' ).
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
ls_field = field_of( 'CALLOUT_DATE' ).
cl_abap_unit_assert=>assert_equals( exp = 'DATS' act = ls_field-datatype ).
ls_field = field_of( 'LOCATION' ).
cl_abap_unit_assert=>assert_equals( exp = 'CHAR' act = ls_field-datatype ).
ls_field = field_of( 'DURATION_MIN' ).
cl_abap_unit_assert=>assert_equals( exp = 'INT4' act = ls_field-datatype ).
ls_field = field_of( 'TEAM_SIZE' ).
cl_abap_unit_assert=>assert_equals( exp = 'INT4' act = ls_field-datatype ).
ls_field = field_of( 'RESCUED_COUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 'INT4' act = ls_field-datatype ).
ls_field = field_of( 'FEE_AMOUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 'DEC' act = ls_field-datatype ).
ls_field = field_of( 'CURRENCY_CODE' ).
cl_abap_unit_assert=>assert_equals( exp = 'CUKY' act = ls_field-datatype ).
ENDMETHOD.
METHOD field_lengths.
DATA(ls_field) = field_of( 'CLIENT' ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'CALLOUT_ID' ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'CALLOUT_DATE' ).
cl_abap_unit_assert=>assert_equals( exp = 8 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'LOCATION' ).
cl_abap_unit_assert=>assert_equals( exp = 30 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'DURATION_MIN' ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'TEAM_SIZE' ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'RESCUED_COUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'FEE_AMOUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 13 act = CONV i( ls_field-leng ) ).
ls_field = field_of( 'CURRENCY_CODE' ).
cl_abap_unit_assert=>assert_equals( exp = 5 act = CONV i( ls_field-leng ) ).
ENDMETHOD.
METHOD decimals.
DATA(ls_field) = field_of( 'FEE_AMOUNT' ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( ls_field-decimals ) ).
ls_field = field_of( 'DURATION_MIN' ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = CONV i( ls_field-decimals ) ).
ls_field = field_of( 'CURRENCY_CODE' ).
cl_abap_unit_assert=>assert_equals( exp = 0 act = CONV i( ls_field-decimals ) ).
ENDMETHOD.
METHOD not_null_fields.
cl_abap_unit_assert=>assert_equals( exp = 'X' act = not_null_flag( 'CLIENT' ) ).
cl_abap_unit_assert=>assert_equals( exp = 'X' act = not_null_flag( 'CALLOUT_ID' ) ).
cl_abap_unit_assert=>assert_equals( exp = 'X' act = not_null_flag( 'CALLOUT_DATE' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'LOCATION' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'DURATION_MIN' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'TEAM_SIZE' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'RESCUED_COUNT' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'FEE_AMOUNT' ) ).
cl_abap_unit_assert=>assert_initial( act = not_null_flag( 'CURRENCY_CODE' ) ).
ENDMETHOD.
METHOD store_and_read.
DATA ls_rescue TYPE {{p}}rescue.
ls_rescue-client = sy-mandt.
ls_rescue-callout_id = 'C0001'.
ls_rescue-callout_date = '20250115'.
ls_rescue-location = 'NORTH RIDGE'.
ls_rescue-duration_min = 95.
ls_rescue-team_size = 6.
ls_rescue-rescued_count = 2.
ls_rescue-fee_amount = '1250.50'.
ls_rescue-currency_code = 'EUR'.
INSERT {{p}}rescue FROM @ls_rescue.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
DATA ls_read TYPE {{p}}rescue.
SELECT SINGLE * FROM {{p}}rescue WHERE callout_id = 'C0001' INTO @ls_read.
cl_abap_unit_assert=>assert_equals( exp = 'NORTH RIDGE' act = ls_read-location ).
cl_abap_unit_assert=>assert_equals( exp = '20250115' act = ls_read-callout_date ).
cl_abap_unit_assert=>assert_equals( exp = 95 act = ls_read-duration_min ).
cl_abap_unit_assert=>assert_equals( exp = 6 act = ls_read-team_size ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_read-rescued_count ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '1250.50' )
act = CONV decfloat34( ls_read-fee_amount ) ).
cl_abap_unit_assert=>assert_equals( exp = 'EUR' act = ls_read-currency_code ).
ENDMETHOD.
METHOD duplicate_key.
DATA ls_rescue TYPE {{p}}rescue.
ls_rescue-client = sy-mandt.
ls_rescue-callout_id = 'C0002'.
ls_rescue-callout_date = '20250116'.
INSERT {{p}}rescue FROM @ls_rescue.
cl_abap_unit_assert=>assert_subrc( exp = 0 ).
INSERT {{p}}rescue FROM @ls_rescue.
cl_abap_unit_assert=>assert_subrc( exp = 4 ).
ENDMETHOD.
ENDCLASS.