FINERACT-2200: Add "reversed" flag to LoanTransactionDataV1.avsc

This commit is contained in:
Adam Saghy
2025-03-04 14:16:55 +00:00
parent 262f1d9e10
commit 9208ea2fe1
3 changed files with 16 additions and 0 deletions
@@ -255,6 +255,14 @@
"type": "map"
}
]
},
{
"default": null,
"name": "reversed",
"type": [
"null",
"boolean"
]
}
]
}
@@ -31,5 +31,10 @@ public interface LoanTransactionDataMapper {
@Mapping(target = "unpaidCharges", ignore = true)
@Mapping(target = "externalOwnerId", ignore = true)
@Mapping(target = "customData", ignore = true)
@Mapping(target = "reversed", expression = "java(isReversed(source))")
LoanTransactionDataV1 map(LoanTransactionData source);
default boolean isReversed(LoanTransactionData source) {
return source.isManuallyReversed() || source.getReversedOnDate() != null;
}
}
@@ -266,6 +266,7 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
Assertions.assertEquals(42.0D, chargePaidBy.get("amount"));
Assertions.assertEquals(chargeId.doubleValue(), chargePaidBy.get("chargeId"));
Assertions.assertEquals(transactionId.doubleValue(), chargePaidBy.get("transactionId"));
Assertions.assertFalse((Boolean) event.getPayLoad().get("reversed"));
// check that third part cannot post for that charge, because it already fully adjusted
Assertions.assertThrows(RuntimeException.class, () -> loanTransactionHelper.chargeAdjustment(loanId, chargeId,
@@ -780,6 +781,8 @@ public class ExternalBusinessEventTest extends BaseLoanIntegrationTest {
&& x.getPayLoad().get("transactionToAdjust") != null) //
.toList(); //
Assertions.assertEquals(2, list.size());
Assertions.assertTrue((Boolean) ((Map) list.get(0).getPayLoad().get("transactionToAdjust")).get("reversed"));
Assertions.assertTrue((Boolean) ((Map) list.get(1).getPayLoad().get("transactionToAdjust")).get("reversed"));
loanDetails = loanTransactionHelper.getLoanDetails(loanId);
verifyLoanStatus(loanDetails, GetLoansLoanIdStatus::getActive);