CLASS {{p}}t16_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 both_sources FOR TESTING. METHODS mode_literal FOR TESTING. ENDCLASS. CLASS {{p}}t16_test IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_SHIPMENT' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_road TYPE STANDARD TABLE OF {{p}}road WITH EMPTY KEY. DATA lt_rail TYPE STANDARD TABLE OF {{p}}rail WITH EMPTY KEY. go_env->clear_doubles( ). lt_road = VALUE #( ( ship_id = 'R1' cust = 'C1' kg = '1.000' cost = '10.00' ) ). lt_rail = VALUE #( ( ship_id = 'L1' customer = 'C2' weight = '2.000' fee = '20.00' ) ). go_env->insert_test_data( lt_road ). go_env->insert_test_data( lt_rail ). ENDMETHOD. METHOD both_sources. SELECT COUNT(*) FROM {{p}}i_shipment INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 2 act = lv_count ). ENDMETHOD. METHOD mode_literal. SELECT SINGLE ship_mode FROM {{p}}i_shipment WHERE ship_id = 'L1' INTO @DATA(lv_ship_mode). cl_abap_unit_assert=>assert_equals( exp = 'RAIL' act = lv_ship_mode ). ENDMETHOD. ENDCLASS.