Files
abap-llm/tasks_gen/eval/G0178/reference/stock_age.testclasses.abap

81 lines
2.9 KiB
ABAP

CLASS ltc_stock_age DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CONSTANTS c_key_date TYPE dats VALUE '20240401'.
DATA mo_cut TYPE REF TO {{p}}if_stock_age.
METHODS setup.
METHODS gr_date_for_age
IMPORTING iv_age TYPE i
RETURNING VALUE(rv_date) TYPE dats.
METHODS empty_input FOR TESTING.
METHODS bucket_01 FOR TESTING.
METHODS bucket_04 FOR TESTING.
METHODS invalid_rows FOR TESTING.
METHODS total_by_material FOR TESTING.
ENDCLASS.
CLASS ltc_stock_age IMPLEMENTATION.
METHOD setup.
mo_cut = NEW {{p}}stock_age( ).
ENDMETHOD.
METHOD gr_date_for_age.
rv_date = c_key_date - iv_age.
ENDMETHOD.
METHOD empty_input.
cl_abap_unit_assert=>assert_initial(
act = mo_cut->analyze( it_batch = VALUE {{p}}if_stock_age=>tt_batch( )
iv_key_date = c_key_date ) ).
ENDMETHOD.
METHOD bucket_01.
DATA(lt_result) = mo_cut->analyze(
it_batch = VALUE {{p}}if_stock_age=>tt_batch(
( material = 'MAT-1' batch = 'B1' quantity = 10
gr_date = gr_date_for_age( 30 ) ) )
iv_key_date = c_key_date ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 1 ]-bucket
exp = {{p}}if_stock_age=>c_bucket-d0_30 ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 1 ]-quantity exp = 10 ).
ENDMETHOD.
METHOD bucket_04.
DATA(lt_result) = mo_cut->analyze(
it_batch = VALUE {{p}}if_stock_age=>tt_batch(
( material = 'MAT-1' batch = 'B1' quantity = 10
gr_date = gr_date_for_age( 91 ) ) )
iv_key_date = c_key_date ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 1 ]-bucket
exp = {{p}}if_stock_age=>c_bucket-d91_plus ).
ENDMETHOD.
METHOD invalid_rows.
DATA(lt_result) = mo_cut->analyze(
it_batch = VALUE {{p}}if_stock_age=>tt_batch(
( material = 'MAT-1' batch = 'B1' quantity = 10 gr_date = '00000000' ) )
iv_key_date = c_key_date ).
cl_abap_unit_assert=>assert_initial( act = lt_result ).
ENDMETHOD.
METHOD total_by_material.
DATA(lt_result) = mo_cut->total_by_material(
it_batch = VALUE {{p}}if_stock_age=>tt_batch(
( material = 'MAT-2' batch = 'B1' quantity = 10 gr_date = gr_date_for_age( 1 ) )
( material = 'MAT-1' batch = 'B2' quantity = 5 gr_date = gr_date_for_age( 100 ) ) )
iv_key_date = c_key_date ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 1 ]-material exp = 'MAT-1' ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 1 ]-quantity exp = 5 ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 2 ]-material exp = 'MAT-2' ).
cl_abap_unit_assert=>assert_equals( act = lt_result[ 2 ]-quantity exp = 10 ).
ENDMETHOD.
ENDCLASS.