Skip to content

Commit cb72392

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

29 files changed

Lines changed: 353 additions & 359 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
@@ -81,9 +81,8 @@ public void checkNewClientLoanChargeFindsDuplicateExternalId() {
8181
.amount(1.0).dueDate("22 September 2011").externalId(externalId).dateFormat("dd MMMM yyyy").locale("en"));
8282
assertNotNull(chargeResponse);
8383

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

8988
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;
@@ -147,12 +148,12 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
147148
long repaymentPeriodCount = schedule.stream().filter(p -> p.getPeriod() != null).count();
148149
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
149150

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

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

158159
loanDetails = getLoanDetails(loanID);
@@ -161,13 +162,13 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
161162
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
162163

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

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

173174
loanDetails = getLoanDetails(loanID);
@@ -176,8 +177,8 @@ public void checkThatNonTrancheMultiDisbursalsCreateAScheduleOnFirstDisbursalTes
176177
Assertions.assertEquals(repaymentsNo.longValue(), repaymentPeriodCount);
177178

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

183184
@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
@@ -49,7 +49,6 @@
4949
import org.apache.fineract.integrationtests.common.Utils;
5050
import org.apache.fineract.integrationtests.common.products.DelinquencyBucketsHelper;
5151
import org.apache.fineract.portfolio.loanaccount.domain.LoanStatus;
52-
import org.apache.fineract.portfolio.loanaccount.loanschedule.domain.LoanScheduleType;
5352
import org.junit.jupiter.api.Named;
5453
import org.junit.jupiter.params.ParameterizedTest;
5554
import org.junit.jupiter.params.provider.Arguments;
@@ -271,7 +270,8 @@ private Long createLoanProduct(String strategyCode, boolean advancedAllocation,
271270
private Long createLoanAccount(final Long clientId, final Long loanProductId, final String operationDate, final String periods,
272271
String repaymentStrategy) {
273272
PostLoansRequest request = applyLoanRequest(clientId, loanProductId, operationDate, Double.valueOf(principalAmount),
274-
Integer.valueOf(periods), req -> req.repaymentEvery(1).repaymentFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
273+
Integer.valueOf(periods),
274+
req -> req.repaymentEvery(1).repaymentFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
275275
.loanTermFrequency(Integer.valueOf(periods)).loanTermFrequencyType(LoanTestData.RepaymentFrequencyType.MONTHS)
276276
.interestRatePerPeriod(BigDecimal.ZERO).interestType(LoanTestData.InterestType.DECLINING_BALANCE)
277277
.expectedDisbursementDate(operationDate).submittedOnDate(operationDate)

0 commit comments

Comments
 (0)