@@ -714,6 +714,12 @@ public void createFullyCustomizedLoanWithInterestRateFrequencyType(final DataTab
714714 createFullyCustomizedLoanWithInterestRateFrequency (data .get (1 ));
715715 }
716716
717+ @ When ("Admin creates a fully customized loan with graceOnArrearsAgeing and following data:" )
718+ public void createFullyCustomizedLoanWithGraceOnArrearsAgeing (final DataTable table ) throws IOException {
719+ final List <List <String >> data = table .asLists ();
720+ createFullyCustomizedLoanWithGraceOnArrearsAgeing (data .get (1 ));
721+ }
722+
717723 @ When ("Admin creates a fully customized loan with charges and following data:" )
718724 public void createFullyCustomizedLoanWithLoanCharges (final DataTable table ) throws IOException {
719725 final List <List <String >> data = table .asLists ();
@@ -3758,6 +3764,80 @@ public void createFullyCustomizedLoanWithInterestRateFrequency(final List<String
37583764 eventCheckHelper .createLoanEventCheck (response );
37593765 }
37603766
3767+ public void createFullyCustomizedLoanWithGraceOnArrearsAgeing (final List <String > loanData ) throws IOException {
3768+ final String loanProduct = loanData .get (0 );
3769+ final String submitDate = loanData .get (1 );
3770+ final String principal = loanData .get (2 );
3771+ final BigDecimal interestRate = new BigDecimal (loanData .get (3 ));
3772+ final String interestTypeStr = loanData .get (4 );
3773+ final String interestCalculationPeriodStr = loanData .get (5 );
3774+ final String amortizationTypeStr = loanData .get (6 );
3775+ final Integer loanTermFrequency = Integer .valueOf (loanData .get (7 ));
3776+ final String loanTermFrequencyType = loanData .get (8 );
3777+ final Integer repaymentFrequency = Integer .valueOf (loanData .get (9 ));
3778+ final String repaymentFrequencyTypeStr = loanData .get (10 );
3779+ final Integer numberOfRepayments = Integer .valueOf (loanData .get (11 ));
3780+ final Integer graceOnPrincipalPayment = Integer .valueOf (loanData .get (12 ));
3781+ final Integer graceOnInterestPayment = Integer .valueOf (loanData .get (13 ));
3782+ final Integer graceOnInterestCharged = Integer .valueOf (loanData .get (14 ));
3783+ final String transactionProcessingStrategyCode = loanData .get (15 );
3784+ final String graceOnArrearsAgeingStr = loanData .get (16 );
3785+
3786+ final Response <PostClientsResponse > clientResponse = testContext ().get (TestContextKey .CLIENT_CREATE_RESPONSE );
3787+ final Long clientId = clientResponse .body ().getClientId ();
3788+
3789+ final DefaultLoanProduct product = DefaultLoanProduct .valueOf (loanProduct );
3790+ final Long loanProductId = loanProductResolver .resolve (product );
3791+
3792+ final LoanTermFrequencyType termFrequencyType = LoanTermFrequencyType .valueOf (loanTermFrequencyType );
3793+ final Integer loanTermFrequencyTypeValue = termFrequencyType .getValue ();
3794+
3795+ final RepaymentFrequencyType repaymentFrequencyType = RepaymentFrequencyType .valueOf (repaymentFrequencyTypeStr );
3796+ final Integer repaymentFrequencyTypeValue = repaymentFrequencyType .getValue ();
3797+
3798+ final InterestType interestType = InterestType .valueOf (interestTypeStr );
3799+ final Integer interestTypeValue = interestType .getValue ();
3800+
3801+ final InterestCalculationPeriodTime interestCalculationPeriod = InterestCalculationPeriodTime .valueOf (interestCalculationPeriodStr );
3802+ final Integer interestCalculationPeriodValue = interestCalculationPeriod .getValue ();
3803+
3804+ final AmortizationType amortizationType = AmortizationType .valueOf (amortizationTypeStr );
3805+ final Integer amortizationTypeValue = amortizationType .getValue ();
3806+
3807+ final TransactionProcessingStrategyCode processingStrategyCode = TransactionProcessingStrategyCode
3808+ .valueOf (transactionProcessingStrategyCode );
3809+ final String transactionProcessingStrategyCodeValue = processingStrategyCode .getValue ();
3810+
3811+ Integer graceOnArrearsAgeingValue = Integer .valueOf (graceOnArrearsAgeingStr );
3812+
3813+ final PostLoansRequest loansRequest = loanRequestFactory //
3814+ .defaultLoansRequest (clientId )//
3815+ .productId (loanProductId )//
3816+ .principal (new BigDecimal (principal ))//
3817+ .interestRatePerPeriod (interestRate )//
3818+ .interestType (interestTypeValue )//
3819+ .interestCalculationPeriodType (interestCalculationPeriodValue )//
3820+ .amortizationType (amortizationTypeValue )//
3821+ .loanTermFrequency (loanTermFrequency )//
3822+ .loanTermFrequencyType (loanTermFrequencyTypeValue )//
3823+ .numberOfRepayments (numberOfRepayments )//
3824+ .repaymentEvery (repaymentFrequency )//
3825+ .repaymentFrequencyType (repaymentFrequencyTypeValue )//
3826+ .submittedOnDate (submitDate )//
3827+ .expectedDisbursementDate (submitDate )//
3828+ .graceOnPrincipalPayment (graceOnPrincipalPayment )//
3829+ .graceOnInterestPayment (graceOnInterestPayment )//
3830+ .graceOnInterestPayment (graceOnInterestCharged )//
3831+ .transactionProcessingStrategyCode (transactionProcessingStrategyCodeValue )//
3832+ .graceOnArrearsAgeing (graceOnArrearsAgeingValue );//
3833+
3834+ final Response <PostLoansResponse > response = loansApi .calculateLoanScheduleOrSubmitLoanApplication (loansRequest , "" ).execute ();
3835+ testContext ().set (TestContextKey .LOAN_CREATE_RESPONSE , response );
3836+ ErrorHelper .checkSuccessfulApiCall (response );
3837+
3838+ eventCheckHelper .createLoanEventCheck (response );
3839+ }
3840+
37613841 public void createFullyCustomizedLoanWithCharges (final List <String > loanData ) throws IOException {
37623842 final String loanProduct = loanData .get (0 );
37633843 final String submitDate = loanData .get (1 );
0 commit comments