FINERACT-1926: Add external id validation for buyback and sale

This commit is contained in:
Adam Saghy
2023-07-11 17:08:04 +02:00
parent 1ef6b9d739
commit d65de7a8e9
2 changed files with 38 additions and 4 deletions
@@ -615,6 +615,16 @@ public class InitiateExternalAssetOwnerTransferTest {
CallFailedRuntimeException exception5 = assertThrows(CallFailedRuntimeException.class,
() -> createBuybackTransfer(-1, "2020-03-03"));
assertTrue(exception5.getMessage().contains("Loan with identifier -1 does not exist"));
String externalId = UUID.randomUUID().toString();
CallFailedRuntimeException exception6 = assertThrows(CallFailedRuntimeException.class, () -> {
Integer clientID = createClient();
Integer loanID = createLoanForClient(clientID);
createSaleTransfer(loanID, "2020-03-03", externalId, "1", "1.0");
createBuybackTransfer(loanID, "2020-03-02", externalId);
});
assertTrue(exception6.getMessage()
.contains(String.format("Already existing an asset transfer with the provided transfer external id: %s", externalId)));
} finally {
cleanUpAndRestoreBusinessDate();
}
@@ -657,6 +667,14 @@ public class InitiateExternalAssetOwnerTransferTest {
createSaleTransfer(loanID2, "2020-03-05");
});
assertTrue(exception6.getMessage().contains("This loan cannot be sold, because it is owned by an external asset owner"));
String externalId = UUID.randomUUID().toString();
CallFailedRuntimeException exception7 = assertThrows(CallFailedRuntimeException.class, () -> {
Integer loanID2 = createLoanForClient(clientID);
createSaleTransfer(loanID2, "2020-03-05", externalId, "1", "1.0");
createSaleTransfer(loanID2, "2020-03-05", externalId, "1", "1.0");
});
assertTrue(exception7.getMessage()
.contains(String.format("Already existing an asset transfer with the provided transfer external id: %s", externalId)));
} finally {
cleanUpAndRestoreBusinessDate();
}
@@ -684,6 +702,10 @@ public class InitiateExternalAssetOwnerTransferTest {
private PostInitiateTransferResponse createBuybackTransfer(Integer loanID, String settlementDate) {
String transferExternalId = UUID.randomUUID().toString();
return createBuybackTransfer(loanID, settlementDate, transferExternalId);
}
private PostInitiateTransferResponse createBuybackTransfer(Integer loanID, String settlementDate, String transferExternalId) {
PostInitiateTransferResponse saleResponse = EXTERNAL_ASSET_OWNER_HELPER.initiateTransferByLoanId(loanID.longValue(), "buyback",
new PostInitiateTransferRequest().settlementDate(settlementDate).dateFormat("yyyy-MM-dd").locale("en")
.transferExternalId(transferExternalId));