|
31 | 31 | import java.time.format.DateTimeFormatter; |
32 | 32 | import java.util.ArrayList; |
33 | 33 | import java.util.Arrays; |
34 | | -import java.util.LinkedHashMap; |
35 | 34 | import java.util.List; |
36 | 35 | import java.util.Map; |
37 | 36 | import java.util.Set; |
@@ -72,29 +71,11 @@ public void createReAgingTransaction(DataTable table) throws IOException { |
72 | 71 | Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE); |
73 | 72 | long loanId = loanResponse.body().getLoanId(); |
74 | 73 |
|
75 | | - List<List<String>> tableRows = table.asLists(); |
76 | | - List<String> headers = tableRows.get(0); |
77 | | - List<String> values = tableRows.get(1); |
78 | | - |
79 | | - Map<String, String> rowData = new LinkedHashMap<>(); |
80 | | - int columnCount = Math.min(headers.size(), values.size()); |
81 | | - for (int i = 0; i < columnCount; i++) { |
82 | | - rowData.put(headers.get(i), values.get(i)); |
83 | | - } |
84 | | - |
85 | | - int frequencyNumber = Integer.parseInt(resolveValue(rowData, values, 0, "frequencyNumber")); |
86 | | - String frequencyType = resolveValue(rowData, values, 1, "frequencyType"); |
87 | | - String startDate = resolveValue(rowData, values, 2, "startDate"); |
88 | | - int numberOfInstallments = Integer.parseInt(resolveValue(rowData, values, 3, "numberOfInstallments")); |
89 | | - |
90 | | - PostLoansLoanIdTransactionsRequest reAgingRequest = LoanRequestFactory// |
91 | | - .defaultReAgingRequest()// |
92 | | - .frequencyNumber(frequencyNumber)// |
93 | | - .frequencyType(frequencyType)// |
94 | | - .startDate(startDate)// |
95 | | - .numberOfInstallments(numberOfInstallments);// |
96 | | - |
97 | | - applyAdditionalFields(reAgingRequest, rowData, Set.of("frequencyNumber", "frequencyType", "startDate", "numberOfInstallments")); |
| 74 | + PostLoansLoanIdTransactionsRequest reAgingRequest = setReAgeingRequestProperties(// |
| 75 | + LoanRequestFactory.defaultReAgingRequest(), // |
| 76 | + table.row(0), // |
| 77 | + table.row(1) // |
| 78 | + ); |
98 | 79 |
|
99 | 80 | Response<PostLoansLoanIdTransactionsResponse> response = loanTransactionsApi.executeLoanTransaction(loanId, reAgingRequest, "reAge") |
100 | 81 | .execute(); |
@@ -195,18 +176,11 @@ public void createReAgingTransactionByLoanExternalId(DataTable table) throws IOE |
195 | 176 | Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE); |
196 | 177 | String loanExternalId = loanResponse.body().getResourceExternalId(); |
197 | 178 |
|
198 | | - List<String> data = table.asLists().get(1); |
199 | | - int frequencyNumber = Integer.parseInt(data.get(0)); |
200 | | - String frequencyType = data.get(1); |
201 | | - String startDate = data.get(2); |
202 | | - int numberOfInstallments = Integer.parseInt(data.get(3)); |
203 | | - |
204 | | - PostLoansLoanIdTransactionsRequest reAgingRequest = LoanRequestFactory// |
205 | | - .defaultReAgingRequest()// |
206 | | - .frequencyNumber(frequencyNumber)// |
207 | | - .frequencyType(frequencyType)// |
208 | | - .startDate(startDate)// |
209 | | - .numberOfInstallments(numberOfInstallments);// |
| 179 | + PostLoansLoanIdTransactionsRequest reAgingRequest = setReAgeingRequestProperties(// |
| 180 | + LoanRequestFactory.defaultReAgingRequest(), // |
| 181 | + table.row(0), // |
| 182 | + table.row(1) // |
| 183 | + ); |
210 | 184 |
|
211 | 185 | Response<PostLoansLoanIdTransactionsResponse> response = loanTransactionsApi |
212 | 186 | .executeLoanTransaction1(loanExternalId, reAgingRequest, "reAge").execute(); |
@@ -521,4 +495,19 @@ private List<String> validateRepaymentScheduleTotal(List<String> header, LoanSch |
521 | 495 | return actualValues; |
522 | 496 | } |
523 | 497 |
|
| 498 | + PostLoansLoanIdTransactionsRequest setReAgeingRequestProperties(PostLoansLoanIdTransactionsRequest request, List<String> headers, |
| 499 | + List<String> values) { |
| 500 | + for (int i = 0; i < headers.size(); i++) { |
| 501 | + String header = headers.get(i).toLowerCase().trim().replaceAll(" ", ""); |
| 502 | + switch (header) { |
| 503 | + case "frequencynumber" -> request.setFrequencyNumber(Integer.parseInt(values.get(i))); |
| 504 | + case "frequencytype" -> request.setFrequencyType(values.get(i)); |
| 505 | + case "startdate" -> request.setStartDate(values.get(i)); |
| 506 | + case "numberofinstallments" -> request.setNumberOfInstallments(Integer.parseInt(values.get(i))); |
| 507 | + case "reageinteresthandling" -> request.setReAgeInterestHandling(values.get(i)); |
| 508 | + default -> throw new IllegalStateException("Unknown header: " + header); |
| 509 | + } |
| 510 | + } |
| 511 | + return request; |
| 512 | + } |
524 | 513 | } |
0 commit comments