Skip to content

Commit a82c065

Browse files
committed
FINERACT-2455: e2e test scenarios for period payment rate change
1 parent d1fdabe commit a82c065

10 files changed

Lines changed: 2057 additions & 1056 deletions

File tree

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/workingcapitalproduct/DefaultWorkingCapitalLoanProduct.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ public enum DefaultWorkingCapitalLoanProduct implements WorkingCapitalLoanProduc
2929
WCLP_BREACH, //
3030
WCLP_BREACH_NEAR_BREACH, //
3131
WCLP_BREACH_DISALLOW_ATTRIBUTES_OVERRIDE, //
32-
WCLP_BREACH_NEAR_BREACH_DISALLOW_ATTRIBUTES_OVERRIDE; //
32+
WCLP_BREACH_NEAR_BREACH_DISALLOW_ATTRIBUTES_OVERRIDE, //
33+
WCLP_PERIOD_PAYMENT_RATE; //
3334

3435
@Override
3536
public String getName() {

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/factory/WorkingCapitalLoanRequestFactory.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.fineract.client.models.PostWorkingCapitalLoansLoanIdRequest;
2626
import org.apache.fineract.client.models.PostWorkingCapitalLoansRequest;
2727
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdDiscountRequest;
28+
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdRateRequest;
2829
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdRequest;
2930
import org.apache.fineract.test.data.workingcapitalproduct.DefaultWorkingCapitalLoanProduct;
3031
import org.apache.fineract.test.data.workingcapitalproduct.WorkingCapitalLoanProductResolver;
@@ -45,6 +46,7 @@ public class WorkingCapitalLoanRequestFactory {
4546
public static final BigDecimal DEFAULT_TOTAL_PAYMENT = new BigDecimal(100);
4647
public static final BigDecimal DEFAULT_PERIOD_PAYMENT_RATE = new BigDecimal(1);
4748
public static final BigDecimal DEFAULT_DISCOUNT_ZERO = BigDecimal.ZERO;
49+
public static final BigDecimal DEFAULT_PAYMENT_RATE = new BigDecimal(15);
4850

4951
public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT);
5052
public static final String DATE_SUBMIT_STRING = FORMATTER.format(Utils.now().minusMonths(1L));
@@ -121,4 +123,10 @@ public PutWorkingCapitalLoansLoanIdDiscountRequest defaultWorkingCapitalLoanUpda
121123
.dateFormat(DATE_FORMAT)//
122124
.locale(DEFAULT_LOCALE);//
123125
}
126+
127+
public PutWorkingCapitalLoansLoanIdRateRequest defaultWorkingCapitalLoanUpdateRateRequest() {
128+
return new PutWorkingCapitalLoansLoanIdRateRequest() //
129+
.periodPaymentRate(DEFAULT_PAYMENT_RATE) //
130+
.locale(DEFAULT_LOCALE); //
131+
}
124132
}

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/ErrorMessageHelper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,4 +1118,8 @@ public static String nearBreachMustBeLowerThenBreachFailure() {
11181118
public static String nearBreachIdNotFoundFailure(long nearBreachId) {
11191119
return String.format("Working Capital Near Breach with id %s was not found.", nearBreachId);
11201120
}
1121+
1122+
public static String periodPaymentRateOnNonActiveLoanFailure() {
1123+
return "Period payment rate change is allowed only for active loans";
1124+
}
11211125
}

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/WorkingCapitalLoanAccountStepDef.java

Lines changed: 1219 additions & 1053 deletions
Large diffs are not rendered by default.

fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ public abstract class TestContextKey {
332332
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_NEAR_BREACH = "workingCapitalLoanProductCreateResponseWCLPBreachNearBreach";
333333
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_DISALLOW_OVERRIDES = "workingCapitalLoanProductCreateResponseWCLPBreachDisallowOverrides";
334334
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_NEAR_BREACH_DISALLOW_OVERRIDES = "workingCapitalLoanProductCreateResponseWCLPBreachNearBreachDisallowOverrides";
335+
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_PERIOD_PAYMENT_RATE = "workingCapitalLoanProductCreateResponseWCLPPeriodPaymentRate";
335336
public static final String WC_LOAN_IDS = "wcLoanIds";
336337
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_REQUEST_FOR_UPDATE_WCLP = "workingCapitalLoanProductCreateRequestForUpdateWCLP";
337338
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_FOR_UPDATE_WCLP = "workingCapitalLoanProductCreateResponseForUpdateWCLP";
@@ -359,4 +360,5 @@ public abstract class TestContextKey {
359360
public static final String WORKING_CAPITAL_NEAR_BREACH_ID_FOR_UPDATE = "workingCapitalNearBreachIdForUpdate";
360361
public static final String WORKING_CAPITAL_NEAR_BREACH_CREATE_REQUEST_FOR_UPDATE = "workingCapitalNearBreachCreateRequestForUpdate";
361362
public static final String WC_LOAN_ACTION_TEMPLATE_RESPONSE = "wcLoanActionTemplateResponse";
363+
public static final String WORKING_CAPITAL_LOAN_RATE_CHANGE_ID = "wcLoanRateChangeId";
362364
}

fineract-e2e-tests-runner/src/test/java/org/apache/fineract/test/initializer/global/WorkingCapitalInitializerStep.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,19 @@ public void initialize() throws Exception {
149149
TestContext.INSTANCE.set(
150150
TestContextKey.DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_NEAR_BREACH_DISALLOW_OVERRIDES,
151151
responseDefaultWCPLBreachNearBreachDisallowOverrides);
152+
153+
final String workingCapitalProductPeriodPaymentRateDefaultName = DefaultWorkingCapitalLoanProduct.WCLP_PERIOD_PAYMENT_RATE
154+
.getName();
155+
final PostWorkingCapitalLoanProductsRequest defaultWCPLPeriodPaymentRateRequest = workingCapitalRequestFactory
156+
.defaultWorkingCapitalLoanProductAllowAttributesOverrideRequest() //
157+
.minPeriodPaymentRate(new BigDecimal(1)) //
158+
.maxPeriodPaymentRate(new BigDecimal(95)) //
159+
.periodPaymentRate(new BigDecimal(10)) //
160+
.name(workingCapitalProductPeriodPaymentRateDefaultName);//
161+
final PostWorkingCapitalLoanProductsResponse responseDefaultWCPLPeriodPaymentRate = createWorkingCapitalLoanProductIdempotent(
162+
defaultWCPLPeriodPaymentRateRequest);
163+
TestContext.INSTANCE.set(TestContextKey.DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_PERIOD_PAYMENT_RATE,
164+
responseDefaultWCPLPeriodPaymentRate);
152165
}
153166

154167
private PostWorkingCapitalLoanProductsResponse createWorkingCapitalLoanProductIdempotent(

0 commit comments

Comments
 (0)