CLASS {{p}}green_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 junior_weekday FOR TESTING. METHODS junior_weekend FOR TESTING. METHODS junior_unknown_day FOR TESTING. METHODS senior_weekday FOR TESTING. METHODS senior_weekend FOR TESTING. METHODS senior_holiday FOR TESTING. METHODS adult_weekday FOR TESTING. METHODS adult_weekend FOR TESTING. METHODS adult_holiday FOR TESTING. METHODS unknown_member FOR TESTING. METHODS tee_without_member FOR TESTING. ENDCLASS. CLASS {{p}}green_hidden 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' ) ( member_id = 'M2' member_kind = 'S' member_name = 'Senior' ) ( member_id = 'M3' member_kind = 'A' member_name = 'Adult' ) ( member_id = 'M4' member_kind = 'X' member_name = 'Unknown' ) ). 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 ) ( tee_id = 'T03' member_id = 'M1' day_kind = 'Z' player_count = 1 ) ( tee_id = 'T04' member_id = 'M2' day_kind = 'W' player_count = 1 ) ( tee_id = 'T05' member_id = 'M2' day_kind = 'E' player_count = 3 ) ( tee_id = 'T06' member_id = 'M2' day_kind = 'H' player_count = 1 ) ( tee_id = 'T07' member_id = 'M3' day_kind = 'W' player_count = 1 ) ( tee_id = 'T08' member_id = 'M3' day_kind = 'E' player_count = 1 ) ( tee_id = 'T09' member_id = 'M3' day_kind = 'H' player_count = 2 ) ( tee_id = 'T10' member_id = 'M4' day_kind = 'W' player_count = 1 ) ( tee_id = 'T11' member_id = 'M9' day_kind = 'W' player_count = 1 ) ). go_env->insert_test_data( lt_mem ). go_env->insert_test_data( lt_tee ). ENDMETHOD. METHOD junior_weekday. 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. 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. METHOD junior_unknown_day. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T03' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '12.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD senior_weekday. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T04' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '20.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD senior_weekend. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T05' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '90.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD senior_holiday. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T06' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD adult_weekday. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T07' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD adult_weekend. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T08' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '55.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD adult_holiday. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T09' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '120.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD unknown_member. SELECT SINGLE green_fee FROM {{p}}i_green_fee WHERE tee_id = 'T10' INTO @DATA(lv_fee). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '35.00' ) act = CONV decfloat34( lv_fee ) ). ENDMETHOD. METHOD tee_without_member. SELECT COUNT(*) FROM {{p}}i_green_fee INTO @DATA(lv_count). cl_abap_unit_assert=>assert_equals( exp = 10 act = lv_count ). ENDMETHOD. ENDCLASS.