CLASS {{p}}t16_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 road_rows FOR TESTING. METHODS rail_rows FOR TESTING. METHODS row_count FOR TESTING. METHODS road_customer FOR TESTING. METHODS rail_customer FOR TESTING. METHODS road_weight FOR TESTING. METHODS rail_cost FOR TESTING. METHODS light_shipments_hidden FOR TESTING. ENDCLASS. CLASS {{p}}t16_hidden 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 = 'ALPHA' kg = '10.500' cost = '100.00' ) ( ship_id = 'R2' cust = 'BETA' kg = '2.000' cost = '50.00' ) ( ship_id = 'R3' cust = 'GAMMA' kg = '0.000' cost = '10.00' ) ). lt_rail = VALUE #( ( ship_id = 'L1' customer = 'DELTA' weight = '20.000' fee = '300.00' ) ( ship_id = 'L2' customer = 'ALPHA' weight = '5.000' fee = '75.00' ) ( ship_id = 'L3' customer = 'EPSILON' weight = '-1.000' fee = '5.00' ) ). go_env->insert_test_data( lt_road ). go_env->insert_test_data( lt_rail ). ENDMETHOD. METHOD road_rows. SELECT SINGLE ship_mode FROM {{p}}i_shipment WHERE ship_id = 'R1' INTO @DATA(lv_ship_mode). cl_abap_unit_assert=>assert_equals( exp = 'ROAD' act = lv_ship_mode ). ENDMETHOD. METHOD rail_rows. 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. METHOD row_count. SELECT COUNT(*) FROM {{p}}i_shipment INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_count ). ENDMETHOD. METHOD road_customer. SELECT SINGLE customer FROM {{p}}i_shipment WHERE ship_id = 'R2' INTO @DATA(lv_customer). cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = lv_customer ). ENDMETHOD. METHOD rail_customer. SELECT SINGLE customer FROM {{p}}i_shipment WHERE ship_id = 'L2' INTO @DATA(lv_customer). cl_abap_unit_assert=>assert_equals( exp = 'ALPHA' act = lv_customer ). ENDMETHOD. METHOD road_weight. SELECT SINGLE weight FROM {{p}}i_shipment WHERE ship_id = 'R1' INTO @DATA(lv_weight). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '10.5' ) act = CONV decfloat34( lv_weight ) ). ENDMETHOD. METHOD rail_cost. SELECT SINGLE cost FROM {{p}}i_shipment WHERE ship_id = 'L1' INTO @DATA(lv_cost). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '300' ) act = CONV decfloat34( lv_cost ) ). ENDMETHOD. METHOD light_shipments_hidden. DATA lv_count TYPE i. SELECT COUNT(*) FROM {{p}}i_shipment WHERE ship_id = 'R3' INTO @lv_count. cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ). SELECT COUNT(*) FROM {{p}}i_shipment WHERE ship_id = 'L3' INTO @lv_count. cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ). ENDMETHOD. ENDCLASS.