CLASS {{p}}t31_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}pool_ticket. DATA mv_member TYPE {{p}}pool_ticket=>ty_flag. DATA mv_guest TYPE {{p}}pool_ticket=>ty_flag. METHODS setup. METHODS valid_booking_is_ok FOR TESTING. METHODS unknown_zone FOR TESTING. METHODS unknown_rate FOR TESTING. METHODS unknown_day FOR TESTING. METHODS zone_checked_first FOR TESTING. METHODS lower_case_zone FOR TESTING. METHODS price_indoor_adult FOR TESTING. METHODS price_outdoor_child_weekend FOR TESTING. METHODS price_sauna_senior_member FOR TESTING. METHODS price_all_areas_weekend_member FOR TESTING. METHODS price_member_weekday_child FOR TESTING. METHODS price_invalid_booking FOR TESTING. ENDCLASS. CLASS {{p}}t31_hidden IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}pool_ticket( ). mv_member = {{p}}pool_ticket=>c_flag-member. mv_guest = {{p}}pool_ticket=>c_flag-guest. ENDMETHOD. METHOD valid_booking_is_ok. DATA lv_status TYPE {{p}}pool_ticket=>ty_status. lv_status = mo_cut->check_booking( iv_zone = 'IN' iv_rate = 'A' iv_day = 'MO' ). cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-ok act = lv_status ). ENDMETHOD. METHOD unknown_zone. DATA(lv_zone) = CONV {{p}}pool_ticket=>ty_zone( 'XX' ). cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-zone act = mo_cut->check_booking( iv_zone = lv_zone iv_rate = 'A' iv_day = 'MO' ) ). ENDMETHOD. METHOD unknown_rate. DATA(lv_rate) = CONV {{p}}pool_ticket=>ty_rate( 'X' ). cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-rate act = mo_cut->check_booking( iv_zone = 'IN' iv_rate = lv_rate iv_day = 'XX' ) ). ENDMETHOD. METHOD unknown_day. DATA(lv_day) = CONV {{p}}pool_ticket=>ty_day( 'XX' ). cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-day act = mo_cut->check_booking( iv_zone = 'IN' iv_rate = 'A' iv_day = lv_day ) ). ENDMETHOD. METHOD zone_checked_first. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-zone act = mo_cut->check_booking( iv_zone = 'XX' iv_rate = 'X' iv_day = 'XX' ) ). ENDMETHOD. METHOD lower_case_zone. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-zone act = mo_cut->check_booking( iv_zone = 'in' iv_rate = 'A' iv_day = 'MO' ) ). ENDMETHOD. METHOD price_indoor_adult. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '10.00' ) act = mo_cut->ticket_price( iv_zone = 'IN' iv_rate = 'A' iv_day = 'MO' iv_member = mv_guest ) ). ENDMETHOD. METHOD price_outdoor_child_weekend. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '6.25' ) act = mo_cut->ticket_price( iv_zone = 'OU' iv_rate = 'C' iv_day = 'SA' iv_member = mv_guest ) ). ENDMETHOD. METHOD price_sauna_senior_member. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '9.00' ) act = mo_cut->ticket_price( iv_zone = 'SA' iv_rate = 'S' iv_day = 'MO' iv_member = mv_member ) ). ENDMETHOD. METHOD price_all_areas_weekend_member. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '18.00' ) act = mo_cut->ticket_price( iv_zone = 'AL' iv_rate = 'A' iv_day = 'SU' iv_member = mv_member ) ). ENDMETHOD. METHOD price_member_weekday_child. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '4.00' ) act = mo_cut->ticket_price( iv_zone = 'IN' iv_rate = 'C' iv_day = 'WE' iv_member = mv_member ) ). ENDMETHOD. METHOD price_invalid_booking. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '0.00' ) act = mo_cut->ticket_price( iv_zone = 'XX' iv_rate = 'A' iv_day = 'MO' iv_member = mv_guest ) ). ENDMETHOD. ENDCLASS.