74 lines
2.8 KiB
ABAP
74 lines
2.8 KiB
ABAP
CLASS ltc_med_copay DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
DATA mo_cut TYPE REF TO {{p}}if_med_copay.
|
|
METHODS setup.
|
|
METHODS standard_pays_minimum FOR TESTING.
|
|
METHODS standard_pays_percentage FOR TESTING.
|
|
METHODS chronic_pays_percentage FOR TESTING.
|
|
METHODS exempt_pays_nothing FOR TESTING.
|
|
METHODS copay_is_capped_at_total FOR TESTING.
|
|
METHODS zero_price_is_rejected FOR TESTING.
|
|
METHODS zero_quantity_is_rejected FOR TESTING.
|
|
METHODS unknown_tier_is_rejected FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_med_copay IMPLEMENTATION.
|
|
METHOD setup.
|
|
mo_cut = NEW {{p}}med_copay( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD standard_pays_minimum.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '10.00' iv_quantity = 1 iv_tier = 'S' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_med_copay=>ty_amount( '5.00' )
|
|
act = ls_result-copay ).
|
|
ENDMETHOD.
|
|
|
|
METHOD standard_pays_percentage.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '100.00' iv_quantity = 1 iv_tier = 'S' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_med_copay=>ty_amount( '30.00' )
|
|
act = ls_result-copay ).
|
|
ENDMETHOD.
|
|
|
|
METHOD chronic_pays_percentage.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '66.67' iv_quantity = 1 iv_tier = 'C' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_med_copay=>ty_amount( '6.67' )
|
|
act = ls_result-copay ).
|
|
ENDMETHOD.
|
|
|
|
METHOD exempt_pays_nothing.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '100.00' iv_quantity = 3 iv_tier = 'E' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_med_copay=>ty_amount( '0.00' )
|
|
act = ls_result-copay ).
|
|
ENDMETHOD.
|
|
|
|
METHOD copay_is_capped_at_total.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '2.00' iv_quantity = 1 iv_tier = 'S' ).
|
|
cl_abap_unit_assert=>assert_equals(
|
|
exp = CONV {{p}}if_med_copay=>ty_amount( '2.00' )
|
|
act = ls_result-copay ).
|
|
ENDMETHOD.
|
|
|
|
METHOD zero_price_is_rejected.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '0.00' iv_quantity = 2 iv_tier = 'S' ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_med_copay=>c_reason-price
|
|
act = ls_result-reason ).
|
|
ENDMETHOD.
|
|
|
|
METHOD zero_quantity_is_rejected.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '10.00' iv_quantity = 0 iv_tier = 'C' ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_med_copay=>c_reason-quantity
|
|
act = ls_result-reason ).
|
|
ENDMETHOD.
|
|
|
|
METHOD unknown_tier_is_rejected.
|
|
DATA(ls_result) = mo_cut->calculate( iv_price = '10.00' iv_quantity = 1 iv_tier = 'Z' ).
|
|
cl_abap_unit_assert=>assert_equals( exp = {{p}}if_med_copay=>c_reason-tier
|
|
act = ls_result-reason ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|