CLASS ltc_chimney_checker DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}if_sweep_check. METHODS setup. METHODS order_is_ok FOR TESTING. METHODS no_flues FOR TESTING. METHODS too_many_flues FOR TESTING. METHODS unknown_kind FOR TESTING. METHODS blocked_order FOR TESTING. METHODS stale_sweep FOR TESTING. METHODS fee_by_kind FOR TESTING. METHODS fee_with_discount FOR TESTING. METHODS fee_without_flues FOR TESTING. ENDCLASS. CLASS ltc_chimney_checker IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}chimney_checker( ). ENDMETHOD. METHOD order_is_ok. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-ok act = mo_cut->check_order( iv_flues = 2 iv_kind = {{p}}if_sweep_check=>c_kind-open iv_last_sweep = 2024 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD no_flues. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-no_flues act = mo_cut->check_order( iv_flues = 0 iv_kind = {{p}}if_sweep_check=>c_kind-closed iv_last_sweep = 2025 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD too_many_flues. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-too_many act = mo_cut->check_order( iv_flues = 13 iv_kind = {{p}}if_sweep_check=>c_kind-open iv_last_sweep = 2025 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD unknown_kind. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-bad_kind act = mo_cut->check_order( iv_flues = 2 iv_kind = 'GAS' iv_last_sweep = 2025 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD blocked_order. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-blocked act = mo_cut->check_order( iv_flues = 2 iv_kind = {{p}}if_sweep_check=>c_kind-open iv_last_sweep = 2024 iv_year = 2025 iv_blocked = abap_true ) ). ENDMETHOD. METHOD stale_sweep. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-old_sweep act = mo_cut->check_order( iv_flues = 2 iv_kind = {{p}}if_sweep_check=>c_kind-indust iv_last_sweep = 2022 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD fee_by_kind. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '240.00' ) act = mo_cut->fee( iv_flues = 4 iv_kind = {{p}}if_sweep_check=>c_kind-open ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '180.00' ) act = mo_cut->fee( iv_flues = 4 iv_kind = {{p}}if_sweep_check=>c_kind-closed ) ). ENDMETHOD. METHOD fee_with_discount. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '243.00' ) act = mo_cut->fee( iv_flues = 6 iv_kind = {{p}}if_sweep_check=>c_kind-closed ) ). ENDMETHOD. METHOD fee_without_flues. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '0.00' ) act = mo_cut->fee( iv_flues = 0 iv_kind = {{p}}if_sweep_check=>c_kind-open ) ). ENDMETHOD. ENDCLASS.