CLASS ltc_sauna_pricer DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}if_sauna_price. METHODS setup. METHODS base_hire FOR TESTING. METHODS weekend_hire FOR TESTING. METHODS group_hire FOR TESTING. METHODS weekend_group_hire FOR TESTING. METHODS too_many_days FOR TESTING. METHODS no_guests FOR TESTING. ENDCLASS. CLASS ltc_sauna_pricer IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}sauna_pricer( ). ENDMETHOD. METHOD base_hire. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '360.00' ) act = mo_cut->calculate( iv_days = 3 iv_guests = 4 iv_weekend = abap_false ) ). ENDMETHOD. METHOD weekend_hire. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '300.00' ) act = mo_cut->calculate( iv_days = 2 iv_guests = 4 iv_weekend = abap_true ) ). ENDMETHOD. METHOD group_hire. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '420.00' ) act = mo_cut->calculate( iv_days = 3 iv_guests = 8 iv_weekend = abap_false ) ). ENDMETHOD. METHOD weekend_group_hire. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '300.00' ) act = mo_cut->calculate( iv_days = 2 iv_guests = 8 iv_weekend = abap_true ) ). ENDMETHOD. METHOD too_many_days. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '0.00' ) act = mo_cut->calculate( iv_days = 15 iv_guests = 4 iv_weekend = abap_false ) ). ENDMETHOD. METHOD no_guests. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sauna_price=>ty_amount( '0.00' ) act = mo_cut->calculate( iv_days = 2 iv_guests = 0 iv_weekend = abap_false ) ). ENDMETHOD. ENDCLASS.