You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by "ruchiD (via GitHub)" <gi...@apache.org> on 2023/09/21 11:06:01 UTC
[GitHub] [fineract] ruchiD commented on a diff in pull request #3465: FINERACT-1971: Align dates and dateformat in tests
ruchiD commented on code in PR #3465:
URL: https://github.com/apache/fineract/pull/3465#discussion_r1332883293
##########
integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java:
##########
@@ -2541,204 +2541,208 @@ public void loanWithFlatChargesAndPeriodicAccrualAccountingEnabled() throws Inte
*/
@Test
public void loanWithChargesOfTypeAmountPercentageAndPeriodicAccrualAccountingEnabled() throws InterruptedException {
+ try {
+ final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
+ ClientHelper.verifyClientCreatedOnServer(REQUEST_SPEC, RESPONSE_SPEC, clientID);
- final Integer clientID = ClientHelper.createClient(REQUEST_SPEC, RESPONSE_SPEC);
- ClientHelper.verifyClientCreatedOnServer(REQUEST_SPEC, RESPONSE_SPEC, clientID);
-
- // Add charges with payment mode regular
- List<HashMap> charges = new ArrayList<>();
- Integer percentageDisbursementCharge = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
- ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
- addCharges(charges, percentageDisbursementCharge, "1", null);
-
- Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
- ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
- addCharges(charges, percentageSpecifiedDueDateCharge, "1", "29 September 2011");
-
- Integer percentageInstallmentFee = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
- ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
- addCharges(charges, percentageInstallmentFee, "1", "29 September 2011");
-
- final Account assetAccount = ACCOUNT_HELPER.createAssetAccount();
- final Account incomeAccount = ACCOUNT_HELPER.createIncomeAccount();
- final Account expenseAccount = ACCOUNT_HELPER.createExpenseAccount();
- final Account overpaymentAccount = ACCOUNT_HELPER.createLiabilityAccount();
-
- List<HashMap> collaterals = new ArrayList<>();
+ // Add charges with payment mode regular
+ List<HashMap> charges = new ArrayList<>();
+ Integer percentageDisbursementCharge = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
+ ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
+ addCharges(charges, percentageDisbursementCharge, "1", null);
- final Integer collateralId = CollateralManagementHelper.createCollateralProduct(REQUEST_SPEC, RESPONSE_SPEC);
+ Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
+ ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+ addCharges(charges, percentageSpecifiedDueDateCharge, "1", "29 September 2011");
- final Integer clientCollateralId = CollateralManagementHelper.createClientCollateral(REQUEST_SPEC, RESPONSE_SPEC,
- String.valueOf(clientID), collateralId);
- addCollaterals(collaterals, clientCollateralId, BigDecimal.valueOf(1));
+ Integer percentageInstallmentFee = ChargesHelper.createCharges(REQUEST_SPEC, RESPONSE_SPEC,
+ ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+ addCharges(charges, percentageInstallmentFee, "1", "29 September 2011");
- final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount, expenseAccount,
- overpaymentAccount);
- final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00", collaterals);
- Assertions.assertNotNull(loanID);
- HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(REQUEST_SPEC, RESPONSE_SPEC, loanID);
- LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+ final Account assetAccount = ACCOUNT_HELPER.createAssetAccount();
+ final Account incomeAccount = ACCOUNT_HELPER.createIncomeAccount();
+ final Account expenseAccount = ACCOUNT_HELPER.createExpenseAccount();
+ final Account overpaymentAccount = ACCOUNT_HELPER.createLiabilityAccount();
- ArrayList<HashMap> loanSchedule = LOAN_TRANSACTION_HELPER.getLoanRepaymentSchedule(REQUEST_SPEC, RESPONSE_SPEC, loanID);
- verifyLoanRepaymentSchedule(loanSchedule);
+ List<HashMap> collaterals = new ArrayList<>();
- List<HashMap> loanCharges = LOAN_TRANSACTION_HELPER.getLoanCharges(loanID);
- validateCharge(percentageDisbursementCharge, loanCharges, "1", "120.00", "0.0", "0.0");
- validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "120.00", "0.0", "0.0");
- validateCharge(percentageInstallmentFee, loanCharges, "1", "120.00", "0.0", "0.0");
+ final Integer collateralId = CollateralManagementHelper.createCollateralProduct(REQUEST_SPEC, RESPONSE_SPEC);
- // check for disbursement fee
- HashMap disbursementDetail = loanSchedule.get(0);
- validateNumberForEqual("120.00", String.valueOf(disbursementDetail.get("feeChargesDue")));
+ final Integer clientCollateralId = CollateralManagementHelper.createClientCollateral(REQUEST_SPEC, RESPONSE_SPEC,
+ String.valueOf(clientID), collateralId);
+ addCollaterals(collaterals, clientCollateralId, BigDecimal.valueOf(1));
- // check for charge at specified date and installment fee
- HashMap firstInstallment = loanSchedule.get(1);
- validateNumberForEqual("149.11", String.valueOf(firstInstallment.get("feeChargesDue")));
+ final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount, expenseAccount,
+ overpaymentAccount);
+ final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00", collaterals);
+ Assertions.assertNotNull(loanID);
+ HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(REQUEST_SPEC, RESPONSE_SPEC, loanID);
+ LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
- // check for installment fee
- HashMap secondInstallment = loanSchedule.get(2);
- validateNumberForEqual("29.70", String.valueOf(secondInstallment.get("feeChargesDue")));
+ ArrayList<HashMap> loanSchedule = LOAN_TRANSACTION_HELPER.getLoanRepaymentSchedule(REQUEST_SPEC, RESPONSE_SPEC, loanID);
+ verifyLoanRepaymentSchedule(loanSchedule);
- LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
- loanStatusHashMap = LOAN_TRANSACTION_HELPER.approveLoan("20 September 2011", loanID);
- LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
- LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
+ List<HashMap> loanCharges = LOAN_TRANSACTION_HELPER.getLoanCharges(loanID);
+ validateCharge(percentageDisbursementCharge, loanCharges, "1", "120.00", "0.0", "0.0");
+ validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "120.00", "0.0", "0.0");
+ validateCharge(percentageInstallmentFee, loanCharges, "1", "120.00", "0.0", "0.0");
- LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
- GlobalConfigurationHelper.manageConfigurations(REQUEST_SPEC, RESPONSE_SPEC,
- GlobalConfigurationHelper.ENABLE_AUTOGENERATED_EXTERNAL_ID, true);
- String loanDetails = LOAN_TRANSACTION_HELPER.getLoanDetails(REQUEST_SPEC, RESPONSE_SPEC, loanID);
- loanStatusHashMap = LOAN_TRANSACTION_HELPER.disburseLoanWithNetDisbursalAmount("20 September 2011", loanID,
- JsonPath.from(loanDetails).get("netDisbursalAmount").toString());
- LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+ // check for disbursement fee
+ HashMap disbursementDetail = loanSchedule.get(0);
+ validateNumberForEqual("120.00", String.valueOf(disbursementDetail.get("feeChargesDue")));
- ArrayList<HashMap> loanTransactionDetails = LOAN_TRANSACTION_HELPER.getLoanTransactionDetails(REQUEST_SPEC, RESPONSE_SPEC, loanID);
- validateAccrualTransactionForDisbursementCharge(loanTransactionDetails);
- final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.parseFloat("120.00"), JournalEntry.TransactionType.DEBIT),
- new JournalEntry(Float.parseFloat("12000.00"), JournalEntry.TransactionType.CREDIT),
- new JournalEntry(Float.parseFloat("12000.00"), JournalEntry.TransactionType.DEBIT) };
- JOURNAL_ENTRY_HELPER.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
- JOURNAL_ENTRY_HELPER.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
- new JournalEntry(Float.parseFloat("120.00"), JournalEntry.TransactionType.CREDIT));
- loanCharges.clear();
- loanCharges = LOAN_TRANSACTION_HELPER.getLoanCharges(loanID);
- validateCharge(percentageDisbursementCharge, loanCharges, "1", "0.0", "120.00", "0.0");
+ // check for charge at specified date and installment fee
+ HashMap firstInstallment = loanSchedule.get(1);
+ validateNumberForEqual("149.11", String.valueOf(firstInstallment.get("feeChargesDue")));
- LOG.info("-------------Make repayment 1-----------");
- LOAN_TRANSACTION_HELPER.makeRepayment("20 October 2011", Float.parseFloat("3300.60"), loanID);
- loanCharges.clear();
- loanCharges = LOAN_TRANSACTION_HELPER.getLoanCharges(loanID);
- validateCharge(percentageDisbursementCharge, loanCharges, "1", "0.00", "120.00", "0.0");
- validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "120.0", "0.0");
- validateCharge(percentageInstallmentFee, loanCharges, "1", "90.89", "29.11", "0.0");
+ // check for installment fee
+ HashMap secondInstallment = loanSchedule.get(2);
+ validateNumberForEqual("29.70", String.valueOf(secondInstallment.get("feeChargesDue")));
- JOURNAL_ENTRY_HELPER.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
- new JournalEntry(Float.parseFloat("3300.60"), JournalEntry.TransactionType.DEBIT),
- new JournalEntry(Float.parseFloat("3300.60"), JournalEntry.TransactionType.CREDIT));
+ LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
+ loanStatusHashMap = LOAN_TRANSACTION_HELPER.approveLoan("20 September 2011", loanID);
+ LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+ LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
- LOAN_TRANSACTION_HELPER.addChargesForLoan(loanID, LoanTransactionHelper
- .getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
- loanSchedule.clear();
- loanSchedule = LOAN_TRANSACTION_HELPER.getLoanRepaymentSchedule(REQUEST_SPEC, RESPONSE_SPEC, loanID);
+ LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
+ String loanDetails = LOAN_TRANSACTION_HELPER.getLoanDetails(REQUEST_SPEC, RESPONSE_SPEC, loanID);
Review Comment:
was this configuration setting got deleted and not added again?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@fineract.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org