Skip to content

Commit 9c4109f

Browse files
committed
FINERACT-2649: Standardize BigDecimal precision assertions in migrated Feign tests
Signed-off-by: DeathGun44 <krishnamewara841@gmail.com>
1 parent e85eeae commit 9c4109f

29 files changed

Lines changed: 351 additions & 358 deletions

integration-tests/src/test/java/org/apache/fineract/integrationtests/BlockTransactionsOnClosedOverpaidLoansTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.ArrayList;
2929
import java.util.HashMap;
3030
import lombok.extern.slf4j.Slf4j;
31+
import org.apache.fineract.integrationtests.client.feign.FeignLoanTestBase;
3132
import org.apache.fineract.integrationtests.common.ClientHelper;
3233
import org.apache.fineract.integrationtests.common.CommonConstants;
3334
import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper;
@@ -43,7 +44,7 @@
4344
import org.junit.jupiter.api.Test;
4445

4546
@Slf4j
46-
public class BlockTransactionsOnClosedOverpaidLoansTest {
47+
public class BlockTransactionsOnClosedOverpaidLoansTest extends FeignLoanTestBase {
4748

4849
private ResponseSpecification responseSpec;
4950
private RequestSpecification requestSpec;
@@ -79,7 +80,7 @@ public void testTransactionsOnOverpaidLoan() {
7980
ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
8081

8182
final Integer loanProductID = createLoanProduct();
82-
final Integer loanID = applyForLoanApplication(clientID, loanProductID, "1000", "01 January 2024");
83+
final Integer loanID = createLoanApplication(clientID, loanProductID, "1000", "01 January 2024");
8384

8485
this.loanTransactionHelper.approveLoan("01 January 2024", loanID);
8586
this.loanTransactionHelper.disburseLoanWithNetDisbursalAmount("01 January 2024", loanID, "1000");
@@ -116,7 +117,7 @@ public void testTransactionsOnClosedLoan() {
116117

117118
final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
118119
final Integer loanProductID = createLoanProduct();
119-
final Integer loanID = applyForLoanApplication(clientID, loanProductID, "1000", "01 January 2024");
120+
final Integer loanID = createLoanApplication(clientID, loanProductID, "1000", "01 January 2024");
120121

121122
this.loanTransactionHelper.approveLoan("01 January 2024", loanID);
122123
this.loanTransactionHelper.disburseLoanWithNetDisbursalAmount("01 January 2024", loanID, "1000");
@@ -165,7 +166,7 @@ private Integer createLoanProduct() {
165166
return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
166167
}
167168

168-
private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, String principal, String submitDate) {
169+
private Integer createLoanApplication(final Integer clientID, final Integer loanProductID, String principal, String submitDate) {
169170
final String loanApplicationJSON = new LoanApplicationTestBuilder() //
170171
.withPrincipal(principal) //
171172
.withLoanTermFrequency("4") //

integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanChargeExternalIntegrationTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,8 @@ public void checkNewClientLoanChargeFindsDuplicateExternalId() {
8282
.amount(1.0).dueDate("22 September 2011").externalId(externalId).dateFormat("dd MMMM yyyy").locale("en"));
8383
assertNotNull(chargeResponse);
8484

85-
assertThrows(CallFailedRuntimeException.class,
86-
() -> addLoanCharge(loanId, new PostLoansLoanIdChargesRequest().chargeId(chargeDefId).amount(2.0)
87-
.dueDate("23 September 2011").externalId(externalId).dateFormat("dd MMMM yyyy").locale("en")));
85+
assertThrows(CallFailedRuntimeException.class, () -> addLoanCharge(loanId, new PostLoansLoanIdChargesRequest().chargeId(chargeDefId)
86+
.amount(2.0).dueDate("23 September 2011").externalId(externalId).dateFormat("dd MMMM yyyy").locale("en")));
8887
}
8988

9089
private Long createLoanProduct(final boolean multiDisburseLoan, final String accountingRule) {

integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanChargeRefundIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.HashMap;
3535
import java.util.List;
3636
import java.util.Locale;
37+
import org.apache.fineract.integrationtests.client.feign.FeignLoanTestBase;
3738
import org.apache.fineract.integrationtests.common.ClientHelper;
3839
import org.apache.fineract.integrationtests.common.CommonConstants;
3940
import org.apache.fineract.integrationtests.common.Utils;
@@ -56,7 +57,7 @@
5657

5758
@SuppressWarnings({ "rawtypes", "unchecked" })
5859
@ExtendWith(LoanTestLifecycleExtension.class)
59-
public class ClientLoanChargeRefundIntegrationTest {
60+
public class ClientLoanChargeRefundIntegrationTest extends FeignLoanTestBase {
6061

6162
private static final Logger LOG = LoggerFactory.getLogger(ClientLoanChargeRefundIntegrationTest.class);
6263

integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanMultipleDisbursementsIntegrationTest.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.fineract.integrationtests;
2020

2121
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
import static org.junit.jupiter.api.Assertions.assertTrue;
2223

2324
import java.math.BigDecimal;
2425
import java.util.ArrayList;
@@ -175,15 +176,14 @@ public void checkThatAllMultiDisbursalsAppearOnLoanScheduleAndOutStandingBalance
175176
}
176177
}
177178
assertEquals(expectedDisbursals, disbursalCount, "Checking for eight disbursals");
178-
assertEquals(expectedTotalPrincipalDisbursed, totalPrincipalDisbursed, "Checking Principal Disburse is 255");
179+
assertTrue(expectedTotalPrincipalDisbursed.compareTo(totalPrincipalDisbursed) == 0, "Checking Principal Disburse is 255");
179180

180181
GetLoansLoanIdRepaymentPeriod lastPeriod = loanSchedule.get(8);
181182
final BigDecimal principalDue = lastPeriod.getPrincipalDue();
182-
assertEquals(expectedPrincipalDue, principalDue, "Checking Principal Due is 255");
183+
assertTrue(expectedPrincipalDue.compareTo(principalDue) == 0, "Checking Principal Due is 255");
183184

184185
final BigDecimal principalLoanBalanceOutstanding = lastPeriod.getPrincipalLoanBalanceOutstanding();
185-
assertEquals(expectedPrincipalLoanBalanceOutstanding, principalLoanBalanceOutstanding,
186-
"Checking Principal Loan Balance Outstanding is zero");
186+
assertTrue(expectedPrincipalLoanBalanceOutstanding.compareTo(principalLoanBalanceOutstanding) == 0, "Checking Principal Loan Balance Outstanding is zero");
187187
}
188188

189189
@Test
@@ -214,7 +214,8 @@ public void checkThatAllMultiDisbursalsAppearOnLoanScheduleAndOutStandingBalance
214214
approveLoan(loanID, approveLoanRequest(12000.0, "01 January 2021"));
215215
verifyLoanStatus(loanID, LoanStatus.APPROVED);
216216

217-
LOG.info("-------------------------------DISBURSE 1, repay fully, disburse again LOANS -------------------------------------------");
217+
LOG.info(
218+
"-------------------------------DISBURSE 1, repay fully, disburse again LOANS -------------------------------------------");
218219
disburseLoanWithAmount(loanID, "12 January 2021", 1);
219220
verifyLoanStatus(loanID, LoanStatus.ACTIVE);
220221
makeLoanRepayment(loanID, "Repayment", "13 January 2021", 1.0);
@@ -247,19 +248,18 @@ public void checkThatAllMultiDisbursalsAppearOnLoanScheduleAndOutStandingBalance
247248
}
248249
}
249250
assertEquals(expectedDisbursals, disbursalCount, "Checking for 2 disbursals");
250-
assertEquals(expectedTotalPrincipalDisbursed, totalPrincipalDisbursed, "Checking Principal Disburse is 3");
251+
assertTrue(expectedTotalPrincipalDisbursed.compareTo(totalPrincipalDisbursed) == 0, "Checking Principal Disburse is 3");
251252

252253
GetLoansLoanIdRepaymentPeriod lastPeriod = loanSchedule.get(2);
253254
final BigDecimal principalDue = lastPeriod.getPrincipalDue();
254-
assertEquals(expectedPrincipalDue, principalDue, "Checking Principal Due is 3");
255+
assertTrue(expectedPrincipalDue.compareTo(principalDue) == 0, "Checking Principal Due is 3");
255256
final BigDecimal principalPaid = lastPeriod.getPrincipalPaid();
256-
assertEquals(expectedPrincipalPaid, principalPaid, "Checking Principal Paid is 1");
257+
assertTrue(expectedPrincipalPaid.compareTo(principalPaid) == 0, "Checking Principal Paid is 1");
257258
final BigDecimal principalOutstanding = lastPeriod.getPrincipalOutstanding();
258-
assertEquals(expectedPrincipalOutstanding, principalOutstanding, "Checking Principal Due is 2");
259+
assertTrue(expectedPrincipalOutstanding.compareTo(principalOutstanding) == 0, "Checking Principal Due is 2");
259260

260261
final BigDecimal principalLoanBalanceOutstanding = lastPeriod.getPrincipalLoanBalanceOutstanding();
261-
assertEquals(expectedPrincipalLoanBalanceOutstanding, principalLoanBalanceOutstanding,
262-
"Checking Principal Loan Balance Outstanding is zero");
262+
assertTrue(expectedPrincipalLoanBalanceOutstanding.compareTo(principalLoanBalanceOutstanding) == 0, "Checking Principal Loan Balance Outstanding is zero");
263263
}
264264

265265
@Test
@@ -290,7 +290,8 @@ public void checkThatAllMultiDisbursalsAppearOnLoanScheduleAndOutStandingBalance
290290
approveLoan(loanID, approveLoanRequest(12000.0, "01 January 2021"));
291291
verifyLoanStatus(loanID, LoanStatus.APPROVED);
292292

293-
LOG.info("-------------------------------DISBURSE 1, repay fully, disburse again LOANS -------------------------------------------");
293+
LOG.info(
294+
"-------------------------------DISBURSE 1, repay fully, disburse again LOANS -------------------------------------------");
294295
disburseLoanWithAmount(loanID, "12 January 2021", 1);
295296
verifyLoanStatus(loanID, LoanStatus.ACTIVE);
296297
makeLoanRepayment(loanID, "Repayment", "13 January 2021", 2.0);
@@ -323,18 +324,17 @@ public void checkThatAllMultiDisbursalsAppearOnLoanScheduleAndOutStandingBalance
323324
}
324325
}
325326
assertEquals(expectedDisbursals, disbursalCount, "Checking for 2 disbursals");
326-
assertEquals(expectedTotalPrincipalDisbursed, totalPrincipalDisbursed, "Checking Principal Disburse is 3");
327+
assertTrue(expectedTotalPrincipalDisbursed.compareTo(totalPrincipalDisbursed) == 0, "Checking Principal Disburse is 3");
327328

328329
GetLoansLoanIdRepaymentPeriod lastPeriod = loanSchedule.get(2);
329330
final BigDecimal principalDue = lastPeriod.getPrincipalDue();
330-
assertEquals(expectedPrincipalDue, principalDue, "Checking Principal Due is 3");
331+
assertTrue(expectedPrincipalDue.compareTo(principalDue) == 0, "Checking Principal Due is 3");
331332
final BigDecimal principalPaid = lastPeriod.getPrincipalPaid();
332-
assertEquals(expectedPrincipalPaid, principalPaid, "Checking Principal Paid is 1");
333+
assertTrue(expectedPrincipalPaid.compareTo(principalPaid) == 0, "Checking Principal Paid is 1");
333334
final BigDecimal principalOutstanding = lastPeriod.getPrincipalOutstanding();
334-
assertEquals(expectedPrincipalOutstanding, principalOutstanding, "Checking Principal Due is 2");
335+
assertTrue(expectedPrincipalOutstanding.compareTo(principalOutstanding) == 0, "Checking Principal Due is 2");
335336

336337
final BigDecimal principalLoanBalanceOutstanding = lastPeriod.getPrincipalLoanBalanceOutstanding();
337-
assertEquals(expectedPrincipalLoanBalanceOutstanding, principalLoanBalanceOutstanding,
338-
"Checking Principal Loan Balance Outstanding is zero");
338+
assertTrue(expectedPrincipalLoanBalanceOutstanding.compareTo(principalLoanBalanceOutstanding) == 0, "Checking Principal Loan Balance Outstanding is zero");
339339
}
340340
}

integration-tests/src/test/java/org/apache/fineract/integrationtests/ClientLoanNonTrancheMultipleDisbursementsIntegrationTest.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package org.apache.fineract.integrationtests;
2020

21+
import java.math.BigDecimal;
2122
import java.util.List;
2223
import org.apache.fineract.client.models.GetLoansLoanIdRepaymentPeriod;
2324
import org.apache.fineract.client.models.GetLoansLoanIdResponse;
@@ -148,12 +149,12 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
148149
long repaymentPeriodCount = schedule.stream().filter(p -> p.getPeriod() != null).count();
149150
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
150151

151-
Assertions.assertEquals(approved, loanDetails.getSummary().getPrincipalDisbursed());
152-
Assertions.assertEquals(approved, loanDetails.getSummary().getPrincipalOutstanding());
152+
Assertions.assertTrue(BigDecimal.valueOf(approved).compareTo(loanDetails.getSummary().getPrincipalDisbursed()) == 0);
153+
Assertions.assertTrue(BigDecimal.valueOf(approved).compareTo(loanDetails.getSummary().getPrincipalOutstanding()) == 0);
153154

154155
LOG.info("------------------------------- 2nd DISBURSE non-tranch multi-disbursal loan ----------");
155156
final Double anotherDisbursalAmount = 900.00;
156-
disburseLoanWithNetDisbursalAmount(loanID, submitDate, anotherDisbursalAmount.toString());
157+
disburseLoan(loanID, submitDate, anotherDisbursalAmount);
157158
verifyLoanStatus(loanID, LoanStatus.ACTIVE);
158159

159160
loanDetails = getLoanDetails(loanID);
@@ -162,13 +163,13 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
162163
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
163164

164165
Double disbursedSum = approved + anotherDisbursalAmount;
165-
Assertions.assertEquals(disbursedSum, loanDetails.getSummary().getPrincipalDisbursed());
166-
Assertions.assertEquals(disbursedSum, loanDetails.getSummary().getPrincipalOutstanding());
166+
Assertions.assertTrue(BigDecimal.valueOf(disbursedSum).compareTo(loanDetails.getSummary().getPrincipalDisbursed()) == 0);
167+
Assertions.assertTrue(BigDecimal.valueOf(disbursedSum).compareTo(loanDetails.getSummary().getPrincipalOutstanding()) == 0);
167168

168169
LOG.info("------------------------------- 3rd DISBURSE non-tranch multi-disbursal loan ----------");
169170
final Double thirdDisbursalAmount = 500.00;
170171
String thirdDisbursalDate = "03 February 2021";
171-
disburseLoanWithNetDisbursalAmount(loanID, thirdDisbursalDate, thirdDisbursalAmount.toString());
172+
disburseLoan(loanID, thirdDisbursalDate, thirdDisbursalAmount);
172173
verifyLoanStatus(loanID, LoanStatus.ACTIVE);
173174

174175
loanDetails = getLoanDetails(loanID);
@@ -177,8 +178,8 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
177178
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
178179

179180
disbursedSum = disbursedSum + thirdDisbursalAmount;
180-
Assertions.assertEquals(disbursedSum, loanDetails.getSummary().getPrincipalDisbursed());
181-
Assertions.assertEquals(disbursedSum, loanDetails.getSummary().getPrincipalOutstanding());
181+
Assertions.assertTrue(BigDecimal.valueOf(disbursedSum).compareTo(loanDetails.getSummary().getPrincipalDisbursed()) == 0);
182+
Assertions.assertTrue(BigDecimal.valueOf(disbursedSum).compareTo(loanDetails.getSummary().getPrincipalOutstanding()) == 0);
182183
}
183184

184185
@Test

integration-tests/src/test/java/org/apache/fineract/integrationtests/DelinquencyAndChargebackIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.apache.fineract.integrationtests.common.Utils;
4848
import org.apache.fineract.integrationtests.common.products.DelinquencyBucketsHelper;
4949
import org.apache.fineract.portfolio.loanaccount.domain.LoanStatus;
50-
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
5150
import org.junit.jupiter.api.Named;
5251
import org.junit.jupiter.params.ParameterizedTest;
5352
import org.junit.jupiter.params.provider.Arguments;
@@ -269,7 +268,8 @@ private Long createLoanProduct(String strategyCode, boolean advancedAllocation,
269268
private Long createLoanAccount(final Long clientId, final Long loanProductId, final String operationDate, final String periods,
270269
String repaymentStrategy) {
271270
PostLoansRequest request = applyLoanRequest(clientId, loanProductId, operationDate, Double.valueOf(principalAmount),
272-
Integer.valueOf(periods), req -> req.repaymentEvery(1).repaymentFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
271+
Integer.valueOf(periods),
272+
req -> req.repaymentEvery(1).repaymentFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
273273
.loanTermFrequency(Integer.valueOf(periods)).loanTermFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
274274
.interestRatePerPeriod(BigDecimal.ZERO).interestType(LoanTestData.InterestType.DECLINING_BALANCE)
275275
.expectedDisbursementDate(operationDate).submittedOnDate(operationDate)

0 commit comments

Comments
 (0)