FINERACT-1760: Enhanced external id support for loan charges
This commit is contained in:
committed by
Arnold Gálovics
parent
2f4dcbdd6c
commit
25c0b6a08d
+129
-18
@@ -30,14 +30,22 @@ import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import org.apache.fineract.client.models.DeleteLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdChargesTemplateResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTransactionIdResponse;
|
||||
import org.apache.fineract.client.models.PostClientsResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsTransactionIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.integrationtests.client.IntegrationTest;
|
||||
import org.apache.fineract.integrationtests.common.ClientHelper;
|
||||
import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper;
|
||||
@@ -113,11 +121,38 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
LocalDate targetDate = LocalDate.of(2022, 9, 7);
|
||||
final String penaltyCharge1AddedDate = dateFormatter.format(targetDate);
|
||||
|
||||
String penalty1LoanChargeExternalId = UUID.randomUUID().toString();
|
||||
Integer penalty1LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanId,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty), penaltyCharge1AddedDate, "10"));
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty), penaltyCharge1AddedDate, "10",
|
||||
penalty1LoanChargeExternalId));
|
||||
|
||||
Integer penalty2LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanId,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty), penaltyCharge1AddedDate, "10"));
|
||||
// Get loan charges
|
||||
List<GetLoansLoanIdChargesChargeIdResponse> loanChargesResult = loanTransactionHelper.getLoanCharges((long) loanId);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargesResult.get(0).getExternalId());
|
||||
loanChargesResult = loanTransactionHelper.getLoanCharges(loanExternalIdStr);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargesResult.get(0).getExternalId());
|
||||
|
||||
// Get loan charge template
|
||||
GetLoansLoanIdChargesTemplateResponse loanChargeTemplateResult = loanTransactionHelper.getLoanChargeTemplate((long) loanId);
|
||||
assertNotNull(loanChargeTemplateResult);
|
||||
loanChargeTemplateResult = loanTransactionHelper.getLoanChargeTemplate(loanExternalIdStr);
|
||||
assertNotNull(loanChargeTemplateResult);
|
||||
|
||||
// Get loan charge
|
||||
GetLoansLoanIdChargesChargeIdResponse loanChargeResult = loanTransactionHelper.getLoanCharge((long) loanId,
|
||||
(long) penalty1LoanChargeId);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargeResult.getExternalId());
|
||||
loanChargeResult = loanTransactionHelper.getLoanCharge(loanExternalIdStr, (long) penalty1LoanChargeId);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargeResult.getExternalId());
|
||||
loanChargeResult = loanTransactionHelper.getLoanCharge((long) loanId, penalty1LoanChargeExternalId);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargeResult.getExternalId());
|
||||
loanChargeResult = loanTransactionHelper.getLoanCharge(loanExternalIdStr, penalty1LoanChargeExternalId);
|
||||
assertEquals(penalty1LoanChargeExternalId, loanChargeResult.getExternalId());
|
||||
|
||||
PostLoansLoanIdChargesResponse penalty2Result = this.loanTransactionHelper.addLoanCharge(loanExternalIdStr,
|
||||
new PostLoansLoanIdChargesRequest().chargeId((long) penalty).amount(10.0).dueDate(penaltyCharge1AddedDate)
|
||||
.dateFormat("dd MMMM yyyy").locale("en"));
|
||||
assertNotNull(penalty2Result.getResourceExternalId());
|
||||
|
||||
// Check whether we can fetch transaction templates with proper result http code (HTTP 200..300)
|
||||
ok(fineract().loanTransactions.retrieveTransactionTemplate1(loanExternalIdStr, "repayment", null, null, null));
|
||||
@@ -135,6 +170,7 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
PostLoansLoanIdChargesChargeIdResponse waiveLoanChargeResult = loanTransactionHelper.waiveLoanCharge((long) loanId,
|
||||
(long) penalty1LoanChargeId, new PostLoansLoanIdChargesChargeIdRequest().externalId(waiveChargeExternalIdStr));
|
||||
assertEquals(waiveChargeExternalIdStr, waiveLoanChargeResult.getSubResourceExternalId());
|
||||
assertEquals(penalty1LoanChargeExternalId, waiveLoanChargeResult.getResourceExternalId());
|
||||
|
||||
GetLoansLoanIdTransactionsTransactionIdResponse response = loanTransactionHelper.getLoanTransactionDetails((long) loanId,
|
||||
waiveChargeExternalIdStr);
|
||||
@@ -157,9 +193,10 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
assertEquals(waiveChargeExternalIdStr, response.getExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
waiveLoanChargeResult = loanTransactionHelper.waiveLoanCharge((long) loanId, (long) penalty1LoanChargeId,
|
||||
waiveLoanChargeResult = loanTransactionHelper.waiveLoanCharge(loanExternalIdStr, (long) penalty1LoanChargeId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest());
|
||||
assertNotNull(waiveLoanChargeResult.getSubResourceExternalId());
|
||||
assertEquals(penalty1LoanChargeExternalId, waiveLoanChargeResult.getResourceExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge(loanExternalIdStr, waiveLoanChargeResult.getSubResourceId());
|
||||
@@ -167,9 +204,10 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
|
||||
// Check whether an external id was generated
|
||||
waiveChargeExternalIdStr = UUID.randomUUID().toString();
|
||||
waiveLoanChargeResult = loanTransactionHelper.waiveLoanCharge((long) loanId, (long) penalty1LoanChargeId,
|
||||
waiveLoanChargeResult = loanTransactionHelper.waiveLoanCharge(loanExternalIdStr, penalty1LoanChargeExternalId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest().externalId(waiveChargeExternalIdStr));
|
||||
assertEquals(waiveChargeExternalIdStr, waiveLoanChargeResult.getSubResourceExternalId());
|
||||
assertEquals(penalty1LoanChargeExternalId, waiveLoanChargeResult.getResourceExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
undoWaiveLoanChargeResult = loanTransactionHelper.undoWaiveLoanCharge(loanExternalIdStr,
|
||||
@@ -389,7 +427,73 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
final HashMap loanWithInterest = this.loanTransactionHelper.getLoanId(loanApplicationJSON, "");
|
||||
Integer loanWithInterestId = (Integer) loanWithInterest.get("resourceId");
|
||||
|
||||
String chargeExternalId = UUID.randomUUID().toString();
|
||||
PostLoansLoanIdChargesResponse loanChargeForApprovedLoanResult = this.loanTransactionHelper.addLoanCharge(loanExternalIdStr,
|
||||
new PostLoansLoanIdChargesRequest().externalId(chargeExternalId).amount(1.0).chargeId((long) penalty)
|
||||
.dateFormat("dd MMMM yyyy").locale("en").dueDate(formattedDate));
|
||||
|
||||
PutLoansLoanIdChargesChargeIdResponse updatedLoanChargeForApprovedLoanResult = this.loanTransactionHelper.updateLoanCharge(
|
||||
(long) loanWithInterestId, loanChargeForApprovedLoanResult.getResourceId(),
|
||||
new PutLoansLoanIdChargesChargeIdRequest().amount(2.0));
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), updatedLoanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(),
|
||||
updatedLoanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
|
||||
DeleteLoansLoanIdChargesChargeIdResponse deleteLoanChargeResult = this.loanTransactionHelper
|
||||
.deleteLoanCharge((long) loanWithInterestId, loanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), deleteLoanChargeResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(), deleteLoanChargeResult.getResourceExternalId());
|
||||
|
||||
chargeExternalId = UUID.randomUUID().toString();
|
||||
loanChargeForApprovedLoanResult = this.loanTransactionHelper.addLoanCharge(loanExternalIdStr,
|
||||
new PostLoansLoanIdChargesRequest().externalId(chargeExternalId).amount(1.0).chargeId((long) penalty)
|
||||
.dateFormat("dd MMMM yyyy").locale("en").dueDate(formattedDate));
|
||||
|
||||
updatedLoanChargeForApprovedLoanResult = this.loanTransactionHelper.updateLoanCharge((long) loanWithInterestId,
|
||||
loanChargeForApprovedLoanResult.getResourceExternalId(), new PutLoansLoanIdChargesChargeIdRequest().amount(1.0));
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), updatedLoanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(),
|
||||
updatedLoanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
|
||||
deleteLoanChargeResult = this.loanTransactionHelper.deleteLoanCharge((long) loanWithInterestId,
|
||||
loanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), deleteLoanChargeResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(), deleteLoanChargeResult.getResourceExternalId());
|
||||
|
||||
chargeExternalId = UUID.randomUUID().toString();
|
||||
loanChargeForApprovedLoanResult = this.loanTransactionHelper.addLoanCharge(loanExternalIdStr,
|
||||
new PostLoansLoanIdChargesRequest().externalId(chargeExternalId).amount(1.0).chargeId((long) penalty)
|
||||
.dateFormat("dd MMMM yyyy").locale("en").dueDate(formattedDate));
|
||||
|
||||
updatedLoanChargeForApprovedLoanResult = this.loanTransactionHelper.updateLoanCharge(loanExternalIdStr,
|
||||
loanChargeForApprovedLoanResult.getResourceId(), new PutLoansLoanIdChargesChargeIdRequest().amount(1.0));
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), updatedLoanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(),
|
||||
updatedLoanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
|
||||
deleteLoanChargeResult = this.loanTransactionHelper.deleteLoanCharge(loanExternalIdStr,
|
||||
loanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), deleteLoanChargeResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(), deleteLoanChargeResult.getResourceExternalId());
|
||||
|
||||
chargeExternalId = UUID.randomUUID().toString();
|
||||
loanChargeForApprovedLoanResult = this.loanTransactionHelper.addLoanCharge(loanExternalIdStr,
|
||||
new PostLoansLoanIdChargesRequest().externalId(chargeExternalId).amount(1.0).chargeId((long) penalty)
|
||||
.dateFormat("dd MMMM yyyy").locale("en").dueDate(formattedDate));
|
||||
|
||||
updatedLoanChargeForApprovedLoanResult = this.loanTransactionHelper.updateLoanCharge(loanExternalIdStr,
|
||||
loanChargeForApprovedLoanResult.getResourceExternalId(), new PutLoansLoanIdChargesChargeIdRequest().amount(2.0));
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), updatedLoanChargeForApprovedLoanResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(),
|
||||
updatedLoanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
|
||||
deleteLoanChargeResult = this.loanTransactionHelper.deleteLoanCharge(loanExternalIdStr,
|
||||
loanChargeForApprovedLoanResult.getResourceExternalId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceId(), deleteLoanChargeResult.getResourceId());
|
||||
assertEquals(loanChargeForApprovedLoanResult.getResourceExternalId(), deleteLoanChargeResult.getResourceExternalId());
|
||||
|
||||
this.loanTransactionHelper.approveLoan(formattedDate, loanWithInterestId);
|
||||
|
||||
final HashMap disbursedLoanWithInterestResult = this.loanTransactionHelper.disburseLoan(formattedDate, loanWithInterestId, "1000",
|
||||
null);
|
||||
// Check whether an external id was generated
|
||||
@@ -397,14 +501,16 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
LocalDate aMonthBeforePlus3Days = aMonthBefore.plusDays(3);
|
||||
formattedDate = dateFormatter.format(aMonthBeforePlus3Days);
|
||||
|
||||
Integer penalty3LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanWithInterestId,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty), formattedDate, "10"));
|
||||
String penalty3LoanChargeExternalId = UUID.randomUUID().toString();
|
||||
Integer penalty3LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanWithInterestId, LoanTransactionHelper
|
||||
.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty), formattedDate, "10", penalty3LoanChargeExternalId));
|
||||
|
||||
Integer penalty4LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanWithInterestId,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty2), formattedDate, "1000"));
|
||||
|
||||
Integer penalty5LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanWithInterestId,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty2), formattedDate, "1000"));
|
||||
String penalty5LoanChargeExternalId = UUID.randomUUID().toString();
|
||||
Integer penalty5LoanChargeId = this.loanTransactionHelper.addChargesForLoan(loanWithInterestId, LoanTransactionHelper
|
||||
.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(penalty2), formattedDate, "1000", penalty5LoanChargeExternalId));
|
||||
|
||||
// Check whether an external id was generated
|
||||
final PostLoansLoanIdTransactionsResponse waiveInterestResult = loanTransactionHelper.makeWaiveInterest(loanExternalIdStr,
|
||||
@@ -520,6 +626,7 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
(long) penalty3LoanChargeId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest().externalId(chargeAdjustmentExternalIdStr).amount(1.0).locale("en"));
|
||||
assertEquals(chargeAdjustmentExternalIdStr, chargeAdjustmentResult.getSubResourceExternalId());
|
||||
assertEquals(penalty3LoanChargeExternalId, chargeAdjustmentResult.getResourceExternalId());
|
||||
|
||||
response = loanTransactionHelper.getLoanTransactionDetails((long) loanWithInterestId, chargeAdjustmentExternalIdStr);
|
||||
assertEquals(chargeAdjustmentExternalIdStr, response.getExternalId());
|
||||
@@ -529,23 +636,27 @@ public class ExternalIdSupportIntegrationTest extends IntegrationTest {
|
||||
assertEquals(chargeAdjustmentExternalIdStr, response.getExternalId());
|
||||
|
||||
// Check whether an external id was generated
|
||||
chargeAdjustmentResult = loanTransactionHelper.chargeAdjustment((long) loanWithInterestId, (long) penalty3LoanChargeId,
|
||||
chargeAdjustmentResult = loanTransactionHelper.chargeAdjustment(loanExternalIdStr, penalty3LoanChargeExternalId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest().amount(1.0).locale("en"));
|
||||
assertNotNull(chargeAdjustmentResult.getSubResourceExternalId());
|
||||
assertEquals(penalty3LoanChargeExternalId, chargeAdjustmentResult.getResourceExternalId());
|
||||
|
||||
HashMap payChargeResult = this.loanTransactionHelper.payChargesForLoan(loanWithInterestId, penalty4LoanChargeId,
|
||||
LoanTransactionHelper.getPayChargeJSON(formattedDate, null), "");
|
||||
assertNotNull(payChargeResult.get("subResourceExternalId"));
|
||||
PostLoansLoanIdChargesChargeIdResponse payChargeResult = this.loanTransactionHelper.payLoanCharge(loanExternalIdStr,
|
||||
(long) penalty4LoanChargeId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest().locale("en").dateFormat("dd MMMM yyyy").transactionDate(formattedDate));
|
||||
assertNotNull(payChargeResult.getSubResourceExternalId());
|
||||
assertNotNull(payChargeResult.getResourceExternalId());
|
||||
|
||||
String payChargeExternalIdStr = UUID.randomUUID().toString();
|
||||
payChargeResult = this.loanTransactionHelper.payChargesForLoan(loanWithInterestId, penalty5LoanChargeId,
|
||||
LoanTransactionHelper.getPayChargeJSON(formattedDate, null, payChargeExternalIdStr), "");
|
||||
assertEquals(payChargeExternalIdStr, payChargeResult.get("subResourceExternalId"));
|
||||
payChargeResult = this.loanTransactionHelper.payLoanCharge(loanExternalIdStr, penalty5LoanChargeExternalId,
|
||||
new PostLoansLoanIdChargesChargeIdRequest().locale("en").dateFormat("dd MMMM yyyy").transactionDate(formattedDate)
|
||||
.externalId(payChargeExternalIdStr));
|
||||
assertEquals(payChargeExternalIdStr, payChargeResult.getSubResourceExternalId());
|
||||
assertEquals(penalty5LoanChargeExternalId, payChargeResult.getResourceExternalId());
|
||||
|
||||
response = loanTransactionHelper.getLoanTransactionDetails((long) loanWithInterestId, payChargeExternalIdStr);
|
||||
assertEquals(payChargeExternalIdStr, response.getExternalId());
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr,
|
||||
Long.valueOf(payChargeResult.get("subResourceId").toString()));
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr, payChargeResult.getSubResourceId());
|
||||
assertEquals(payChargeExternalIdStr, response.getExternalId());
|
||||
response = loanTransactionHelper.getLoanTransactionDetails(loanExternalIdStr, payChargeExternalIdStr);
|
||||
assertEquals(payChargeExternalIdStr, response.getExternalId());
|
||||
|
||||
+127
-9
@@ -42,8 +42,11 @@ import java.util.Map;
|
||||
import javax.ws.rs.core.HttpHeaders;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.fineract.client.models.DeleteLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.GetDelinquencyTagHistoryResponse;
|
||||
import org.apache.fineract.client.models.GetLoanProductsProductIdResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdChargesTemplateResponse;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdCollectionData;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdRepaymentPeriod;
|
||||
import org.apache.fineract.client.models.GetLoansLoanIdRepaymentSchedule;
|
||||
@@ -53,11 +56,14 @@ import org.apache.fineract.client.models.GetLoansLoanIdTransactionsTransactionId
|
||||
import org.apache.fineract.client.models.GetPaymentTypesResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdChargesResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsResponse;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsTransactionIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdRequest;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdChargesChargeIdResponse;
|
||||
import org.apache.fineract.client.models.PutLoansLoanIdResponse;
|
||||
import org.apache.fineract.client.util.JSON;
|
||||
import org.apache.fineract.integrationtests.client.IntegrationTest;
|
||||
@@ -254,6 +260,22 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return Utils.performServerGet(requestSpec, responseSpec, GET_LOAN_CHARGES_URL, "");
|
||||
}
|
||||
|
||||
public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final Long loanId) {
|
||||
return ok(fineract().loanCharges.retrieveAllLoanCharges(loanId));
|
||||
}
|
||||
|
||||
public List<GetLoansLoanIdChargesChargeIdResponse> getLoanCharges(final String loanExternalId) {
|
||||
return ok(fineract().loanCharges.retrieveAllLoanCharges1(loanExternalId));
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final Long loanId) {
|
||||
return ok(fineract().loanCharges.retrieveTemplate8(loanId));
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesTemplateResponse getLoanChargeTemplate(final String loanExternalId) {
|
||||
return ok(fineract().loanCharges.retrieveTemplate9(loanExternalId));
|
||||
}
|
||||
|
||||
public List getRepaymentTemplate(final Integer loanId) {
|
||||
final String GET_REPAYMENTS_URL = "/fineract-provider/api/v1/loans/" + loanId + "/transactions/template?command=repayment&"
|
||||
+ Utils.TENANT_IDENTIFIER;
|
||||
@@ -503,9 +525,24 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return Utils.performServerPut(requestSpec, responseSpec, TRANSAC_URL, "", "");
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final Long chargeId,
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final Long loanChargeId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge1(loanId, chargeId, request, "waive"));
|
||||
return ok(fineract().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "waive"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final Long loanChargeId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "waive"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final Long loanId, final String loanChargeExternalId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge3(loanId, loanChargeExternalId, request, "waive"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse waiveLoanCharge(final String loanExternalId, final String loanChargeExternalId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "waive"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdTransactionsResponse makeLoanRepayment(final String loanExternalId,
|
||||
@@ -674,6 +711,14 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
getWithdrawLoanApplicationBodyAsJSON(date));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesResponse addLoanCharge(final Long loanId, final PostLoansLoanIdChargesRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge(loanId, request, ""));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesResponse addLoanCharge(final String loanExternalId, final PostLoansLoanIdChargesRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge1(loanExternalId, request, ""));
|
||||
}
|
||||
|
||||
public Integer addChargesForLoan(final Integer loanId, final String request) {
|
||||
log.info("--------------------------------- ADD CHARGES FOR LOAN --------------------------------");
|
||||
final String ADD_CHARGES_URL = LOAN_ACCOUNT_URL + "/" + loanId + "/charges?" + Utils.TENANT_IDENTIFIER;
|
||||
@@ -710,6 +755,42 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final Long loanChargeId,
|
||||
final PutLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.updateLoanCharge(loanId, loanChargeId, request));
|
||||
}
|
||||
|
||||
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final Long loanId, final String loanChargeExternalId,
|
||||
final PutLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.updateLoanCharge1(loanId, loanChargeExternalId, request));
|
||||
}
|
||||
|
||||
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final Long loanChargeId,
|
||||
final PutLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.updateLoanCharge2(loanExternalId, loanChargeId, request));
|
||||
}
|
||||
|
||||
public PutLoansLoanIdChargesChargeIdResponse updateLoanCharge(final String loanExternalId, final String loanChargeExternalId,
|
||||
final PutLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.updateLoanCharge3(loanExternalId, loanChargeExternalId, request));
|
||||
}
|
||||
|
||||
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final Long loanChargeId) {
|
||||
return ok(fineract().loanCharges.deleteLoanCharge(loanId, loanChargeId));
|
||||
}
|
||||
|
||||
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final Long loanId, final String loanChargeExternalId) {
|
||||
return ok(fineract().loanCharges.deleteLoanCharge1(loanId, loanChargeExternalId));
|
||||
}
|
||||
|
||||
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final Long loanChargeId) {
|
||||
return ok(fineract().loanCharges.deleteLoanCharge2(loanExternalId, loanChargeId));
|
||||
}
|
||||
|
||||
public DeleteLoansLoanIdChargesChargeIdResponse deleteLoanCharge(final String loanExternalId, final String loanChargeExternalId) {
|
||||
return ok(fineract().loanCharges.deleteLoanCharge3(loanExternalId, loanChargeExternalId));
|
||||
}
|
||||
|
||||
public Integer deleteChargesForLoan(final Integer loanId, final Integer loanchargeId) {
|
||||
log.info("--------------------------------- DELETE CHARGES FOR LOAN --------------------------------");
|
||||
final String DELETE_CHARGES_URL = "/fineract-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId + "?"
|
||||
@@ -735,7 +816,12 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final Long loanId, final Long chargeId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge1(loanId, chargeId, request, "adjustment"));
|
||||
return ok(fineract().loanCharges.executeLoanCharge2(loanId, chargeId, request, "adjustment"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse chargeAdjustment(final String loanExternalId, final String loanChargeExternalId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "adjustment"));
|
||||
}
|
||||
|
||||
public Integer undoWaiveChargesForLoanReturnResourceId(final Integer loanId, final Integer transactionId, final String body) {
|
||||
@@ -754,11 +840,19 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public HashMap payChargesForLoan(final Integer loanId, final Integer loanchargeId, final String json, final String responseAttribute) {
|
||||
log.info("--------------------------------- WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String CHARGES_URL = "/fineract-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId + "?command=pay&"
|
||||
+ Utils.TENANT_IDENTIFIER;
|
||||
return Utils.performServerPost(requestSpec, responseSpec, CHARGES_URL, json, responseAttribute);
|
||||
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final Long loanId, final Long loanChargeId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge2(loanId, loanChargeId, request, "pay"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final Long loanChargeId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge4(loanExternalId, loanChargeId, request, "pay"));
|
||||
}
|
||||
|
||||
public PostLoansLoanIdChargesChargeIdResponse payLoanCharge(final String loanExternalId, final String loanChargeExternalId,
|
||||
final PostLoansLoanIdChargesChargeIdRequest request) {
|
||||
return ok(fineract().loanCharges.executeLoanCharge5(loanExternalId, loanChargeExternalId, request, "pay"));
|
||||
}
|
||||
|
||||
public ArrayList<HashMap> getLoanTransactionDetails(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
|
||||
@@ -774,6 +868,22 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
return Utils.performServerGet(requestSpec, responseSpec, GET_LOAN_CHARGES_URL, "");
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final Long loanChargeId) {
|
||||
return ok(fineract().loanCharges.retrieveLoanCharge(loanId, loanChargeId));
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final Long loanChargeId) {
|
||||
return ok(fineract().loanCharges.retrieveLoanCharge2(loanExternalId, loanChargeId));
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final Long loanId, final String loanChargeExternalId) {
|
||||
return ok(fineract().loanCharges.retrieveLoanCharge1(loanId, loanChargeExternalId));
|
||||
}
|
||||
|
||||
public GetLoansLoanIdChargesChargeIdResponse getLoanCharge(final String loanExternalId, final String loanChargeExternalId) {
|
||||
return ok(fineract().loanCharges.retrieveLoanCharge3(loanExternalId, loanChargeExternalId));
|
||||
}
|
||||
|
||||
public Object getLoanTransactionDetails(final Integer loanId, final Integer txnId, final String param) {
|
||||
final String GET_LOAN_CHARGES_URL = "/fineract-provider/api/v1/loans/" + loanId + "/transactions/" + txnId + "?"
|
||||
+ Utils.TENANT_IDENTIFIER;
|
||||
@@ -997,16 +1107,24 @@ public class LoanTransactionHelper extends IntegrationTest {
|
||||
}
|
||||
|
||||
public static String getSpecifiedDueDateChargesForLoanAsJSON(final String chargeId) {
|
||||
return getSpecifiedDueDateChargesForLoanAsJSON(chargeId, "12 January 2013", "100");
|
||||
return getSpecifiedDueDateChargesForLoanAsJSON(chargeId, "12 January 2013", "100", null);
|
||||
}
|
||||
|
||||
public static String getSpecifiedDueDateChargesForLoanAsJSON(final String chargeId, final String dueDate, final String amount) {
|
||||
return getSpecifiedDueDateChargesForLoanAsJSON(chargeId, dueDate, amount, null);
|
||||
}
|
||||
|
||||
public static String getSpecifiedDueDateChargesForLoanAsJSON(final String chargeId, final String dueDate, final String amount,
|
||||
final String externalId) {
|
||||
final HashMap<String, String> map = new HashMap<>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("amount", amount);
|
||||
map.put("dueDate", dueDate);
|
||||
map.put("chargeId", chargeId);
|
||||
if (externalId != null) {
|
||||
map.put("externalId", externalId);
|
||||
}
|
||||
String json = new Gson().toJson(map);
|
||||
log.info("{}", json);
|
||||
return json;
|
||||
|
||||
Reference in New Issue
Block a user