CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PUBLIC SECTION. INTERFACES {{p}}if_sweep_check. PRIVATE SECTION. DATA mo_cut TYPE REF TO {{p}}if_sweep_check. METHODS setup. METHODS ok_order FOR TESTING. METHODS no_flues FOR TESTING. METHODS too_many_flues FOR TESTING. METHODS bad_kind FOR TESTING. METHODS blocked_order FOR TESTING. METHODS old_sweep FOR TESTING. METHODS boundary_ok FOR TESTING. METHODS reason_priority FOR TESTING. METHODS fee_by_kind FOR TESTING. METHODS fee_discount FOR TESTING. METHODS fee_edge FOR TESTING. METHODS contract_shape FOR TESTING. ENDCLASS. CLASS {{p}}t02_hidden IMPLEMENTATION. METHOD {{p}}if_sweep_check~check_order. rv_reason = {{p}}if_sweep_check=>c_reason-ok. ENDMETHOD. METHOD {{p}}if_sweep_check~fee. rv_fee = 0. ENDMETHOD. METHOD setup. mo_cut = NEW {{p}}chimney_checker( ). ENDMETHOD. METHOD ok_order. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-ok act = mo_cut->check_order( iv_flues = 3 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 ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-no_flues act = mo_cut->check_order( iv_flues = -2 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 bad_kind. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-bad_kind act = mo_cut->check_order( iv_flues = 3 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 = 3 iv_kind = {{p}}if_sweep_check=>c_kind-indust iv_last_sweep = 2024 iv_year = 2025 iv_blocked = abap_true ) ). ENDMETHOD. METHOD old_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-open iv_last_sweep = 2022 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD boundary_ok. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-ok act = mo_cut->check_order( iv_flues = 12 iv_kind = {{p}}if_sweep_check=>c_kind-closed iv_last_sweep = 2023 iv_year = 2025 iv_blocked = abap_false ) ). ENDMETHOD. METHOD reason_priority. 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 = 'GAS' iv_last_sweep = 2000 iv_year = 2025 iv_blocked = abap_true ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-too_many act = mo_cut->check_order( iv_flues = 20 iv_kind = 'GAS' iv_last_sweep = 2000 iv_year = 2025 iv_blocked = abap_true ) ). cl_abap_unit_assert=>assert_equals( exp = {{p}}if_sweep_check=>c_reason-bad_kind act = mo_cut->check_order( iv_flues = 3 iv_kind = 'GAS' iv_last_sweep = 2000 iv_year = 2025 iv_blocked = abap_true ) ). 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 ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '240.00' ) act = mo_cut->fee( iv_flues = 2 iv_kind = {{p}}if_sweep_check=>c_kind-indust ) ). ENDMETHOD. METHOD fee_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 ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '270.00' ) act = mo_cut->fee( iv_flues = 5 iv_kind = {{p}}if_sweep_check=>c_kind-open ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '540.00' ) act = mo_cut->fee( iv_flues = 5 iv_kind = {{p}}if_sweep_check=>c_kind-indust ) ). ENDMETHOD. METHOD fee_edge. 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 ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '0.00' ) act = mo_cut->fee( iv_flues = -2 iv_kind = {{p}}if_sweep_check=>c_kind-open ) ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '0.00' ) act = mo_cut->fee( iv_flues = 3 iv_kind = 'GAS' ) ). ENDMETHOD. METHOD contract_shape. cl_abap_unit_assert=>assert_equals( exp = 12 act = {{p}}if_sweep_check=>c_max_flues ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'OK' ) act = {{p}}if_sweep_check=>c_reason-ok ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'NO_FLUES' ) act = {{p}}if_sweep_check=>c_reason-no_flues ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'TOO_MANY' ) act = {{p}}if_sweep_check=>c_reason-too_many ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'BAD_KIND' ) act = {{p}}if_sweep_check=>c_reason-bad_kind ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'BLOCKED' ) act = {{p}}if_sweep_check=>c_reason-blocked ). cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_reason( 'OLD_SWEEP' ) act = {{p}}if_sweep_check=>c_reason-old_sweep ). cl_abap_unit_assert=>assert_equals( exp = 'OPEN' act = {{p}}if_sweep_check=>c_kind-open ). cl_abap_unit_assert=>assert_equals( exp = 'CLOS' act = {{p}}if_sweep_check=>c_kind-closed ). cl_abap_unit_assert=>assert_equals( exp = 'INDU' act = {{p}}if_sweep_check=>c_kind-indust ). DATA lv_reason TYPE {{p}}if_sweep_check=>ty_reason. lv_reason = 'ABCDEFGHIJK'. cl_abap_unit_assert=>assert_equals( exp = 'ABCDEFGHIJ' act = lv_reason ). DATA lv_kind TYPE {{p}}if_sweep_check=>ty_flue_kind. lv_kind = 'ABCDE'. cl_abap_unit_assert=>assert_equals( exp = 'ABCD' act = lv_kind ). DATA lv_amount TYPE {{p}}if_sweep_check=>ty_amount. lv_amount = '123.45'. cl_abap_unit_assert=>assert_equals( exp = CONV {{p}}if_sweep_check=>ty_amount( '123.45' ) act = lv_amount ). DATA lo_self TYPE REF TO {{p}}if_sweep_check. lo_self = NEW {{p}}t02_hidden( ). cl_abap_unit_assert=>assert_bound( lo_self ). ENDMETHOD. ENDCLASS.