FINERACT-1734 - Loan Account Delinquency Changed event definition
[x] Fix Charge data because not fetched the content
This commit is contained in:
committed by
Arnold Gálovics
parent
018aca3ba4
commit
dde36f391c
@@ -13,7 +13,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "currency",
|
"name": "currency",
|
||||||
"type": ["org.apache.fineract.avro.generic.v1.CurrencyDataV1"]
|
"type": "org.apache.fineract.avro.generic.v1.CurrencyDataV1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "amount",
|
"name": "amount",
|
||||||
|
|||||||
+6
-7
@@ -37,8 +37,8 @@ import org.apache.fineract.infrastructure.event.external.service.serialization.s
|
|||||||
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
|
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
|
||||||
import org.apache.fineract.portfolio.loanaccount.data.LoanAccountData;
|
import org.apache.fineract.portfolio.loanaccount.data.LoanAccountData;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge;
|
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
|
||||||
|
import org.apache.fineract.portfolio.loanaccount.service.LoanChargeReadPlatformService;
|
||||||
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
||||||
import org.springframework.core.Ordered;
|
import org.springframework.core.Ordered;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
@@ -53,6 +53,8 @@ public class LoanDelinquencyRangeChangeBusinessEventSerializer extends AbstractB
|
|||||||
|
|
||||||
private final LoanDelinquencyRangeDataMapper mapper;
|
private final LoanDelinquencyRangeDataMapper mapper;
|
||||||
|
|
||||||
|
private final LoanChargeReadPlatformService loanChargeReadPlatformService;
|
||||||
|
|
||||||
private final LoanChargeDataMapper chargeMapper;
|
private final LoanChargeDataMapper chargeMapper;
|
||||||
|
|
||||||
private final CurrencyDataMapper currencyMapper;
|
private final CurrencyDataMapper currencyMapper;
|
||||||
@@ -65,13 +67,10 @@ public class LoanDelinquencyRangeChangeBusinessEventSerializer extends AbstractB
|
|||||||
String accountNumber = data.getAccountNo();
|
String accountNumber = data.getAccountNo();
|
||||||
String externalId = data.getExternalId().getValue();
|
String externalId = data.getExternalId().getValue();
|
||||||
MonetaryCurrency loanCurrency = event.get().getCurrency();
|
MonetaryCurrency loanCurrency = event.get().getCurrency();
|
||||||
List<LoanChargeDataRangeViewV1> charges = event//
|
|
||||||
.get()//
|
List<LoanChargeDataRangeViewV1> charges = loanChargeReadPlatformService.retrieveLoanCharges(id)//
|
||||||
.getRepaymentScheduleInstallments()//
|
|
||||||
.stream()//
|
.stream()//
|
||||||
.flatMap(installment -> installment.getInstallmentCharges().stream())//
|
.map(chargeMapper::mapRangeView)//
|
||||||
.map(LoanInstallmentCharge::getLoancharge)//
|
|
||||||
.map(charge -> chargeMapper.mapRangeView(charge.toData()))//
|
|
||||||
.toList();
|
.toList();
|
||||||
LoanAmountDataV1 amount = LoanAmountDataV1.newBuilder()//
|
LoanAmountDataV1 amount = LoanAmountDataV1.newBuilder()//
|
||||||
.setPrincipalAmount(calculateDataSummary(event.get(),
|
.setPrincipalAmount(calculateDataSummary(event.get(),
|
||||||
|
|||||||
+9
-3
@@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.event.external.service.serialization.
|
|||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -61,6 +62,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
|
|||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanInstallmentCharge;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
|
||||||
|
import org.apache.fineract.portfolio.loanaccount.service.LoanChargeReadPlatformService;
|
||||||
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -77,6 +79,9 @@ public class LoanAccountDelinquencyRangeEventSerializerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private LoanReadPlatformService loanReadPlatformService;
|
private LoanReadPlatformService loanReadPlatformService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private LoanChargeReadPlatformService loanChargeReadPlatformService;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
ThreadLocalContextUtil.setTenant(new FineractPlatformTenant(1L, "default", "Default", "Asia/Kolkata", null));
|
ThreadLocalContextUtil.setTenant(new FineractPlatformTenant(1L, "default", "Default", "Asia/Kolkata", null));
|
||||||
@@ -88,8 +93,8 @@ public class LoanAccountDelinquencyRangeEventSerializerTest {
|
|||||||
public void testLoanRepaymentEventPayloadSerialization() throws IOException {
|
public void testLoanRepaymentEventPayloadSerialization() throws IOException {
|
||||||
// given
|
// given
|
||||||
LoanDelinquencyRangeChangeBusinessEventSerializer serializer = new LoanDelinquencyRangeChangeBusinessEventSerializer(
|
LoanDelinquencyRangeChangeBusinessEventSerializer serializer = new LoanDelinquencyRangeChangeBusinessEventSerializer(
|
||||||
loanReadPlatformService, new LoanDelinquencyRangeDataMapperImpl(), new LoanChargeDataMapperImpl(),
|
loanReadPlatformService, new LoanDelinquencyRangeDataMapperImpl(), loanChargeReadPlatformService,
|
||||||
new CurrencyDataMapperImpl());
|
new LoanChargeDataMapperImpl(), new CurrencyDataMapperImpl());
|
||||||
|
|
||||||
Loan loanForProcessing = Mockito.mock(Loan.class);
|
Loan loanForProcessing = Mockito.mock(Loan.class);
|
||||||
LoanAccountData loanAccountData = mock(LoanAccountData.class);
|
LoanAccountData loanAccountData = mock(LoanAccountData.class);
|
||||||
@@ -104,7 +109,6 @@ public class LoanAccountDelinquencyRangeEventSerializerTest {
|
|||||||
when(loanAccountData.getCurrency()).thenAnswer(a -> new CurrencyData(loanCurrency.getCode(), loanCurrency.getDigitsAfterDecimal(),
|
when(loanAccountData.getCurrency()).thenAnswer(a -> new CurrencyData(loanCurrency.getCode(), loanCurrency.getDigitsAfterDecimal(),
|
||||||
loanCurrency.getCurrencyInMultiplesOf()));
|
loanCurrency.getCurrencyInMultiplesOf()));
|
||||||
when(loanForProcessing.getCurrency()).thenReturn(loanCurrency);
|
when(loanForProcessing.getCurrency()).thenReturn(loanCurrency);
|
||||||
|
|
||||||
when(loanReadPlatformService.retrieveOne(any(Long.class))).thenReturn(loanAccountData);
|
when(loanReadPlatformService.retrieveOne(any(Long.class))).thenReturn(loanAccountData);
|
||||||
|
|
||||||
LoanDelinquencyRangeChangeBusinessEvent event = new LoanDelinquencyRangeChangeBusinessEvent(loanForProcessing);
|
LoanDelinquencyRangeChangeBusinessEvent event = new LoanDelinquencyRangeChangeBusinessEvent(loanForProcessing);
|
||||||
@@ -113,6 +117,8 @@ public class LoanAccountDelinquencyRangeEventSerializerTest {
|
|||||||
repaymentScheduleInstallments.add(buildInstallment(loanForProcessing, loanCurrency, BigDecimal.valueOf(100), BigDecimal.valueOf(5),
|
repaymentScheduleInstallments.add(buildInstallment(loanForProcessing, loanCurrency, BigDecimal.valueOf(100), BigDecimal.valueOf(5),
|
||||||
BigDecimal.valueOf(30), BigDecimal.valueOf(50), BigDecimal.valueOf(185), new BigDecimal("100.5"), new BigDecimal("200.3")));
|
BigDecimal.valueOf(30), BigDecimal.valueOf(50), BigDecimal.valueOf(185), new BigDecimal("100.5"), new BigDecimal("200.3")));
|
||||||
when(loanForProcessing.getRepaymentScheduleInstallments()).thenReturn(repaymentScheduleInstallments);
|
when(loanForProcessing.getRepaymentScheduleInstallments()).thenReturn(repaymentScheduleInstallments);
|
||||||
|
when(loanChargeReadPlatformService.retrieveLoanCharges(anyLong())).thenAnswer(a -> repaymentScheduleInstallments.get(0)
|
||||||
|
.getInstallmentCharges().stream().map(c -> c.getLoancharge().toData()).collect(Collectors.toList()));
|
||||||
|
|
||||||
moneyHelper.when(() -> MoneyHelper.getRoundingMode()).thenReturn(RoundingMode.UP);
|
moneyHelper.when(() -> MoneyHelper.getRoundingMode()).thenReturn(RoundingMode.UP);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user