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 day_profile FOR TESTING. ENDCLASS. CLASS {{p}}t41_test IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_MACHINE_DAY' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_mach TYPE STANDARD TABLE OF {{p}}mach WITH EMPTY KEY. DATA lt_sensor TYPE STANDARD TABLE OF {{p}}sensor WITH EMPTY KEY. go_env->clear_doubles( ). lt_mach = VALUE #( ( machine_id = 'A1' machine_name = 'Mill' plant = '3000' ) ). lt_sensor = VALUE #( ( machine_id = 'A1' reading_no = 1 reading_date = '20240201' sensor = 'TEMP' reading_value = '60.00' ) ( machine_id = 'A1' reading_no = 2 reading_date = '20240201' sensor = 'TEMP' reading_value = '90.00' ) ). go_env->insert_test_data( lt_mach ). go_env->insert_test_data( lt_sensor ). ENDMETHOD. METHOD day_profile. SELECT SINGLE reading_count FROM {{p}}i_machine_day WHERE machine_id = 'A1' AND reading_date = '20240201' INTO @DATA(lv_count). SELECT SINGLE max_value FROM {{p}}i_machine_day WHERE machine_id = 'A1' AND reading_date = '20240201' INTO @DATA(lv_max). SELECT SINGLE alert_count FROM {{p}}i_machine_day WHERE machine_id = 'A1' AND reading_date = '20240201' INTO @DATA(lv_alerts). cl_abap_unit_assert=>assert_equals( exp = 2 act = CONV i( lv_count ) ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '90.00' ) act = CONV decfloat34( lv_max ) ). cl_abap_unit_assert=>assert_equals( exp = 1 act = CONV i( lv_alerts ) ). ENDMETHOD. ENDCLASS.