CLASS {{p}}green_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 junior_weekday_fee FOR TESTING. METHODS junior_weekend_fee FOR TESTING. ENDCLASS. CLASS {{p}}green_test IMPLEMENTATION. METHOD class_setup. go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_GREEN_FEE' ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. DATA lt_mem TYPE STANDARD TABLE OF {{p}}member WITH EMPTY KEY. DATA lt_tee TYPE STANDARD TABLE OF {{p}}tee WITH EMPTY KEY. go_env->clear_doubles( ). lt_mem = VALUE #( ( member_id = 'M1' member_kind = 'J' member_name = 'Junior' ) ). lt_tee = VALUE #( ( tee_id = 'T01' member_id = 'M1' day_kind = 'W' player_count = 1 ) ( tee_id = 'T02' member_id = 'M1' day_kind = 'E' player_count = 2 ) ). go_env->insert_test_data( lt_mem ). go_env->insert_test_data( lt_tee ). ENDMETHOD. METHOD junior_weekday_fee. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T01' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '8.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD junior_weekend_fee. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T02' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '24.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. ENDCLASS.