diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc index 3fdc726b7..97387b864 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/CollectionDataV1.avsc @@ -104,6 +104,38 @@ "items": "org.apache.fineract.avro.loan.v1.LoanInstallmentDelinquencyBucketDataV1" } ] + }, + { + "default": null, + "name": "delinquentPrincipal", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "default": null, + "name": "delinquentInterest", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "default": null, + "name": "delinquentFee", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "default": null, + "name": "delinquentPenalty", + "type": [ + "null", + "bigdecimal" + ] } ] } diff --git a/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc b/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc index 6e62713f4..9dae4c2f5 100644 --- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc +++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanSummaryDataV1.avsc @@ -426,6 +426,22 @@ "null", "string" ] + }, + { + "default": null, + "name": "totalUnpaidAccruedDueInterest", + "type": [ + "null", + "bigdecimal" + ] + }, + { + "default": null, + "name": "totalUnpaidAccruedNotDueInterest", + "type": [ + "null", + "bigdecimal" + ] } ] } diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CustomSnapshotEventIntegrationTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CustomSnapshotEventIntegrationTest.java index bfbb3242d..f6dd36c2c 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CustomSnapshotEventIntegrationTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CustomSnapshotEventIntegrationTest.java @@ -47,6 +47,7 @@ import org.junit.jupiter.api.extension.ExtendWith; public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest { private SchedulerJobHelper schedulerJobHelper = new SchedulerJobHelper(this.requestSpec); + private Gson gson = new Gson(); @Test public void testSnapshotEventGenerationWhenLoanInstallmentIsNotPayed() { @@ -92,6 +93,19 @@ public class CustomSnapshotEventIntegrationTest extends BaseLoanIntegrationTest Assertions.assertEquals(1, allExternalEvents.size()); Assertions.assertEquals("LoanAccountCustomSnapshotBusinessEvent", allExternalEvents.get(0).getType()); Assertions.assertEquals(loanId, allExternalEvents.get(0).getAggregateRootId()); + + // Loan Delinquency data validation + final Map payLoad = (Map) allExternalEvents.get(0).getPayLoad().get("delinquent"); + log.info("Payload: {}", payLoad.toString()); + + Assertions.assertNotNull(payLoad.get("delinquentPrincipal")); + Assertions.assertEquals(312.0, payLoad.get("delinquentPrincipal")); + Assertions.assertNotNull(payLoad.get("delinquentInterest")); + Assertions.assertEquals(0.0, payLoad.get("delinquentInterest")); + Assertions.assertNotNull(payLoad.get("delinquentFee")); + Assertions.assertEquals(0.0, payLoad.get("delinquentFee")); + Assertions.assertNotNull(payLoad.get("delinquentPenalty")); + Assertions.assertEquals(0.0, payLoad.get("delinquentPenalty")); }); }