CLASS ltc_pool_ticket DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}pool_ticket. METHODS setup. METHODS valid_booking FOR TESTING. METHODS unknown_zone FOR TESTING. METHODS unknown_rate FOR TESTING. METHODS unknown_day FOR TESTING. METHODS price_indoor_adult FOR TESTING. METHODS price_weekend_surcharge FOR TESTING. METHODS price_member_discount FOR TESTING. METHODS price_invalid_booking FOR TESTING. ENDCLASS. CLASS ltc_pool_ticket IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}pool_ticket( ). ENDMETHOD. METHOD valid_booking. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-ok act = mo_cut->check_booking( iv_zone = 'AL' iv_rate = 'S' iv_day = 'SU' ) ). ENDMETHOD. METHOD unknown_zone. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-zone act = mo_cut->check_booking( iv_zone = 'ZZ' iv_rate = 'A' iv_day = 'MO' ) ). ENDMETHOD. METHOD unknown_rate. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-rate act = mo_cut->check_booking( iv_zone = 'OU' iv_rate = 'B' iv_day = 'MO' ) ). ENDMETHOD. METHOD unknown_day. cl_abap_unit_assert=>assert_equals( exp = {{p}}pool_ticket=>c_status-day act = mo_cut->check_booking( iv_zone = 'OU' iv_rate = 'C' iv_day = 'XX' ) ). 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 = 'TU' iv_member = {{p}}pool_ticket=>c_flag-guest ) ). ENDMETHOD. METHOD price_weekend_surcharge. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '12.50' ) act = mo_cut->ticket_price( iv_zone = 'IN' iv_rate = 'A' iv_day = 'SU' iv_member = {{p}}pool_ticket=>c_flag-guest ) ). ENDMETHOD. METHOD price_member_discount. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}pool_ticket=>ty_amount( '6.00' ) act = mo_cut->ticket_price( iv_zone = 'OU' iv_rate = 'A' iv_day = 'FR' iv_member = {{p}}pool_ticket=>c_flag-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 = 'IN' iv_rate = 'A' iv_day = 'XX' iv_member = {{p}}pool_ticket=>c_flag-member ) ). ENDMETHOD. ENDCLASS.