FINERACT-2418: add originatior association

This commit is contained in:
Attila Budai
2026-02-03 14:58:28 +01:00
committed by Adam Saghy
parent 3b5ea96f5e
commit ef12056e5d
7 changed files with 99 additions and 4 deletions
@@ -90,6 +90,14 @@ public class FeignLoanHelper {
return ok(() -> fineractClient.loans().retrieveLoan(loanId, Map.of("associations", "all", "exclude", "guarantors,futureSchedule")));
}
public GetLoansLoanIdResponse getLoanDetailsWithAssociations(Long loanId, String associations) {
return ok(() -> fineractClient.loans().retrieveLoan(loanId, Map.of("associations", associations)));
}
public GetLoansLoanIdResponse getLoanDetailsWithAssociationsAndExclude(Long loanId, String associations, String exclude) {
return ok(() -> fineractClient.loans().retrieveLoan(loanId, Map.of("associations", associations, "exclude", exclude)));
}
public void undoApproval(Long loanId) {
PostLoansLoanIdRequest request = new PostLoansLoanIdRequest();
ok(() -> fineractClient.loans().stateTransitions(loanId, request, Map.of("command", "undoApproval")));
@@ -343,4 +343,74 @@ public class FeignLoanOriginatorApiTest extends FeignIntegrationTest {
originatorHelper.deleteOriginator(originatorId);
}
@Test
public void testRetrieveLoanWithOriginatorsAssociation() {
final String originatorExternalId = FeignLoanOriginatorHelper.generateUniqueExternalId();
final Long originatorId = originatorHelper.createOriginator(originatorExternalId);
final Long clientId = clientHelper.createClient("Test", "Client");
final Long loanId = loanHelper.createSubmittedLoan(clientId);
originatorHelper.attachOriginatorToLoan(loanId, originatorId);
final var loanDetails = loanHelper.getLoanDetailsWithAssociations(loanId, "originators");
assertThat(loanDetails.getOriginators()).isNotNull();
assertThat(loanDetails.getOriginators()).hasSize(1);
assertThat(loanDetails.getOriginators().get(0).getId()).isEqualTo(originatorId);
assertThat(loanDetails.getOriginators().get(0).getExternalId()).isEqualTo(originatorExternalId);
originatorHelper.detachOriginatorFromLoan(loanId, originatorId);
originatorHelper.deleteOriginator(originatorId);
}
@Test
public void testRetrieveLoanWithAllAssociationsIncludesOriginators() {
final String originatorExternalId = FeignLoanOriginatorHelper.generateUniqueExternalId();
final Long originatorId = originatorHelper.createOriginator(originatorExternalId);
final Long clientId = clientHelper.createClient("Test", "Client");
final Long loanId = loanHelper.createSubmittedLoan(clientId);
originatorHelper.attachOriginatorToLoan(loanId, originatorId);
final var loanDetails = loanHelper.getLoanDetailsWithAssociationsAndExclude(loanId, "all", "guarantors,futureSchedule");
assertThat(loanDetails.getOriginators()).isNotNull();
assertThat(loanDetails.getOriginators()).isNotEmpty();
assertThat(loanDetails.getOriginators().get(0).getId()).isEqualTo(originatorId);
originatorHelper.detachOriginatorFromLoan(loanId, originatorId);
originatorHelper.deleteOriginator(originatorId);
}
@Test
public void testRetrieveLoanWithNoOriginatorsReturnsEmptyList() {
final Long clientId = clientHelper.createClient("Test", "Client");
final Long loanId = loanHelper.createSubmittedLoan(clientId);
final var loanDetails = loanHelper.getLoanDetailsWithAssociations(loanId, "originators");
assertThat(loanDetails.getOriginators()).isNotNull();
assertThat(loanDetails.getOriginators()).isEmpty();
}
@Test
public void testRetrieveLoanExcludeOriginatorsFromAll() {
final String originatorExternalId = FeignLoanOriginatorHelper.generateUniqueExternalId();
final Long originatorId = originatorHelper.createOriginator(originatorExternalId);
final Long clientId = clientHelper.createClient("Test", "Client");
final Long loanId = loanHelper.createSubmittedLoan(clientId);
originatorHelper.attachOriginatorToLoan(loanId, originatorId);
final var loanDetails = loanHelper.getLoanDetailsWithAssociationsAndExclude(loanId, "all", "originators,guarantors,futureSchedule");
assertThat(loanDetails.getOriginators()).isNull();
originatorHelper.detachOriginatorFromLoan(loanId, originatorId);
originatorHelper.deleteOriginator(originatorId);
}
}