CLASS {{p}}t20_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 association_path FOR TESTING. METHODS closed_order_hidden FOR TESTING. METHODS customer_data_shown FOR TESTING. METHODS open_orders_only FOR TESTING. METHODS order_key_data FOR TESTING. METHODS order_without_customer FOR TESTING. ENDCLASS. CLASS {{p}}t20_hidden IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_ORDER' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_cust TYPE STANDARD TABLE OF {{p}}cust WITH EMPTY KEY. DATA lt_ord TYPE STANDARD TABLE OF {{p}}ord WITH EMPTY KEY. go_env->clear_doubles( ). lt_cust = VALUE #( ( cust_id = 'C001' cust_name = 'Alpha GmbH' country = 'DE' ) ( cust_id = 'C002' cust_name = 'Beta Ltd' country = 'GB' ) ). lt_ord = VALUE #( ( order_id = 'O100' cust_id = 'C001' order_date = '20250110' status = 'O' ) ( order_id = 'O101' cust_id = 'C002' order_date = '20250111' status = 'O' ) ( order_id = 'O102' cust_id = 'C999' order_date = '20250112' status = 'O' ) ( order_id = 'O103' cust_id = 'C001' order_date = '20250113' status = 'C' ) ). go_env->insert_test_data( lt_cust ). go_env->insert_test_data( lt_ord ). ENDMETHOD. METHOD open_orders_only. SELECT COUNT(*) FROM {{p}}i_order INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 3 act = lv_count ). ENDMETHOD. METHOD closed_order_hidden. SELECT SINGLE order_id FROM {{p}}i_order WHERE order_id = 'O103' INTO @DATA(lv_id). cl_abap_unit_assert=>assert_initial( act = lv_id ). ENDMETHOD. METHOD order_key_data. SELECT SINGLE cust_id, order_date FROM {{p}}i_order WHERE order_id = 'O100' INTO @DATA(ls_ord). cl_abap_unit_assert=>assert_equals( exp = 'C001' act = ls_ord-cust_id ). cl_abap_unit_assert=>assert_equals( exp = CONV d( '20250110' ) act = ls_ord-order_date ). ENDMETHOD. METHOD customer_data_shown. SELECT SINGLE customer_name, country FROM {{p}}i_order WHERE order_id = 'O101' INTO @DATA(ls_ord). cl_abap_unit_assert=>assert_equals( exp = 'Beta Ltd' act = ls_ord-customer_name ). cl_abap_unit_assert=>assert_equals( exp = 'GB' act = ls_ord-country ). ENDMETHOD. METHOD order_without_customer. SELECT SINGLE customer_name, country FROM {{p}}i_order WHERE order_id = 'O102' INTO @DATA(ls_ord). cl_abap_unit_assert=>assert_initial( act = ls_ord-customer_name ). cl_abap_unit_assert=>assert_initial( act = ls_ord-country ). ENDMETHOD. METHOD association_path. SELECT SINGLE \_customer-cust_name FROM {{p}}i_order WHERE order_id = 'O100' INTO @DATA(lv_name). cl_abap_unit_assert=>assert_equals( exp = 'Alpha GmbH' act = lv_name ). ENDMETHOD. ENDCLASS.