CLASS {{p}}lift_usage_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 hours_summed FOR TESTING. METHODS service_count FOR TESTING. METHODS last_service_date FOR TESTING. METHODS trip_total FOR TESTING. METHODS test_mode_excluded FOR TESTING. METHODS lift_without_ops FOR TESTING. METHODS one_row_per_mode FOR TESTING. METHODS building_shown FOR TESTING. ENDCLASS. CLASS {{p}}lift_usage_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_LIFT_USAGE' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_lift TYPE STANDARD TABLE OF {{p}}lift WITH EMPTY KEY. DATA lt_op TYPE STANDARD TABLE OF {{p}}lift_op WITH EMPTY KEY. go_env->clear_doubles( ). lt_lift = VALUE #( ( lift_id = 'L1' building_id = 'B1' capacity_kg = '800.00' ) ( lift_id = 'L2' building_id = 'B2' capacity_kg = '630.00' ) ( lift_id = 'L3' building_id = 'B1' capacity_kg = '400.00' ) ). lt_op = VALUE #( ( lift_id = 'L1' run_no = 1 run_date = '20240310' run_hours = '3.50' run_mode = 'AUTO' trips = 12 ) ( lift_id = 'L1' run_no = 2 run_date = '20240315' run_hours = '1.50' run_mode = 'AUTO' trips = 5 ) ( lift_id = 'L1' run_no = 3 run_date = '20240312' run_hours = '2.00' run_mode = 'MAN' trips = 8 ) ( lift_id = 'L1' run_no = 4 run_date = '20240320' run_hours = '9.00' run_mode = 'TEST' trips = 99 ) ( lift_id = 'L3' run_no = 1 run_date = '20240401' run_hours = '5.00' run_mode = 'AUTO' trips = 20 ) ). go_env->insert_test_data( lt_lift ). go_env->insert_test_data( lt_op ). ENDMETHOD. METHOD hours_summed. SELECT SINGLE service_hours FROM {{p}}i_lift_usage WHERE lift_id = 'L1' AND run_mode = 'AUTO' INTO @DATA(lv_hours). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '5.00' ) act = CONV decfloat34( lv_hours ) ). ENDMETHOD. METHOD service_count. SELECT SINGLE service_count FROM {{p}}i_lift_usage WHERE lift_id = 'L1' AND run_mode = 'AUTO' INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_count ). ENDMETHOD. METHOD last_service_date. DATA lv_exp TYPE d VALUE '20240315'. SELECT SINGLE last_service FROM {{p}}i_lift_usage WHERE lift_id = 'L1' AND run_mode = 'AUTO' INTO @DATA(lv_date). cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_date ). ENDMETHOD. METHOD trip_total. SELECT SINGLE trip_total FROM {{p}}i_lift_usage WHERE lift_id = 'L1' AND run_mode = 'AUTO' INTO @DATA(lv_trips). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '17' ) act = CONV decfloat34( lv_trips ) ). ENDMETHOD. METHOD test_mode_excluded. SELECT COUNT(*) FROM {{p}}i_lift_usage WHERE run_mode = 'TEST' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ). ENDMETHOD. METHOD lift_without_ops. SELECT COUNT(*) FROM {{p}}i_lift_usage WHERE lift_id = 'L2' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_rows ). ENDMETHOD. METHOD one_row_per_mode. SELECT COUNT(*) FROM {{p}}i_lift_usage WHERE lift_id = 'L1' INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_rows ). ENDMETHOD. METHOD building_shown. SELECT SINGLE building_id FROM {{p}}i_lift_usage WHERE lift_id = 'L1' AND run_mode = 'AUTO' INTO @DATA(lv_building). cl_abap_unit_assert=>assert_equals( exp = 'B1' act = lv_building ). ENDMETHOD. ENDCLASS.