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.