Fix for reading multirow datatable entry reads non-belonging entry

This commit is contained in:
Jose Alberto Hernandez
2022-06-13 18:13:23 +02:00
committed by Arnold Gálovics
parent 8e37f93baf
commit 2b122a17ea
7 changed files with 140 additions and 48 deletions
@@ -52,11 +52,11 @@ public class DatatableHelper {
}
public Integer createDatatableEntry(final String apptableName, final String datatableName, final Integer apptableId,
final boolean genericResultSet, final String dateFormat) {
final boolean genericResultSet, final String dateFormat, final String jsonAttributeToGetBack) {
return Utils.performServerPost(
this.requestSpec, this.responseSpec, DATATABLE_URL + "/" + datatableName + "/" + apptableId + "?genericResultSet="
+ Boolean.toString(genericResultSet) + "&" + Utils.TENANT_IDENTIFIER,
getTestDatatableEntryAsJSON(dateFormat), "resourceId");
getTestDatatableEntryAsJSON(dateFormat), jsonAttributeToGetBack);
}
public String readDatatableEntry(final String datatableName, final Integer resourceId, final boolean genericResultset) {
@@ -65,9 +65,16 @@ public class DatatableHelper {
}
public List<String> readDatatableEntry(final String datatableName, final Integer resourceId, final boolean genericResultset,
final String jsonAttributeToGetBack) {
return Utils.performServerGetList(this.requestSpec, this.responseSpec, DATATABLE_URL + "/" + datatableName + "/" + resourceId
+ "?genericResultSet=" + String.valueOf(genericResultset) + "&" + Utils.TENANT_IDENTIFIER, jsonAttributeToGetBack);
final Integer datatableResourceId, final String jsonAttributeToGetBack) {
if (datatableResourceId == null) {
return Utils.performServerGetList(this.requestSpec, this.responseSpec, DATATABLE_URL + "/" + datatableName + "/" + resourceId
+ "?genericResultSet=" + String.valueOf(genericResultset) + "&" + Utils.TENANT_IDENTIFIER, jsonAttributeToGetBack);
} else {
return Utils.performServerGetList(
this.requestSpec, this.responseSpec, DATATABLE_URL + "/" + datatableName + "/" + resourceId + "/" + datatableResourceId
+ "?genericResultSet=" + String.valueOf(genericResultset) + "&" + Utils.TENANT_IDENTIFIER,
jsonAttributeToGetBack);
}
}
public Date readDatatableEntry(final String datatableName, final Integer resourceId, final boolean genericResultset, final int position,
@@ -63,11 +63,11 @@ public class DatatableIntegrationTest {
// creating new client datatable entry
final boolean genericResultSet = true;
Integer datatableResourceID = this.datatableHelper.createDatatableEntry(CLIENT_APP_TABLE_NAME, datatableName, clientID,
genericResultSet, "yyyy-MM-dd");
genericResultSet, "yyyy-MM-dd", "resourceId");
assertNotNull(datatableResourceID, "ERROR IN CREATING THE ENTITY DATATABLE RECORD");
// Read the Datatable entry generated with genericResultSet in true (default)
final List<String> items = this.datatableHelper.readDatatableEntry(datatableName, clientID, genericResultSet, "data");
final List<String> items = this.datatableHelper.readDatatableEntry(datatableName, clientID, genericResultSet, null, "data");
assertEquals(1, items.size());
// Read the Datatable entry generated with genericResultSet in false
@@ -84,4 +84,50 @@ public class DatatableIntegrationTest {
assertEquals(datatableName, deletedDataTableName, "ERROR IN DELETING THE DATATABLE");
}
@Test
public void validateReadDatatableMultirow() {
// creating multirow datatable for client entity
String datatableName = this.datatableHelper.createDatatable(CLIENT_APP_TABLE_NAME, true);
DatatableHelper.verifyDatatableCreatedOnServer(this.requestSpec, this.responseSpec, datatableName);
// creating first client with datatables
final Integer clientIdA = ClientHelper.createClientAsPerson(requestSpec, responseSpec);
// creating second client with datatables
final Integer clientIdB = ClientHelper.createClientAsPerson(requestSpec, responseSpec);
// creating new client datatable entry for first client
final boolean genericResultSet = true;
final Integer datatableResourceIdA = this.datatableHelper.createDatatableEntry(CLIENT_APP_TABLE_NAME, datatableName, clientIdA,
genericResultSet, "yyyy-MM-dd", "resourceId");
assertNotNull(datatableResourceIdA, "ERROR IN CREATING THE ENTITY DATATABLE RECORD");
// creating new client datatable entry for second client
final Integer datatableResourceIdB = this.datatableHelper.createDatatableEntry(CLIENT_APP_TABLE_NAME, datatableName, clientIdB,
genericResultSet, "yyyy-MM-dd", "resourceId");
assertNotNull(datatableResourceIdB, "ERROR IN CREATING THE ENTITY DATATABLE RECORD");
// Read the Datatable entry generated for first client
List<String> items;
items = this.datatableHelper.readDatatableEntry(datatableName, clientIdA, genericResultSet, datatableResourceIdA, "data");
assertEquals(1, items.size());
// Read the Datatable entry generated for second client
items = this.datatableHelper.readDatatableEntry(datatableName, clientIdB, genericResultSet, datatableResourceIdB, "data");
assertEquals(1, items.size());
// Read the Datatable entry generated for first client and second client's record Id
items = this.datatableHelper.readDatatableEntry(datatableName, clientIdA, genericResultSet, datatableResourceIdB, "data");
assertEquals(0, items.size());
// deleting datatable entries
Integer appTableIdA = this.datatableHelper.deleteDatatableEntries(datatableName, clientIdA, "clientId");
assertEquals(clientIdA, appTableIdA, "ERROR IN DELETING THE DATATABLE ENTRIES");
Integer appTableIdB = this.datatableHelper.deleteDatatableEntries(datatableName, clientIdB, "clientId");
assertEquals(clientIdB, appTableIdB, "ERROR IN DELETING THE DATATABLE ENTRIES");
// deleting the datatable
String deletedDataTableName = this.datatableHelper.deleteDatatable(datatableName);
assertEquals(datatableName, deletedDataTableName, "ERROR IN DELETING THE DATATABLE");
}
}