|
53 | 53 | import org.apache.fineract.client.models.PutWorkingCapitalLoanProductsProductIdResponse; |
54 | 54 | import org.apache.fineract.client.models.StringEnumOptionData; |
55 | 55 | import org.apache.fineract.client.models.WorkingCapitalBreachRequest; |
| 56 | +import org.apache.fineract.client.models.WorkingCapitalNearBreachRequest; |
56 | 57 | import org.apache.fineract.test.data.accounttype.AccountTypeResolver; |
57 | 58 | import org.apache.fineract.test.data.accounttype.DefaultAccountType; |
58 | 59 | import org.apache.fineract.test.data.workingcapitalproduct.DefaultWorkingCapitalLoanProduct; |
@@ -157,7 +158,7 @@ public void createWorkingCapitalLoanProductWithBreachIdAndOverrides() { |
157 | 158 |
|
158 | 159 | @When("Admin creates a Working Capital Loan Product with custom breach config and overrides enabled:") |
159 | 160 | public void createWorkingCapitalLoanProductWithCustomBreachConfig(final DataTable table) { |
160 | | - final Map<String, String> data = table.asMaps().get(0); |
| 161 | + final Map<String, String> data = table.asMaps().getFirst(); |
161 | 162 |
|
162 | 163 | final String breachName = "WC Breach " + Utils.randomStringGenerator("", 10); |
163 | 164 | final WorkingCapitalBreachRequest breachRequest = new WorkingCapitalBreachRequest().name(breachName) |
@@ -185,6 +186,46 @@ public void createWorkingCapitalLoanProductWithCustomBreachConfig(final DataTabl |
185 | 186 | checkWorkingCapitalLoanProductCreate(); |
186 | 187 | } |
187 | 188 |
|
| 189 | + @When("Admin creates a Working Capital Loan Product with breach and near breach config and overrides enabled:") |
| 190 | + public void createWorkingCapitalLoanProductWithBreachAndNearBreachConfig(final DataTable table) { |
| 191 | + final Map<String, String> data = table.asMaps().getFirst(); |
| 192 | + |
| 193 | + final String breachName = "WC Breach " + Utils.randomStringGenerator("", 10); |
| 194 | + final WorkingCapitalBreachRequest breachRequest = new WorkingCapitalBreachRequest().name(breachName) |
| 195 | + .breachFrequency(Integer.valueOf(data.get("breachFrequency"))).breachFrequencyType(data.get("breachFrequencyType")) |
| 196 | + .breachAmountCalculationType(data.get("breachAmountCalculationType")) |
| 197 | + .breachAmount(new BigDecimal(data.get("breachAmount"))); |
| 198 | + final CommandProcessingResult breachCreateResponse = ok( |
| 199 | + () -> fineractFeignClient.workingCapitalBreaches().createWorkingCapitalBreach(breachRequest)); |
| 200 | + final Long breachId = breachCreateResponse.getResourceId(); |
| 201 | + testContext().set(TestContextKey.WORKING_CAPITAL_BREACH_ID, breachId); |
| 202 | + |
| 203 | + final WorkingCapitalNearBreachRequest nearBreachRequest = new WorkingCapitalNearBreachRequest() |
| 204 | + .nearBreachName("WC Near Breach " + Utils.randomStringGenerator("", 10)) |
| 205 | + .nearBreachFrequency(Integer.valueOf(data.get("nearBreachFrequency"))) |
| 206 | + .nearBreachFrequencyType(data.get("nearBreachFrequencyType")) |
| 207 | + .nearBreachThreshold(new BigDecimal(data.get("nearBreachThreshold"))); |
| 208 | + final CommandProcessingResult nearBreachCreateResponse = ok( |
| 209 | + () -> fineractFeignClient.workingCapitalNearBreaches().createWorkingCapitalNearBreach(nearBreachRequest)); |
| 210 | + final Long nearBreachId = nearBreachCreateResponse.getResourceId(); |
| 211 | + |
| 212 | + final String graceDaysStr = data.get("delinquencyGraceDays"); |
| 213 | + final Integer graceDays = graceDaysStr != null && !graceDaysStr.isEmpty() ? Integer.valueOf(graceDaysStr) : null; |
| 214 | + |
| 215 | + final String name = DefaultWorkingCapitalLoanProduct.WCLP.getName() + Utils.randomStringGenerator("_", 10); |
| 216 | + final PostWorkingCapitalLoanProductsRequest request = workingCapitalRequestFactory |
| 217 | + .defaultWorkingCapitalLoanProductAllowAttributesOverrideRequest() // |
| 218 | + .name(name) // |
| 219 | + .breachId(breachId) // |
| 220 | + .nearBreachId(nearBreachId) // |
| 221 | + .delinquencyGraceDays(graceDays); |
| 222 | + |
| 223 | + final PostWorkingCapitalLoanProductsResponse response = createWorkingCapitalLoanProduct(request); |
| 224 | + testContext().set(TestContextKey.WORKING_CAPITAL_LOAN_PRODUCT_CREATE_RESPONSE, response); |
| 225 | + testContext().set(TestContextKey.WORKING_CAPITAL_LOAN_PRODUCT_CREATE_REQUEST, request); |
| 226 | + checkWorkingCapitalLoanProductCreate(); |
| 227 | + } |
| 228 | + |
188 | 229 | @When("Admin creates a new Working Capital Loan Product with external-id") |
189 | 230 | public void createWorkingCapitalLoanProductWithExternalId() { |
190 | 231 | final String workingCapitalProductDefaultName = DefaultWorkingCapitalLoanProduct.WCLP.getName() |
|
0 commit comments