CLASS {{p}}t30_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 totals_of_repeat_guest FOR TESTING. ENDCLASS. CLASS {{p}}t30_test IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_GUEST_STAY' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_guest TYPE STANDARD TABLE OF {{p}}guest WITH EMPTY KEY. DATA lt_stay TYPE STANDARD TABLE OF {{p}}stay WITH EMPTY KEY. go_env->clear_doubles( ). lt_guest = VALUE #( ( guest_id = 'A' guest_name = 'ANNA' ) ( guest_id = 'B' guest_name = 'BEN' ) ). lt_stay = VALUE #( ( stay_id = '1' guest_id = 'A' hotel = 'H1' nights = 2 rate = '10.00' ) ( stay_id = '2' guest_id = 'A' hotel = 'H2' nights = 3 rate = '20.00' ) ( stay_id = '3' guest_id = 'B' hotel = 'H1' nights = 1 rate = '5.00' ) ). go_env->insert_test_data( lt_guest ). go_env->insert_test_data( lt_stay ). ENDMETHOD. METHOD totals_of_repeat_guest. SELECT SINGLE stay_count, night_count, total_charge FROM {{p}}i_guest_stay WHERE guest_id = 'A' INTO @DATA(ls_total). cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_total-stay_count ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 5 ) act = CONV decfloat34( ls_total-night_count ) ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( 80 ) act = CONV decfloat34( ls_total-total_charge ) ) . SELECT COUNT(*) FROM {{p}}i_guest_stay INTO @DATA(lv_rows). cl_abap_unit_assert=>assert_equals( exp = 1 act = lv_rows ). ENDMETHOD. ENDCLASS.