This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 89750eeb2 FINERACT-2017: Improve test apply holidays to loans job
89750eeb2 is described below
commit 89750eeb2eb83827b89185973703470db8251442
Author: mariiaKraievska <[email protected]>
AuthorDate: Tue Dec 19 21:27:24 2023 +0200
FINERACT-2017: Improve test apply holidays to loans job
---
.../integrationtests/SchedulerJobsTestResults.java | 64 +++++++++++++++-------
1 file changed, 45 insertions(+), 19 deletions(-)
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
index eb410a05d..f8ec562bd 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
@@ -339,43 +339,69 @@ public class SchedulerJobsTestResults {
HashMap holidayData = HolidayHelper.getHolidayById(requestSpec,
responseSpec, holidayId.toString());
ArrayList<Integer> repaymentsRescheduledDate = (ArrayList<Integer>)
holidayData.get("repaymentsRescheduledTo");
+ Assertions.assertNotNull(repaymentsRescheduledDate);
// Loan Repayment Schedule Before Apply Holidays To Loans
- LinkedHashMap repaymentScheduleHashMap =
JsonPath.from(loanDetails).get("repaymentSchedule");
- ArrayList<LinkedHashMap> periods = (ArrayList<LinkedHashMap>)
repaymentScheduleHashMap.get("periods");
-
- for (LinkedHashMap period : periods) {
- ArrayList<Integer> fromDate = (ArrayList<Integer>)
period.get("fromDate");
- if (fromDate != null && Objects.equals(fromDate.get(1),
repaymentsRescheduledDate.get(1))) {
- Assertions.assertNotEquals(repaymentsRescheduledDate.get(2),
fromDate.get(2),
- "Verifying Repayment Rescheduled Day before Running
Apply Holidays to Loans Scheduler Job");
+ final LinkedHashMap repaymentScheduleHashMapBeforeHolidaysApply =
JsonPath.from(loanDetails).get("repaymentSchedule");
+ final ArrayList<LinkedHashMap> periodsBeforeHolidaysApply =
(ArrayList<LinkedHashMap>) repaymentScheduleHashMapBeforeHolidaysApply
+ .get("periods");
+
+ for (LinkedHashMap period : periodsBeforeHolidaysApply) {
+ final ArrayList<Integer> fromDate = (ArrayList<Integer>)
period.get("fromDate");
+ if (fromDate != null) {
+ final Integer fromDateMonth = fromDate.get(1);
+ final Integer repaymentsRescheduledDateMonth =
repaymentsRescheduledDate.get(1);
+ if (Objects.equals(fromDateMonth,
repaymentsRescheduledDateMonth)) {
+ final Integer repaymentsRescheduledDateDay =
repaymentsRescheduledDate.get(2);
+ final Integer fromDateDay = fromDate.get(2);
+ Assertions.assertNotEquals(repaymentsRescheduledDateDay,
fromDateDay,
+ "Verifying Repayment Rescheduled Day before
Running Apply Holidays to Loans Scheduler Job");
+ }
}
}
- String JobName = "Apply Holidays To Loans";
+ String jobName = "Apply Holidays To Loans";
- this.schedulerJobHelper.executeAndAwaitJob(JobName);
+ this.schedulerJobHelper.executeAndAwaitJob(jobName);
// Loan Repayment Schedule After Apply Holidays To Loans
loanDetails = this.loanTransactionHelper.getLoanDetails(requestSpec,
responseSpec, loanID);
- repaymentScheduleHashMap =
JsonPath.from(loanDetails).get("repaymentSchedule");
- periods = (ArrayList<LinkedHashMap>)
repaymentScheduleHashMap.get("periods");
+ final LinkedHashMap repaymentScheduleHashMapAfterHolidaysApply =
JsonPath.from(loanDetails).get("repaymentSchedule");
+ final ArrayList<LinkedHashMap> periodsAfterHolidaysApply =
(ArrayList<LinkedHashMap>) repaymentScheduleHashMapAfterHolidaysApply
+ .get("periods");
ArrayList<Integer> dateToApplyHolidays = null;
- for (LinkedHashMap period : periods) {
- ArrayList<Integer> fromDate = (ArrayList<Integer>)
period.get("fromDate");
- if (fromDate != null && Objects.equals(fromDate.get(1),
repaymentsRescheduledDate.get(1))) {
- dateToApplyHolidays = fromDate;
+ for (LinkedHashMap periodBefore : periodsBeforeHolidaysApply) {
+ for (LinkedHashMap periodAfter : periodsAfterHolidaysApply) {
+ final ArrayList<Integer> fromDateBefore = (ArrayList<Integer>)
periodBefore.get("fromDate");
+ final ArrayList<Integer> fromDateAfter = (ArrayList<Integer>)
periodAfter.get("fromDate");
+
+ if (fromDateBefore != null && fromDateAfter != null) {
+ final Integer fromDateMonthBefore = fromDateBefore.get(1);
+ final Integer fromDateMonthAfter = fromDateAfter.get(1);
+ final Integer repaymentsRescheduledDateMonth =
repaymentsRescheduledDate.get(1);
+
+ if (Objects.equals(fromDateMonthAfter,
repaymentsRescheduledDateMonth)) {
+ dateToApplyHolidays = fromDateAfter;
+ } else if (Objects.equals(fromDateMonthAfter,
fromDateMonthBefore)) {
+ assertEqualDay(fromDateBefore, fromDateAfter,
+ "Verifying Repayment Scheduled Days Before And
After Running Apply Holidays to Loans Scheduler Job Are Equals");
+ }
+ }
}
}
Assertions.assertNotNull(dateToApplyHolidays);
- Assertions.assertEquals(repaymentsRescheduledDate.get(0),
dateToApplyHolidays.get(0),
- "Verifying Repayment Rescheduled Year after Running Apply
Holidays to Loans Scheduler Job");
- Assertions.assertEquals(repaymentsRescheduledDate.get(2),
dateToApplyHolidays.get(2),
+ assertEqualDay(repaymentsRescheduledDate, dateToApplyHolidays,
"Verifying Repayment Rescheduled Day after Running Apply
Holidays to Loans Scheduler Job");
}
+ private void assertEqualDay(ArrayList<Integer> fromDateBefore,
ArrayList<Integer> fromDateAfter, String message) {
+ Integer fromDateDayBefore = fromDateBefore.get(2);
+ Integer fromDateDayAfter = fromDateAfter.get(2);
+ Assertions.assertEquals(fromDateDayBefore, fromDateDayAfter, message);
+ }
+
@Test
public void testApplyDueFeeChargesForSavingsJobOutcome() throws
InterruptedException {
this.savingsAccountHelper = new SavingsAccountHelper(requestSpec,
responseSpec);