FINERACT-2354: Re-aging - Accrual and Accrual Activity handling - Equal Amortization
This commit is contained in:
+93
@@ -2209,6 +2209,99 @@ public class LoanStepDef extends AbstractStepDef {
|
||||
.as(ErrorMessageHelper.wrongValueInLineInTransactionsTab(resourceId, 1, actualValuesList, expectedValues)).isTrue();
|
||||
}
|
||||
|
||||
@Then("Loan Transactions tab has the following new accrual data:")
|
||||
public void loanTransactionsTabCheckNewAccruals(DataTable table) {
|
||||
PostLoansResponse loanCreateResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
List<List<String>> expectedAccruals = testContext().get(TestContextKey.VERIFIED_LOAN_ACCRUALS);
|
||||
if (expectedAccruals == null) {
|
||||
expectedAccruals = new ArrayList<List<String>>();
|
||||
testContext().set(TestContextKey.VERIFIED_LOAN_ACCRUALS, expectedAccruals);
|
||||
}
|
||||
long loanId = loanCreateResponse.getLoanId();
|
||||
String resourceId = String.valueOf(loanId);
|
||||
|
||||
GetLoansLoanIdResponse loanDetailsResponse = ok(() -> fineractClient.loans().retrieveLoan(loanId,
|
||||
Map.of("staffInSelectedOfficeOnly", "false", "associations", "transactions")));
|
||||
List<GetLoansLoanIdTransactions> transactions = loanDetailsResponse.getTransactions().stream().filter(
|
||||
lt -> "Accrual".equalsIgnoreCase(lt.getType().getValue()) || "Accrual Adjustment".equalsIgnoreCase(lt.getType().getValue()))
|
||||
.toList();
|
||||
List<List<String>> data = table.asLists();
|
||||
expectedAccruals.addAll(data.subList(1, data.size()));
|
||||
|
||||
for (int i = 0; i < expectedAccruals.size(); i++) {
|
||||
List<String> expectedValues = expectedAccruals.get(i);
|
||||
String transactionDateExpected = expectedValues.get(0);
|
||||
List<List<String>> actualValuesList = transactions.stream()//
|
||||
.filter(t -> transactionDateExpected.equals(FORMATTER.format(t.getDate())))//
|
||||
.map(t -> fetchValuesOfTransaction(table.row(0), t))//
|
||||
.collect(Collectors.toList());//
|
||||
boolean containsExpectedValues = actualValuesList.stream()//
|
||||
.anyMatch(actualValues -> actualValues.equals(expectedValues));//
|
||||
assertThat(containsExpectedValues)
|
||||
.as(ErrorMessageHelper.wrongValueInLineInTransactionsTab(resourceId, i, actualValuesList, expectedValues)).isTrue();
|
||||
}
|
||||
assertThat(transactions.size())
|
||||
.as(ErrorMessageHelper.nrOfLinesWrongInTransactionsTab(resourceId, transactions.size(), expectedAccruals.size()))
|
||||
.isEqualTo(expectedAccruals.size());
|
||||
}
|
||||
|
||||
@Then("Loan Transactions tab has the following accrual data:")
|
||||
public void loanTransactionsTabCheckAccruals(DataTable table) {
|
||||
PostLoansResponse loanCreateResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
long loanId = loanCreateResponse.getLoanId();
|
||||
String resourceId = String.valueOf(loanId);
|
||||
|
||||
GetLoansLoanIdResponse loanDetailsResponse = ok(() -> fineractClient.loans().retrieveLoan(loanId,
|
||||
Map.of("staffInSelectedOfficeOnly", "false", "associations", "transactions")));
|
||||
List<GetLoansLoanIdTransactions> transactions = loanDetailsResponse.getTransactions().stream().filter(
|
||||
lt -> "Accrual".equalsIgnoreCase(lt.getType().getValue()) || "Accrual Adjustment".equalsIgnoreCase(lt.getType().getValue()))
|
||||
.toList();
|
||||
List<List<String>> data = table.asLists();
|
||||
for (int i = 1; i < data.size(); i++) {
|
||||
List<String> expectedValues = data.get(i);
|
||||
String transactionDateExpected = expectedValues.get(0);
|
||||
List<List<String>> actualValuesList = transactions.stream()//
|
||||
.filter(t -> transactionDateExpected.equals(FORMATTER.format(t.getDate())))//
|
||||
.map(t -> fetchValuesOfTransaction(table.row(0), t))//
|
||||
.collect(Collectors.toList());//
|
||||
boolean containsExpectedValues = actualValuesList.stream()//
|
||||
.anyMatch(actualValues -> actualValues.equals(expectedValues));//
|
||||
assertThat(containsExpectedValues)
|
||||
.as(ErrorMessageHelper.wrongValueInLineInTransactionsTab(resourceId, i, actualValuesList, expectedValues)).isTrue();
|
||||
}
|
||||
assertThat(transactions.size())
|
||||
.as(ErrorMessageHelper.nrOfLinesWrongInTransactionsTab(resourceId, transactions.size(), data.size() - 1))
|
||||
.isEqualTo(data.size() - 1);
|
||||
}
|
||||
|
||||
@Then("Loan Transactions tab has the following data without accruals:")
|
||||
public void loanTransactionsTabCheckWithoutAccruals(DataTable table) {
|
||||
PostLoansResponse loanCreateResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
long loanId = loanCreateResponse.getLoanId();
|
||||
String resourceId = String.valueOf(loanId);
|
||||
|
||||
GetLoansLoanIdResponse loanDetailsResponse = ok(() -> fineractClient.loans().retrieveLoan(loanId,
|
||||
Map.of("staffInSelectedOfficeOnly", "false", "associations", "transactions")));
|
||||
List<GetLoansLoanIdTransactions> transactions = loanDetailsResponse.getTransactions().stream()
|
||||
.filter(lt -> !lt.getType().getAccrual() && !"Accrual Adjustment".equalsIgnoreCase(lt.getType().getValue())).toList();
|
||||
List<List<String>> data = table.asLists();
|
||||
for (int i = 1; i < data.size(); i++) {
|
||||
List<String> expectedValues = data.get(i);
|
||||
String transactionDateExpected = expectedValues.get(0);
|
||||
List<List<String>> actualValuesList = transactions.stream()//
|
||||
.filter(t -> transactionDateExpected.equals(FORMATTER.format(t.getDate())))//
|
||||
.map(t -> fetchValuesOfTransaction(table.row(0), t))//
|
||||
.collect(Collectors.toList());//
|
||||
boolean containsExpectedValues = actualValuesList.stream()//
|
||||
.anyMatch(actualValues -> actualValues.equals(expectedValues));//
|
||||
assertThat(containsExpectedValues)
|
||||
.as(ErrorMessageHelper.wrongValueInLineInTransactionsTab(resourceId, i, actualValuesList, expectedValues)).isTrue();
|
||||
}
|
||||
assertThat(transactions.size())
|
||||
.as(ErrorMessageHelper.nrOfLinesWrongInTransactionsTab(resourceId, transactions.size(), data.size() - 1))
|
||||
.isEqualTo(data.size() - 1);
|
||||
}
|
||||
|
||||
@Then("Loan Transactions tab has the following data:")
|
||||
public void loanTransactionsTabCheck(DataTable table) {
|
||||
PostLoansResponse loanCreateResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
|
||||
Reference in New Issue
Block a user