Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
91 lines
2.6 KiB
ABAP
91 lines
2.6 KiB
ABAP
CLASS ltc_overdraft_calc DEFINITION FINAL FOR TESTING
|
|
DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
CONSTANTS c_zero TYPE {{p}}if_overdraft=>ty_amount VALUE '0.00'.
|
|
DATA mo_cut TYPE REF TO {{p}}if_overdraft.
|
|
METHODS setup.
|
|
METHODS zero_amount FOR TESTING.
|
|
METHODS grace_days FOR TESTING.
|
|
METHODS private_tier FOR TESTING.
|
|
METHODS business_rate FOR TESTING.
|
|
METHODS minimum_charge FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS ltc_overdraft_calc IMPLEMENTATION.
|
|
METHOD setup.
|
|
CREATE OBJECT mo_cut TYPE {{p}}overdraft_calc.
|
|
ENDMETHOD.
|
|
|
|
METHOD zero_amount.
|
|
DATA lv_act TYPE {{p}}if_overdraft=>ty_amount.
|
|
|
|
CALL METHOD mo_cut->calculate
|
|
EXPORTING
|
|
iv_amount = '0.00'
|
|
iv_days = 30
|
|
iv_segment = {{p}}if_overdraft=>c_segment_private
|
|
RECEIVING
|
|
rv_interest = lv_act.
|
|
cl_abap_unit_assert=>assert_equals( exp = c_zero act = lv_act ).
|
|
ENDMETHOD.
|
|
|
|
METHOD grace_days.
|
|
DATA lv_act TYPE {{p}}if_overdraft=>ty_amount.
|
|
|
|
CALL METHOD mo_cut->calculate
|
|
EXPORTING
|
|
iv_amount = '1000.00'
|
|
iv_days = 3
|
|
iv_segment = {{p}}if_overdraft=>c_segment_private
|
|
RECEIVING
|
|
rv_interest = lv_act.
|
|
cl_abap_unit_assert=>assert_equals( exp = c_zero act = lv_act ).
|
|
ENDMETHOD.
|
|
|
|
METHOD private_tier.
|
|
DATA lv_act TYPE {{p}}if_overdraft=>ty_amount.
|
|
DATA lv_exp TYPE {{p}}if_overdraft=>ty_amount.
|
|
|
|
lv_exp = '10.00'.
|
|
CALL METHOD mo_cut->calculate
|
|
EXPORTING
|
|
iv_amount = '1000.00'
|
|
iv_days = 33
|
|
iv_segment = {{p}}if_overdraft=>c_segment_private
|
|
RECEIVING
|
|
rv_interest = lv_act.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
|
ENDMETHOD.
|
|
|
|
METHOD business_rate.
|
|
DATA lv_act TYPE {{p}}if_overdraft=>ty_amount.
|
|
DATA lv_exp TYPE {{p}}if_overdraft=>ty_amount.
|
|
|
|
lv_exp = '13.33'.
|
|
CALL METHOD mo_cut->calculate
|
|
EXPORTING
|
|
iv_amount = '2000.00'
|
|
iv_days = 33
|
|
iv_segment = {{p}}if_overdraft=>c_segment_business
|
|
RECEIVING
|
|
rv_interest = lv_act.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_charge.
|
|
DATA lv_act TYPE {{p}}if_overdraft=>ty_amount.
|
|
DATA lv_exp TYPE {{p}}if_overdraft=>ty_amount.
|
|
|
|
lv_exp = '5.00'.
|
|
CALL METHOD mo_cut->calculate
|
|
EXPORTING
|
|
iv_amount = '500.00'
|
|
iv_days = 10
|
|
iv_segment = {{p}}if_overdraft=>c_segment_private
|
|
RECEIVING
|
|
rv_interest = lv_act.
|
|
cl_abap_unit_assert=>assert_equals( exp = lv_exp act = lv_act ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|