CLASS {{p}}t21_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_truck FOR TESTING. METHODS depot_name_via_path FOR TESTING. METHODS city_via_path FOR TESTING. METHODS depot_names_of_all FOR TESTING. METHODS zero_capacity_hidden FOR TESTING. METHODS unknown_depot_hidden FOR TESTING. METHODS truck_type_shown FOR TESTING. METHODS capacity_shown FOR TESTING. ENDCLASS. CLASS {{p}}t21_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_TRUCK' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_depot TYPE STANDARD TABLE OF {{p}}depot WITH EMPTY KEY. DATA lt_truck TYPE STANDARD TABLE OF {{p}}truck WITH EMPTY KEY. go_env->clear_doubles( ). lt_depot = VALUE #( ( client = sy-mandt depot_id = 'D1' depot_name = 'North Depot' city = 'HAMBURG' ) ( client = sy-mandt depot_id = 'D2' depot_name = 'South Depot' city = 'MUNICH' ) ). lt_truck = VALUE #( ( client = sy-mandt truck_id = 'T1' depot_id = 'D1' capacity_kg = 12000 truck_type = 'BOX' ) ( client = sy-mandt truck_id = 'T2' depot_id = 'D1' capacity_kg = 7500 truck_type = 'FLAT' ) ( client = sy-mandt truck_id = 'T3' depot_id = 'D2' capacity_kg = 20000 truck_type = 'BOX' ) ( client = sy-mandt truck_id = 'T4' depot_id = 'D2' capacity_kg = 0 truck_type = 'BOX' ) ( client = sy-mandt truck_id = 'T5' depot_id = 'D9' capacity_kg = 5000 truck_type = 'BOX' ) ). go_env->insert_test_data( lt_depot ). go_env->insert_test_data( lt_truck ). ENDMETHOD. METHOD one_row_per_truck. SELECT COUNT(*) FROM {{p}}i_truck INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_rows ). ENDMETHOD. METHOD depot_name_via_path. SELECT SINGLE t~\_depot-depot_name FROM {{p}}i_truck AS t WHERE t~truck_id = 'T1' INTO @DATA(lv_name). cl_abap_unit_assert=>assert_equals( exp = 'North Depot' act = lv_name ). ENDMETHOD. METHOD city_via_path. SELECT SINGLE t~\_depot-city FROM {{p}}i_truck AS t WHERE t~truck_id = 'T3' INTO @DATA(lv_city). cl_abap_unit_assert=>assert_equals( exp = 'MUNICH' act = lv_city ). ENDMETHOD. METHOD depot_names_of_all. SELECT t~truck_id, t~\_depot-depot_name AS depot_name FROM {{p}}i_truck AS t INTO TABLE @DATA(lt_rows). cl_abap_unit_assert=>assert_equals( exp = 3 act = lines( lt_rows ) ). READ TABLE lt_rows INTO DATA(ls_row) WITH KEY truck_id = 'T3'. cl_abap_unit_assert=>assert_equals( exp = 'South Depot' act = ls_row-depot_name ). ENDMETHOD. METHOD zero_capacity_hidden. SELECT SINGLE t~truck_id FROM {{p}}i_truck AS t WHERE t~truck_id = 'T4' INTO @DATA(lv_id). cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ). cl_abap_unit_assert=>assert_initial( act = lv_id ). ENDMETHOD. METHOD unknown_depot_hidden. SELECT SINGLE t~truck_id FROM {{p}}i_truck AS t WHERE t~truck_id = 'T5' INTO @DATA(lv_id). cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ). cl_abap_unit_assert=>assert_initial( act = lv_id ). ENDMETHOD. METHOD truck_type_shown. SELECT SINGLE t~truck_type FROM {{p}}i_truck AS t WHERE t~truck_id = 'T2' INTO @DATA(lv_type). cl_abap_unit_assert=>assert_equals( exp = 'FLAT' act = lv_type ). ENDMETHOD. METHOD capacity_shown. SELECT SINGLE t~capacity_kg FROM {{p}}i_truck AS t WHERE t~truck_id = 'T3' INTO @DATA(lv_capacity). cl_abap_unit_assert=>assert_equals( exp = 20000 act = lv_capacity ). ENDMETHOD. ENDCLASS.