197 lines
9.0 KiB
ABAP
197 lines
9.0 KiB
ABAP
CLASS {{p}}t02_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}childcare_pricer.
|
|
|
|
METHODS setup.
|
|
METHODS assert_fee
|
|
IMPORTING iv_expected TYPE {{p}}childcare_pricer=>ty_amount
|
|
iv_actual TYPE {{p}}childcare_pricer=>ty_amount.
|
|
|
|
METHODS baby_full_day_fee FOR TESTING.
|
|
METHODS toddler_half_day_fee FOR TESTING.
|
|
METHODS preschool_full_fee FOR TESTING.
|
|
METHODS band_boundaries FOR TESTING.
|
|
METHODS rounding_up FOR TESTING.
|
|
METHODS rounding_down FOR TESTING.
|
|
METHODS sibling_discount FOR TESTING.
|
|
METHODS fee_is_capped FOR TESTING.
|
|
METHODS cap_after_discount FOR TESTING.
|
|
METHODS sibling_below_cap FOR TESTING.
|
|
METHODS age_out_of_range FOR TESTING.
|
|
METHODS days_out_of_range FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}t02_hidden IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}childcare_pricer( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD assert_fee.
|
|
cl_abap_unit_assert=>assert_equals( exp = iv_expected act = iv_actual ).
|
|
ENDMETHOD.
|
|
|
|
METHOD baby_full_day_fee.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 6
|
|
iv_days = 3
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-ok
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '808.73' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD toddler_half_day_fee.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 24
|
|
iv_days = 3
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-ok
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '430.45' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD preschool_full_fee.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 48
|
|
iv_days = 5
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-ok
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '1000.04' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD band_boundaries.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 3
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '165.22' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 11
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '165.22' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 12
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '143.48' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 35
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '143.48' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 36
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '121.74' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 60
|
|
iv_days = 1
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '121.74' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD rounding_up.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 48
|
|
iv_days = 1
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '200.01' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD rounding_down.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 6
|
|
iv_days = 2
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '539.15' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD sibling_discount.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 24
|
|
iv_days = 5
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_true ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-ok
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '645.68' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD fee_is_capped.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 6
|
|
iv_days = 5
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
assert_fee( iv_expected = '1050.00' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD cap_after_discount.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 24
|
|
iv_days = 5
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_true ).
|
|
assert_fee( iv_expected = '1050.00' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD sibling_below_cap.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 6
|
|
iv_days = 4
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_true ).
|
|
assert_fee( iv_expected = '970.47' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD age_out_of_range.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 2
|
|
iv_days = 3
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-age
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '0.00' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 61
|
|
iv_days = 3
|
|
iv_full_day = abap_true
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-age
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '0.00' iv_actual = ls_result-fee ).
|
|
ENDMETHOD.
|
|
|
|
METHOD days_out_of_range.
|
|
DATA(ls_result) = mo_cut->calculate( iv_age_months = 24
|
|
iv_days = 0
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-days
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '0.00' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 24
|
|
iv_days = 6
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-days
|
|
act = ls_result-reason ).
|
|
assert_fee( iv_expected = '0.00' iv_actual = ls_result-fee ).
|
|
|
|
ls_result = mo_cut->calculate( iv_age_months = 2
|
|
iv_days = 9
|
|
iv_full_day = abap_false
|
|
iv_sibling = abap_false ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}childcare_pricer=>c_reason-age
|
|
act = ls_result-reason ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|