CLASS {{p}}t_runlog_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 runs_of_still FOR TESTING. METHODS wash_volume FOR TESTING. METHODS spirit_volume FOR TESTING. METHODS distinct_casks FOR TESTING. METHODS last_run FOR TESTING. METHODS failed_runs_skipped FOR TESTING. ENDCLASS. CLASS {{p}}t_runlog_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_STILL_OUTPUT' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_runlog TYPE STANDARD TABLE OF {{p}}runlog WITH EMPTY KEY. go_env->clear_doubles( ). lt_runlog = VALUE #( ( run_id = 'R1' still_id = 'STILL-A' run_date = '20240301' wash_litre = '1000.0' spirit_litre = '120.0' strength_pct = '68.50' cask_no = 'C1' ) ( run_id = 'R2' still_id = 'STILL-A' run_date = '20240315' wash_litre = '1200.0' spirit_litre = '150.0' strength_pct = '70.00' cask_no = 'C2' ) ( run_id = 'R3' still_id = 'STILL-A' run_date = '20240401' wash_litre = '900.0' spirit_litre = '100.0' strength_pct = '69.00' cask_no = 'C1' ) ( run_id = 'R4' still_id = 'STILL-B' run_date = '20240210' wash_litre = '800.0' spirit_litre = '0.0' strength_pct = '0.00' cask_no = '' ) ( run_id = 'R5' still_id = 'STILL-B' run_date = '20240220' wash_litre = '700.0' spirit_litre = '90.0' strength_pct = '65.00' cask_no = 'C3' ) ( run_id = 'R6' still_id = 'STILL-C' run_date = '20240305' wash_litre = '500.0' spirit_litre = '0.0' strength_pct = '0.00' cask_no = '' ) ). go_env->insert_test_data( lt_runlog ). ENDMETHOD. METHOD runs_of_still. SELECT SINGLE runs FROM {{p}}i_still_output WHERE still_id = 'STILL-A' INTO @DATA(lv_runs). cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_runs ). ENDMETHOD. METHOD wash_volume. SELECT SINGLE wash_l FROM {{p}}i_still_output WHERE still_id = 'STILL-A' INTO @DATA(lv_wash). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '3100.0' ) act = CONV decfloat34( lv_wash ) ). ENDMETHOD. METHOD spirit_volume. SELECT SINGLE spirit_l FROM {{p}}i_still_output WHERE still_id = 'STILL-A' INTO @DATA(lv_spirit). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '370.0' ) act = CONV decfloat34( lv_spirit ) ). ENDMETHOD. METHOD distinct_casks. SELECT SINGLE casks FROM {{p}}i_still_output WHERE still_id = 'STILL-A' INTO @DATA(lv_casks). cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_casks ). ENDMETHOD. METHOD last_run. SELECT SINGLE last_run FROM {{p}}i_still_output WHERE still_id = 'STILL-A' INTO @DATA(lv_last). cl_abap_unit_assert=>assert_equals( exp = CONV dats( '20240401' ) act = lv_last ). ENDMETHOD. METHOD failed_runs_skipped. SELECT COUNT(*) FROM {{p}}i_still_output INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rows ). SELECT SINGLE runs FROM {{p}}i_still_output WHERE still_id = 'STILL-B' INTO @DATA(lv_runs). cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_runs ). ENDMETHOD. ENDCLASS.