Skip to content

Commit 98c6dbb

Browse files
FINERACT-2455: e2e test scenarios for period payment rate change
1 parent 5cad8ee commit 98c6dbb

9 files changed

Lines changed: 2030 additions & 1055 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: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
import java.time.format.DateTimeFormatter;
2323
import lombok.RequiredArgsConstructor;
2424
import org.apache.fineract.client.models.PostWorkingCapitalLoansDelinquencyActionRequest;
25+
import org.apache.fineract.client.models.PostWorkingCapitalLoansLoanIdRateUndoRequest;
2526
import org.apache.fineract.client.models.PostWorkingCapitalLoansLoanIdRequest;
2627
import org.apache.fineract.client.models.PostWorkingCapitalLoansRequest;
2728
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdDiscountRequest;
29+
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdRateRequest;
2830
import org.apache.fineract.client.models.PutWorkingCapitalLoansLoanIdRequest;
2931
import org.apache.fineract.test.data.workingcapitalproduct.DefaultWorkingCapitalLoanProduct;
3032
import org.apache.fineract.test.data.workingcapitalproduct.WorkingCapitalLoanProductResolver;
@@ -45,6 +47,7 @@ public class WorkingCapitalLoanRequestFactory {
4547
public static final BigDecimal DEFAULT_TOTAL_PAYMENT = new BigDecimal(100);
4648
public static final BigDecimal DEFAULT_PERIOD_PAYMENT_RATE = new BigDecimal(1);
4749
public static final BigDecimal DEFAULT_DISCOUNT_ZERO = BigDecimal.ZERO;
50+
public static final BigDecimal DEFAULT_PAYMENT_RATE = new BigDecimal(15);
4851

4952
public static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT);
5053
public static final String DATE_SUBMIT_STRING = FORMATTER.format(Utils.now().minusMonths(1L));
@@ -121,4 +124,17 @@ public PutWorkingCapitalLoansLoanIdDiscountRequest defaultWorkingCapitalLoanUpda
121124
.dateFormat(DATE_FORMAT)//
122125
.locale(DEFAULT_LOCALE);//
123126
}
127+
128+
public PutWorkingCapitalLoansLoanIdRateRequest defaultWorkingCapitalLoanUpdateRateRequest() {
129+
return new PutWorkingCapitalLoansLoanIdRateRequest() //
130+
.periodPaymentRate(DEFAULT_PAYMENT_RATE) //
131+
.dateFormat(DATE_FORMAT) //
132+
.locale(DEFAULT_LOCALE); //
133+
}
134+
135+
public PostWorkingCapitalLoansLoanIdRateUndoRequest defaultWorkingCapitalLoanUndoRateRequest() {
136+
return new PostWorkingCapitalLoansLoanIdRateUndoRequest() //
137+
.dateFormat(DATE_FORMAT) //
138+
.locale(DEFAULT_LOCALE); //
139+
}
124140
}

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
@@ -331,6 +331,7 @@ public abstract class TestContextKey {
331331
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_NEAR_BREACH = "workingCapitalLoanProductCreateResponseWCLPBreachNearBreach";
332332
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_DISALLOW_OVERRIDES = "workingCapitalLoanProductCreateResponseWCLPBreachDisallowOverrides";
333333
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_BREACH_NEAR_BREACH_DISALLOW_OVERRIDES = "workingCapitalLoanProductCreateResponseWCLPBreachNearBreachDisallowOverrides";
334+
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_WCLP_PERIOD_PAYMENT_RATE = "workingCapitalLoanProductCreateResponseWCLPPeriodPaymentRate";
334335
public static final String WC_LOAN_IDS = "wcLoanIds";
335336
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_REQUEST_FOR_UPDATE_WCLP = "workingCapitalLoanProductCreateRequestForUpdateWCLP";
336337
public static final String DEFAULT_WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE_FOR_UPDATE_WCLP = "workingCapitalLoanProductCreateResponseForUpdateWCLP";
@@ -358,4 +359,5 @@ public abstract class TestContextKey {
358359
public static final String WORKING_CAPITAL_NEAR_BREACH_ID_FOR_UPDATE = "workingCapitalNearBreachIdForUpdate";
359360
public static final String WORKING_CAPITAL_NEAR_BREACH_CREATE_REQUEST_FOR_UPDATE = "workingCapitalNearBreachCreateRequestForUpdate";
360361
public static final String WC_LOAN_ACTION_TEMPLATE_RESPONSE = "wcLoanActionTemplateResponse";
362+
public static final String WORKING_CAPITAL_LOAN_RATE_CHANGE_ID = "wcLoanRateChangeId";
361363
}

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)