Skip to content

Commit 8526169

Browse files
FINERACT-1926: added e2e tests for asset owner event changes with previous owner
1 parent a24616a commit 8526169

File tree

5 files changed

+384
-7
lines changed

5 files changed

+384
-7
lines changed

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,10 @@ public static String wrongDataInAssetExternalizationTransferExternalId(String ac
695695
actual, expected);
696696
}
697697

698+
public static String wrongDataInExternalAssetOwnerLoanProductAttribute(String attributeKey, long loanProduct) {
699+
return String.format("No attribute %s for loan product %s is found!", attributeKey, loanProduct);
700+
}
701+
698702
public static String wrongData(String actual, String expected) {
699703
return String.format("Wrong data. Actual value is: %s - But expected value is: %s", actual, expected);
700704
}

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/EventCheckHelper.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,47 @@ public void loanOwnershipTransferBusinessEventWithStatusCheck(Long loanId, Long
414414
.isEqualTo(transferStatusReasonExpected);
415415
}
416416

417+
public void loanOwnershipTransferBusinessEventWithTypeCheck(Long loanId, ExternalTransferData transferData, String transferType,
418+
String previousAssetOwner) throws IOException {
419+
Response<PageExternalTransferData> response = externalAssetOwnersApi.getTransfers(null, loanId, null, null, null).execute();
420+
List<ExternalTransferData> content = response.body().getContent();
421+
Long transferId = transferData.getTransferId();
422+
String assetOwner = transferData.getOwner() == null ? null : transferData.getOwner().getExternalId();
423+
424+
ExternalTransferData filtered = content.stream().filter(t -> transferId.equals(t.getTransferId())).reduce((first, second) -> second)
425+
.orElseThrow(() -> new IllegalStateException("No element found"));
426+
427+
BigDecimal totalOutstandingBalanceAmountExpected = filtered.getDetails() == null ? null
428+
: zeroConversion(filtered.getDetails().getTotalOutstanding());
429+
BigDecimal outstandingPrincipalPortionExpected = filtered.getDetails() == null ? null
430+
: zeroConversion(filtered.getDetails().getTotalPrincipalOutstanding());
431+
BigDecimal outstandingFeePortionExpected = filtered.getDetails() == null ? null
432+
: zeroConversion(filtered.getDetails().getTotalFeeChargesOutstanding());
433+
BigDecimal outstandingPenaltyPortionExpected = filtered.getDetails() == null ? null
434+
: zeroConversion(filtered.getDetails().getTotalPenaltyChargesOutstanding());
435+
BigDecimal outstandingInterestPortionExpected = filtered.getDetails() == null ? null
436+
: zeroConversion(filtered.getDetails().getTotalInterestOutstanding());
437+
BigDecimal overPaymentPortionExpected = filtered.getDetails() == null ? null
438+
: zeroConversion(filtered.getDetails().getTotalOverpaid());
439+
440+
eventAssertion.assertEvent(LoanOwnershipTransferEvent.class, loanId).extractingData(LoanOwnershipTransferDataV1::getLoanId)
441+
.isEqualTo(loanId).extractingData(LoanOwnershipTransferDataV1::getAssetOwnerExternalId)
442+
.isEqualTo(filtered.getOwner().getExternalId()).extractingData(LoanOwnershipTransferDataV1::getTransferExternalId)
443+
.isEqualTo(filtered.getTransferExternalId()).extractingData(LoanOwnershipTransferDataV1::getSettlementDate)
444+
.isEqualTo(FORMATTER_EVENTS.format(filtered.getSettlementDate()))
445+
.extractingBigDecimal(LoanOwnershipTransferDataV1::getTotalOutstandingBalanceAmount)
446+
.isEqualTo(totalOutstandingBalanceAmountExpected)
447+
.extractingBigDecimal(LoanOwnershipTransferDataV1::getOutstandingPrincipalPortion)
448+
.isEqualTo(outstandingPrincipalPortionExpected).extractingBigDecimal(LoanOwnershipTransferDataV1::getOutstandingFeePortion)
449+
.isEqualTo(outstandingFeePortionExpected).extractingBigDecimal(LoanOwnershipTransferDataV1::getOutstandingPenaltyPortion)
450+
.isEqualTo(outstandingPenaltyPortionExpected)
451+
.extractingBigDecimal(LoanOwnershipTransferDataV1::getOutstandingInterestPortion)
452+
.isEqualTo(outstandingInterestPortionExpected).extractingBigDecimal(LoanOwnershipTransferDataV1::getOverPaymentPortion)
453+
.isEqualTo(overPaymentPortionExpected).extractingData(LoanOwnershipTransferDataV1::getType).isEqualTo(transferType)
454+
.extractingData(LoanOwnershipTransferDataV1::getAssetOwnerExternalId).isEqualTo(assetOwner)
455+
.extractingData(LoanOwnershipTransferDataV1::getPreviousOwnerExternalId).isEqualTo(previousAssetOwner);
456+
}
457+
417458
public void loanAccountSnapshotBusinessEventCheck(Long loanId, Long transferId) throws IOException {
418459
Response<PageExternalTransferData> response = externalAssetOwnersApi.getTransfers(null, loanId, null, null, null).execute();
419460
List<ExternalTransferData> content = response.body().getContent();

0 commit comments

Comments
 (0)