116 lines
4.3 KiB
ABAP
116 lines
4.3 KiB
ABAP
CLASS {{p}}t41_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
|
|
CLASS-METHODS class_setup.
|
|
CLASS-METHODS class_teardown.
|
|
METHODS setup.
|
|
METHODS one_row_per_product FOR TESTING.
|
|
METHODS batch_count_choc FOR TESTING.
|
|
METHODS batch_count_dark FOR TESTING.
|
|
METHODS total_bars_choc FOR TESTING.
|
|
METHODS good_bars_choc FOR TESTING.
|
|
METHODS scrap_bars_choc FOR TESTING.
|
|
METHODS yield_choc FOR TESTING.
|
|
METHODS yield_dark FOR TESTING.
|
|
METHODS yield_milk FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t41_hidden IMPLEMENTATION.
|
|
|
|
METHOD class_setup.
|
|
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_PRODUCT_QUALITY' ).
|
|
ENDMETHOD.
|
|
|
|
METHOD class_teardown.
|
|
go_env->destroy( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD setup.
|
|
DATA lt_quality TYPE STANDARD TABLE OF {{p}}i_batch_quality WITH EMPTY KEY.
|
|
go_env->clear_doubles( ).
|
|
lt_quality = VALUE #(
|
|
( batch_id = 'B1' product = 'CHOC' site = '1000' prod_date = '20250101'
|
|
bars_total = 1000 bars_good = 900 bars_scrap = 100 )
|
|
( batch_id = 'B2' product = 'CHOC' site = '1000' prod_date = '20250102'
|
|
bars_total = 1000 bars_good = 750 bars_scrap = 250 )
|
|
( batch_id = 'B3' product = 'DARK' site = '2000' prod_date = '20250103'
|
|
bars_total = 2000 bars_good = 1234 bars_scrap = 766 )
|
|
( batch_id = 'B4' product = 'MILK' site = '1000' prod_date = '20250105'
|
|
bars_total = 4 bars_good = 3 bars_scrap = 1 ) ).
|
|
go_env->insert_test_data( lt_quality ).
|
|
ENDMETHOD.
|
|
|
|
METHOD one_row_per_product.
|
|
DATA lv_rows TYPE i.
|
|
SELECT COUNT(*) FROM {{p}}i_product_quality INTO @lv_rows.
|
|
cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_rows ).
|
|
ENDMETHOD.
|
|
|
|
METHOD batch_count_choc.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'CHOC' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV i( 2 )
|
|
act = CONV i( ls_row-batch_count ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD batch_count_dark.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'DARK' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV i( 1 )
|
|
act = CONV i( ls_row-batch_count ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD total_bars_choc.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'CHOC' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV i( 2000 )
|
|
act = CONV i( ls_row-bars_total ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD good_bars_choc.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'CHOC' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV i( 1650 )
|
|
act = CONV i( ls_row-bars_good ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD scrap_bars_choc.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'CHOC' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV i( 350 )
|
|
act = CONV i( ls_row-bars_scrap ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD yield_choc.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'CHOC' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '82.50' )
|
|
act = CONV decfloat34( ls_row-yield_pct ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD yield_dark.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'DARK' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '61.70' )
|
|
act = CONV decfloat34( ls_row-yield_pct ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD yield_milk.
|
|
DATA ls_row TYPE {{p}}i_product_quality.
|
|
SELECT SINGLE * FROM {{p}}i_product_quality
|
|
WHERE product = 'MILK' INTO @ls_row.
|
|
cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '75.00' )
|
|
act = CONV decfloat34( ls_row-yield_pct ) ).
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|