CLASS {{p}}t41_test 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 totals_of_one_product FOR TESTING. ENDCLASS. CLASS {{p}}t41_test 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 = 'A1' product = 'BAR' site = '1000' prod_date = '20250101' bars_total = 400 bars_good = 300 bars_scrap = 100 ) ( batch_id = 'A2' product = 'BAR' site = '1000' prod_date = '20250102' bars_total = 600 bars_good = 300 bars_scrap = 300 ) ). go_env->insert_test_data( lt_quality ). ENDMETHOD. METHOD totals_of_one_product. DATA ls_row TYPE {{p}}i_product_quality. SELECT SINGLE * FROM {{p}}i_product_quality WHERE product = 'BAR' INTO @ls_row. cl_abap_unit_assert=>assert_equals( exp = CONV i( 2 ) act = CONV i( ls_row-batch_count ) ). cl_abap_unit_assert=>assert_equals( exp = CONV i( 1000 ) act = CONV i( ls_row-bars_total ) ). cl_abap_unit_assert=>assert_equals( exp = CONV i( 600 ) act = CONV i( ls_row-bars_good ) ). cl_abap_unit_assert=>assert_equals( exp = CONV i( 400 ) act = CONV i( ls_row-bars_scrap ) ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '60.00' ) act = CONV decfloat34( ls_row-yield_pct ) ). ENDMETHOD. ENDCLASS.