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

150 lines
6.9 KiB
ABAP

CLASS {{p}}jump_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-DATA gt_fields TYPE ddfields.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS field_info
IMPORTING iv_name TYPE fieldname
RETURNING VALUE(rs_info) TYPE dfies.
METHODS assert_field_exists
IMPORTING iv_name TYPE fieldname.
METHODS all_fields_exist FOR TESTING.
METHODS key_fields FOR TESTING.
METHODS char_fields FOR TESTING.
METHODS date_field FOR TESTING.
METHODS minutes_field FOR TESTING.
METHODS amount_field FOR TESTING.
METHODS client_field FOR TESTING.
METHODS insert_and_read FOR TESTING.
METHODS duplicate_key FOR TESTING.
METHODS filter_by_date FOR TESTING.
ENDCLASS.
CLASS {{p}}jump_hidden IMPLEMENTATION.
METHOD class_setup.
DATA(lo_struct) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( '{{P}}JUMP' ) ).
gt_fields = lo_struct->get_ddic_field_list( ).
go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}JUMP' ) ) ).
ENDMETHOD.
METHOD class_teardown.
go_env->destroy( ).
ENDMETHOD.
METHOD setup.
go_env->clear_doubles( ).
ENDMETHOD.
METHOD field_info.
READ TABLE gt_fields INTO rs_info WITH KEY fieldname = iv_name.
ENDMETHOD.
METHOD assert_field_exists.
cl_abap_unit_assert=>assert_equals( exp = iv_name act = field_info( iv_name )-fieldname ).
ENDMETHOD.
METHOD all_fields_exist.
cl_abap_unit_assert=>assert_equals( exp = 8 act = lines( gt_fields ) ).
assert_field_exists( 'CLIENT' ).
assert_field_exists( 'SESSION_ID' ).
assert_field_exists( 'VISITOR_ID' ).
assert_field_exists( 'JUMP_DATE' ).
assert_field_exists( 'JUMP_MINUTES' ).
assert_field_exists( 'LOCKER_NO' ).
assert_field_exists( 'FEE_AMOUNT' ).
assert_field_exists( 'PAID' ).
ENDMETHOD.
METHOD key_fields.
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_info( 'CLIENT' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = 'X' act = field_info( 'SESSION_ID' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'VISITOR_ID' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'JUMP_DATE' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'JUMP_MINUTES' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'LOCKER_NO' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'FEE_AMOUNT' )-keyflag ).
cl_abap_unit_assert=>assert_equals( exp = ' ' act = field_info( 'PAID' )-keyflag ).
ENDMETHOD.
METHOD char_fields.
cl_abap_unit_assert=>assert_equals( exp = 'C' act = field_info( 'SESSION_ID' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = field_info( 'SESSION_ID' )-leng ).
cl_abap_unit_assert=>assert_equals( exp = 'C' act = field_info( 'VISITOR_ID' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = field_info( 'VISITOR_ID' )-leng ).
cl_abap_unit_assert=>assert_equals( exp = 'N' act = field_info( 'LOCKER_NO' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 4 act = field_info( 'LOCKER_NO' )-leng ).
cl_abap_unit_assert=>assert_equals( exp = 'C' act = field_info( 'PAID' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 1 act = field_info( 'PAID' )-leng ).
ENDMETHOD.
METHOD date_field.
cl_abap_unit_assert=>assert_equals( exp = 'D' act = field_info( 'JUMP_DATE' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 8 act = field_info( 'JUMP_DATE' )-leng ).
ENDMETHOD.
METHOD minutes_field.
cl_abap_unit_assert=>assert_equals( exp = 'I' act = field_info( 'JUMP_MINUTES' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 10 act = field_info( 'JUMP_MINUTES' )-leng ).
ENDMETHOD.
METHOD amount_field.
cl_abap_unit_assert=>assert_equals( exp = 'P' act = field_info( 'FEE_AMOUNT' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 9 act = field_info( 'FEE_AMOUNT' )-leng ).
cl_abap_unit_assert=>assert_equals( exp = 2 act = field_info( 'FEE_AMOUNT' )-decimals ).
ENDMETHOD.
METHOD client_field.
cl_abap_unit_assert=>assert_equals( exp = 'C' act = field_info( 'CLIENT' )-inttype ).
cl_abap_unit_assert=>assert_equals( exp = 3 act = field_info( 'CLIENT' )-leng ).
ENDMETHOD.
METHOD insert_and_read.
DATA(ls_jump) = VALUE {{p}}jump( session_id = 'S000000001'
visitor_id = 'V000000001'
jump_date = '20250401'
jump_minutes = 60
locker_no = '0007'
fee_amount = '12.50'
paid = 'X' ).
INSERT {{p}}jump FROM @ls_jump.
cl_abap_unit_assert=>assert_equals( exp = 0 act = sy-subrc ).
SELECT SINGLE * FROM {{p}}jump WHERE session_id = 'S000000001' INTO @DATA(ls_read).
cl_abap_unit_assert=>assert_equals( exp = ls_jump-visitor_id act = ls_read-visitor_id ).
cl_abap_unit_assert=>assert_equals( exp = ls_jump-jump_date act = ls_read-jump_date ).
cl_abap_unit_assert=>assert_equals( exp = ls_jump-jump_minutes act = ls_read-jump_minutes ).
cl_abap_unit_assert=>assert_equals( exp = ls_jump-locker_no act = ls_read-locker_no ).
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( ls_jump-fee_amount )
act = CONV decfloat34( ls_read-fee_amount ) ).
cl_abap_unit_assert=>assert_equals( exp = ls_jump-paid act = ls_read-paid ).
ENDMETHOD.
METHOD duplicate_key.
DATA(ls_jump) = VALUE {{p}}jump( session_id = 'S000000002'
visitor_id = 'V000000002'
jump_date = '20250402' ).
INSERT {{p}}jump FROM @ls_jump.
cl_abap_unit_assert=>assert_equals( exp = 0 act = sy-subrc ).
INSERT {{p}}jump FROM @ls_jump.
cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ).
ENDMETHOD.
METHOD filter_by_date.
DATA lt_jump TYPE STANDARD TABLE OF {{p}}jump WITH EMPTY KEY.
lt_jump = VALUE #( ( session_id = 'S1' visitor_id = 'A' jump_date = '20250401' )
( session_id = 'S2' visitor_id = 'B' jump_date = '20250401' )
( session_id = 'S3' visitor_id = 'C' jump_date = '20250402' ) ).
INSERT {{p}}jump FROM TABLE @lt_jump.
cl_abap_unit_assert=>assert_equals( exp = 0 act = sy-subrc ).
SELECT * FROM {{p}}jump INTO TABLE @DATA(lt_all).
cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_all ) ).
SELECT * FROM {{p}}jump WHERE jump_date = '20250401' INTO TABLE @DATA(lt_day).
cl_abap_unit_assert=>assert_equals( exp = 2 act = lines( lt_day ) ).
ENDMETHOD.
ENDCLASS.