FINERACT-2232: Added capitalized income adjustment reversal scenarios

This commit is contained in:
tamasszabo-dpc
2025-06-03 10:46:56 +02:00
committed by Adam Saghy
parent 1556b8608f
commit 50851e8b21
4 changed files with 403 additions and 1 deletions
@@ -215,6 +215,11 @@ public class LoanRequestFactory {
.transactionAmount(DEFAULT_UNDO_TRANSACTION_AMOUNT).dateFormat(DATE_FORMAT).locale(DEFAULT_LOCALE);
}
public static PostLoansLoanIdTransactionsTransactionIdRequest defaultCapitalizedIncomeAdjustmentUndoRequest() {
return new PostLoansLoanIdTransactionsTransactionIdRequest().transactionDate(DEFAULT_TRANSACTION_DATE)
.transactionAmount(DEFAULT_UNDO_TRANSACTION_AMOUNT).dateFormat(DATE_FORMAT).locale(DEFAULT_LOCALE);
}
public static PostLoansLoanIdTransactionsTransactionIdRequest defaultRepaymentAdjustRequest(double amount) {
return new PostLoansLoanIdTransactionsTransactionIdRequest().transactionDate(DEFAULT_TRANSACTION_DATE).transactionAmount(amount)
.dateFormat(DATE_FORMAT).locale(DEFAULT_LOCALE);
@@ -398,6 +398,29 @@ public class LoanRepaymentStepDef extends AbstractStepDef {
eventCheckHelper.loanBalanceChangedEventCheck(loanId);
}
@When("Customer undo {string}th capitalized income adjustment on {string}")
public void undoNthCapitalizedIncomeAdjustment(String nthItemStr, String transactionDate) throws IOException {
eventStore.reset();
Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
long loanId = loanResponse.body().getLoanId();
List<GetLoansLoanIdTransactions> transactions = loansApi.retrieveLoan(loanId, false, "transactions", "", "").execute().body()
.getTransactions();
int nthItem = Integer.parseInt(nthItemStr) - 1;
GetLoansLoanIdTransactions targetTransaction = transactions.stream()
.filter(t -> Boolean.TRUE.equals(t.getType().getCapitalizedIncomeAdjustment())).toList().get(nthItem);
PostLoansLoanIdTransactionsTransactionIdRequest capitalizedIncomeUndoRequest = LoanRequestFactory.defaultCapitalizedIncomeAdjustmentUndoRequest()
.transactionDate(transactionDate);
Response<PostLoansLoanIdTransactionsResponse> capitalizedIncomeUndoResponse = loanTransactionsApi
.adjustLoanTransaction(loanId, targetTransaction.getId(), capitalizedIncomeUndoRequest, "").execute();
ErrorHelper.checkSuccessfulApiCall(capitalizedIncomeUndoResponse);
testContext().set(TestContextKey.LOAN_CAPITALIZED_INCOME_ADJUSTMENT_UNDO_RESPONSE, capitalizedIncomeUndoResponse);
eventCheckHelper.checkTransactionWithLoanTransactionAdjustmentBizEvent(targetTransaction);
eventCheckHelper.loanBalanceChangedEventCheck(loanId);
}
@When("Customer undo {string}th transaction made on {string}")
public void undoNthTransaction(String nthItemStr, String transactionDate) throws IOException {
eventStore.reset();
@@ -175,6 +175,7 @@ public abstract class TestContextKey {
public static final String CHARGE_FOR_LOAN_DISBURSEMENT_CHARGE_CREATE_RESPONSE = "ChargeForLoanDisbursementChargeCreateResponse";
public static final String LOAN_RESPONSE = "loanResponse";
public static final String LOAN_REPAYMENT_UNDO_RESPONSE = "loanRepaymentUndoResponse";
public static final String LOAN_CAPITALIZED_INCOME_ADJUSTMENT_UNDO_RESPONSE = "loanCapitalizedIncomeAdjustmentUndoResponse";
public static final String LOAN_TRANSACTION_UNDO_RESPONSE = "loanTransactionUndoResponse";
public static final String LOAN_CHARGEBACK_RESPONSE = "loanChargebackResponse";
public static final String LOAN_CHARGE_ADJUSTMENT_RESPONSE = "loanChargeAdjustmentResponse";