FINERACT-1724: More batch support for datatables APIs

This commit is contained in:
Arnold Galovics
2023-04-24 14:28:50 +02:00
committed by Arnold Gálovics
parent d2082fe2cb
commit 636b33196b
6 changed files with 313 additions and 3 deletions
@@ -43,6 +43,7 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.fineract.batch.command.internal.AdjustTransactionCommandStrategy;
import org.apache.fineract.batch.command.internal.CreateTransactionLoanCommandStrategy;
import org.apache.fineract.batch.command.internal.GetDatatableEntryByAppTableIdAndDataTableIdCommandStrategy;
import org.apache.fineract.batch.domain.BatchRequest;
import org.apache.fineract.batch.domain.BatchResponse;
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
@@ -1326,6 +1327,7 @@ public class BatchApiTest {
* @see org.apache.fineract.batch.command.internal.CreateDatatableEntryCommandStrategy
* @see org.apache.fineract.batch.command.internal.UpdateDatatableEntryOneToManyCommandStrategy
* @see org.apache.fineract.batch.command.internal.GetDatatableEntryByAppTableIdCommandStrategy
* @see GetDatatableEntryByAppTableIdAndDataTableIdCommandStrategy
*/
@Test
public void shouldReturnOkStatusOnSuccessfulCreateDataTableEntry() {
@@ -1373,8 +1375,12 @@ public class BatchApiTest {
final BatchRequest getDatatableEntriesRequest = BatchHelper.getDatatableByIdRequest(loanId, datatableName, null,
updateDatatableEntryByEntryIdRequest.getReference());
// Get datatable entry by app table id batch request
final BatchRequest getDatatableEntryByIdRequest = BatchHelper.getDatatableEntryByIdRequest(loanId, datatableName, "$.resourceId",
null, updateDatatableEntryByEntryIdRequest.getReference());
final List<BatchRequest> batchRequestsDatatableEntries = Arrays.asList(createDatatableEntryRequest,
updateDatatableEntryByEntryIdRequest, getDatatableEntriesRequest);
updateDatatableEntryByEntryIdRequest, getDatatableEntriesRequest, getDatatableEntryByIdRequest);
LOG.info("Batch Request : {}", BatchHelper.toJsonString(batchRequestsDatatableEntries));
final List<BatchResponse> responseDatatableBatch = BatchHelper.postBatchRequestsWithEnclosingTransaction(this.requestSpec,
@@ -1385,9 +1391,12 @@ public class BatchApiTest {
final BatchResponse batchResponse1 = responseDatatableBatch.get(0);
final BatchResponse batchResponse2 = responseDatatableBatch.get(1);
final BatchResponse batchResponse3 = responseDatatableBatch.get(2);
final BatchResponse batchResponse4 = responseDatatableBatch.get(3);
Assertions.assertEquals(HttpStatus.SC_OK, batchResponse1.getStatusCode(), "Verify Status Code 200 for create datatable entry");
Assertions.assertEquals(HttpStatus.SC_OK, batchResponse2.getStatusCode(), "Verify Status Code 200 for update datatable entry");
Assertions.assertEquals(HttpStatus.SC_OK, batchResponse3.getStatusCode(), "Verify Status Code 200 for get datatable entries");
Assertions.assertEquals(HttpStatus.SC_OK, batchResponse4.getStatusCode(), "Verify Status Code 200 for get datatable entry by id");
final String getDatatableEntriesResponse = batchResponse3.getBody();
@@ -1166,6 +1166,38 @@ public final class BatchHelper {
return br;
}
/**
* Creates and returns a batch request to get datatable entry.
*
* @param loanId
* the loan id
* @param datatableName
* the name of datatable
* @param appTableId
* the app table id
* @param queryParameter
* the query parameters
* @param referenceId
* the reference id
* @return the {@link BatchRequest}
*/
public static BatchRequest getDatatableEntryByIdRequest(final Long loanId, final String datatableName, final String appTableId,
final String queryParameter, final Long referenceId) {
final BatchRequest br = new BatchRequest();
String relativeUrl = String.format("datatables/%s/%s/%s", datatableName, loanId, appTableId);
if (queryParameter != null) {
relativeUrl = relativeUrl + "?" + queryParameter;
}
br.setRequestId(4572L);
br.setReference(referenceId);
br.setRelativeUrl(relativeUrl);
br.setMethod(HttpMethod.GET);
br.setBody("{}");
return br;
}
/**
* Creates and returns a batch request to create datatable entry.
*