mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Reorganize packages; rename Request to Input and Response to Output
This commit is contained in:
2
pom.xml
2
pom.xml
@ -51,7 +51,7 @@
|
||||
<dependency>
|
||||
<groupId>com.kingsrook.qqq</groupId>
|
||||
<artifactId>qqq-backend-core</artifactId>
|
||||
<version>0.1.0</version>
|
||||
<version>0.2.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 3rd party deps specifically for this module -->
|
||||
|
@ -22,14 +22,14 @@
|
||||
package com.kingsrook.qqq.backend.module.rdbms;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.CountInterface;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.DeleteInterface;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.InsertInterface;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.QueryInterface;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.UpdateInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QBackendMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableBackendDetails;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.CountInterface;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.DeleteInterface;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.InsertInterface;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.QBackendModuleInterface;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.QueryInterface;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.UpdateInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableBackendDetails;
|
||||
import com.kingsrook.qqq.backend.core.modules.backend.QBackendModuleInterface;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.actions.RDBMSCountAction;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.actions.RDBMSDeleteAction;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.actions.RDBMSInsertAction;
|
||||
|
@ -29,12 +29,12 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.AbstractQTableRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.AbstractTableActionInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.ConnectionManager;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.model.metadata.RDBMSBackendMetaData;
|
||||
@ -85,7 +85,7 @@ public abstract class AbstractRDBMSAction
|
||||
/*******************************************************************************
|
||||
** Get a database connection, per the backend in the request.
|
||||
*******************************************************************************/
|
||||
protected Connection getConnection(AbstractQTableRequest qTableRequest) throws SQLException
|
||||
protected Connection getConnection(AbstractTableActionInput qTableRequest) throws SQLException
|
||||
{
|
||||
ConnectionManager connectionManager = new ConnectionManager();
|
||||
return connectionManager.getConnection((RDBMSBackendMetaData) qTableRequest.getBackend());
|
||||
|
@ -28,12 +28,12 @@ import java.sql.ResultSet;
|
||||
import java.sql.ResultSetMetaData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.CountInterface;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.count.CountRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.count.CountResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.CountInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -52,16 +52,16 @@ public class RDBMSCountAction extends AbstractRDBMSAction implements CountInterf
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public CountResult execute(CountRequest countRequest) throws QException
|
||||
public CountOutput execute(CountInput countInput) throws QException
|
||||
{
|
||||
try
|
||||
{
|
||||
QTableMetaData table = countRequest.getTable();
|
||||
QTableMetaData table = countInput.getTable();
|
||||
String tableName = getTableName(table);
|
||||
|
||||
String sql = "SELECT count(*) as record_count FROM " + tableName;
|
||||
|
||||
QQueryFilter filter = countRequest.getFilter();
|
||||
QQueryFilter filter = countInput.getFilter();
|
||||
List<Serializable> params = new ArrayList<>();
|
||||
if(filter != null && CollectionUtils.nullSafeHasContents(filter.getCriteria()))
|
||||
{
|
||||
@ -70,9 +70,9 @@ public class RDBMSCountAction extends AbstractRDBMSAction implements CountInterf
|
||||
|
||||
// todo sql customization - can edit sql and/or param list
|
||||
|
||||
CountResult rs = new CountResult();
|
||||
CountOutput rs = new CountOutput();
|
||||
|
||||
try(Connection connection = getConnection(countRequest))
|
||||
try(Connection connection = getConnection(countInput))
|
||||
{
|
||||
QueryManager.executeStatement(connection, sql, ((ResultSet resultSet) ->
|
||||
{
|
||||
|
@ -27,12 +27,12 @@ import java.sql.Connection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.DeleteInterface;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.DeleteInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||
|
||||
|
||||
@ -45,12 +45,12 @@ public class RDBMSDeleteAction extends AbstractRDBMSAction implements DeleteInte
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public DeleteResult execute(DeleteRequest deleteRequest) throws QException
|
||||
public DeleteOutput execute(DeleteInput deleteInput) throws QException
|
||||
{
|
||||
try
|
||||
{
|
||||
DeleteResult rs = new DeleteResult();
|
||||
QTableMetaData table = deleteRequest.getTable();
|
||||
DeleteOutput rs = new DeleteOutput();
|
||||
QTableMetaData table = deleteInput.getTable();
|
||||
|
||||
String tableName = getTableName(table);
|
||||
String primaryKeyName = getColumnName(table.getField(table.getPrimaryKeyField()));
|
||||
@ -59,20 +59,20 @@ public class RDBMSDeleteAction extends AbstractRDBMSAction implements DeleteInte
|
||||
+ " WHERE "
|
||||
+ primaryKeyName
|
||||
+ " IN ("
|
||||
+ deleteRequest.getPrimaryKeys().stream().map(x -> "?").collect(Collectors.joining(","))
|
||||
+ deleteInput.getPrimaryKeys().stream().map(x -> "?").collect(Collectors.joining(","))
|
||||
+ ")";
|
||||
List<Serializable> params = deleteRequest.getPrimaryKeys();
|
||||
List<Serializable> params = deleteInput.getPrimaryKeys();
|
||||
|
||||
// todo sql customization - can edit sql and/or param list
|
||||
|
||||
try(Connection connection = getConnection(deleteRequest))
|
||||
try(Connection connection = getConnection(deleteInput))
|
||||
{
|
||||
QueryManager.executeUpdateForRowCount(connection, sql, params);
|
||||
List<QRecord> outputRecords = new ArrayList<>();
|
||||
rs.setRecords(outputRecords);
|
||||
for(Serializable primaryKey : deleteRequest.getPrimaryKeys())
|
||||
for(Serializable primaryKey : deleteInput.getPrimaryKeys())
|
||||
{
|
||||
QRecord qRecord = new QRecord().withTableName(deleteRequest.getTableName()).withValue("id", primaryKey);
|
||||
QRecord qRecord = new QRecord().withTableName(deleteInput.getTableName()).withValue("id", primaryKey);
|
||||
// todo uh, identify any errors?
|
||||
QRecord outputRecord = new QRecord(qRecord);
|
||||
outputRecords.add(outputRecord);
|
||||
|
@ -28,13 +28,13 @@ import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.InsertInterface;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.InsertInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -53,21 +53,21 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public InsertResult execute(InsertRequest insertRequest) throws QException
|
||||
public InsertOutput execute(InsertInput insertInput) throws QException
|
||||
{
|
||||
InsertResult rs = new InsertResult();
|
||||
InsertOutput rs = new InsertOutput();
|
||||
|
||||
if(CollectionUtils.nullSafeIsEmpty(insertRequest.getRecords()))
|
||||
if(CollectionUtils.nullSafeIsEmpty(insertInput.getRecords()))
|
||||
{
|
||||
LOG.info("Insert request called with 0 records. Returning with no-op");
|
||||
rs.setRecords(new ArrayList<>());
|
||||
return (rs);
|
||||
}
|
||||
|
||||
QTableMetaData table = insertRequest.getTable();
|
||||
QTableMetaData table = insertInput.getTable();
|
||||
Instant now = Instant.now();
|
||||
|
||||
for(QRecord record : insertRequest.getRecords())
|
||||
for(QRecord record : insertInput.getRecords())
|
||||
{
|
||||
///////////////////////////////////////////
|
||||
// todo .. better (not hard-coded names) //
|
||||
@ -93,9 +93,9 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
|
||||
StringBuilder sql = new StringBuilder("INSERT INTO ").append(tableName).append("(").append(columns).append(") VALUES");
|
||||
List<Object> params = new ArrayList<>();
|
||||
|
||||
try(Connection connection = getConnection(insertRequest))
|
||||
try(Connection connection = getConnection(insertInput))
|
||||
{
|
||||
for(List<QRecord> page : CollectionUtils.getPages(insertRequest.getRecords(), QueryManager.PAGE_SIZE))
|
||||
for(List<QRecord> page : CollectionUtils.getPages(insertInput.getRecords(), QueryManager.PAGE_SIZE))
|
||||
{
|
||||
int recordIndex = 0;
|
||||
for(QRecord record : page)
|
||||
@ -120,7 +120,7 @@ public class RDBMSInsertAction extends AbstractRDBMSAction implements InsertInte
|
||||
List<QRecord> outputRecords = new ArrayList<>();
|
||||
rs.setRecords(outputRecords);
|
||||
int index = 0;
|
||||
for(QRecord record : insertRequest.getRecords())
|
||||
for(QRecord record : insertInput.getRecords())
|
||||
{
|
||||
Integer id = idList.get(index++);
|
||||
QRecord outputRecord = new QRecord(record);
|
||||
|
@ -30,19 +30,16 @@ import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.QueryInterface;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterOrderBy;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QueryRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QueryResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterOrderBy;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.QueryInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -61,11 +58,11 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public QueryResult execute(QueryRequest queryRequest) throws QException
|
||||
public QueryOutput execute(QueryInput queryInput) throws QException
|
||||
{
|
||||
try
|
||||
{
|
||||
QTableMetaData table = queryRequest.getTable();
|
||||
QTableMetaData table = queryInput.getTable();
|
||||
String tableName = getTableName(table);
|
||||
|
||||
List<QFieldMetaData> fieldList = new ArrayList<>(table.getFields().values());
|
||||
@ -75,7 +72,7 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
|
||||
|
||||
String sql = "SELECT " + columns + " FROM " + tableName;
|
||||
|
||||
QQueryFilter filter = queryRequest.getFilter();
|
||||
QQueryFilter filter = queryInput.getFilter();
|
||||
List<Serializable> params = new ArrayList<>();
|
||||
if(filter != null && CollectionUtils.nullSafeHasContents(filter.getCriteria()))
|
||||
{
|
||||
@ -87,24 +84,24 @@ public class RDBMSQueryAction extends AbstractRDBMSAction implements QueryInterf
|
||||
sql += " ORDER BY " + makeOrderByClause(table, filter.getOrderBys());
|
||||
}
|
||||
|
||||
if(queryRequest.getLimit() != null)
|
||||
if(queryInput.getLimit() != null)
|
||||
{
|
||||
sql += " LIMIT " + queryRequest.getLimit();
|
||||
sql += " LIMIT " + queryInput.getLimit();
|
||||
|
||||
if(queryRequest.getSkip() != null)
|
||||
if(queryInput.getSkip() != null)
|
||||
{
|
||||
// todo - other sql grammars?
|
||||
sql += " OFFSET " + queryRequest.getSkip();
|
||||
sql += " OFFSET " + queryInput.getSkip();
|
||||
}
|
||||
}
|
||||
|
||||
// todo sql customization - can edit sql and/or param list
|
||||
|
||||
QueryResult rs = new QueryResult();
|
||||
QueryOutput rs = new QueryOutput();
|
||||
List<QRecord> records = new ArrayList<>();
|
||||
rs.setRecords(records);
|
||||
|
||||
try(Connection connection = getConnection(queryRequest))
|
||||
try(Connection connection = getConnection(queryInput))
|
||||
{
|
||||
QueryManager.executeStatement(connection, sql, ((ResultSet resultSet) ->
|
||||
{
|
||||
|
@ -31,13 +31,13 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import com.kingsrook.qqq.backend.core.actions.interfaces.UpdateInterface;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.modules.interfaces.UpdateInterface;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.utils.CollectionUtils;
|
||||
import com.kingsrook.qqq.backend.core.utils.ListingHash;
|
||||
import com.kingsrook.qqq.backend.core.utils.StringUtils;
|
||||
@ -63,18 +63,18 @@ public class RDBMSUpdateAction extends AbstractRDBMSAction implements UpdateInte
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
public UpdateResult execute(UpdateRequest updateRequest) throws QException
|
||||
public UpdateOutput execute(UpdateInput updateInput) throws QException
|
||||
{
|
||||
UpdateResult rs = new UpdateResult();
|
||||
UpdateOutput rs = new UpdateOutput();
|
||||
|
||||
if(CollectionUtils.nullSafeIsEmpty(updateRequest.getRecords()))
|
||||
if(CollectionUtils.nullSafeIsEmpty(updateInput.getRecords()))
|
||||
{
|
||||
LOG.info("Update request called with 0 records. Returning with no-op");
|
||||
rs.setRecords(new ArrayList<>());
|
||||
return (rs);
|
||||
}
|
||||
|
||||
QTableMetaData table = updateRequest.getTable();
|
||||
QTableMetaData table = updateInput.getTable();
|
||||
Instant now = Instant.now();
|
||||
|
||||
List<QRecord> outputRecords = new ArrayList<>();
|
||||
@ -86,7 +86,7 @@ public class RDBMSUpdateAction extends AbstractRDBMSAction implements UpdateInte
|
||||
// record. So, we will first "hash" up the records by their list of fields being updated. //
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
ListingHash<List<String>, QRecord> recordsByFieldBeingUpdated = new ListingHash<>();
|
||||
for(QRecord record : updateRequest.getRecords())
|
||||
for(QRecord record : updateInput.getRecords())
|
||||
{
|
||||
////////////////////////////////////////////
|
||||
// todo .. better (not a hard-coded name) //
|
||||
@ -112,7 +112,7 @@ public class RDBMSUpdateAction extends AbstractRDBMSAction implements UpdateInte
|
||||
outputRecords.add(outputRecord);
|
||||
}
|
||||
|
||||
try(Connection connection = getConnection(updateRequest))
|
||||
try(Connection connection = getConnection(updateInput))
|
||||
{
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// process each distinct list of fields being updated (e.g., each different SQL statement) //
|
||||
|
@ -22,7 +22,7 @@
|
||||
package com.kingsrook.qqq.backend.module.rdbms.model.metadata;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableBackendDetails;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableBackendDetails;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.RDBMSBackendModule;
|
||||
|
||||
|
||||
|
@ -22,10 +22,10 @@
|
||||
package com.kingsrook.qqq.backend.module.rdbms;
|
||||
|
||||
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.model.metadata.RDBMSBackendMetaData;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.model.metadata.RDBMSTableBackendDetails;
|
||||
|
||||
|
@ -24,11 +24,11 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
|
||||
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.count.CountRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.count.CountResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QCriteriaOperator;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@ -58,9 +58,9 @@ public class RDBMSCountActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUnfilteredCount() throws QException
|
||||
{
|
||||
CountRequest countRequest = initCountRequest();
|
||||
CountResult countResult = new RDBMSCountAction().execute(countRequest);
|
||||
Assertions.assertEquals(5, countResult.getCount(), "Unfiltered query should find all rows");
|
||||
CountInput countInput = initCountRequest();
|
||||
CountOutput countOutput = new RDBMSCountAction().execute(countInput);
|
||||
Assertions.assertEquals(5, countOutput.getCount(), "Unfiltered query should find all rows");
|
||||
}
|
||||
|
||||
|
||||
@ -73,15 +73,15 @@ public class RDBMSCountActionTest extends RDBMSActionTest
|
||||
{
|
||||
String email = "darin.kelkhoff@gmail.com";
|
||||
|
||||
CountRequest countRequest = initCountRequest();
|
||||
countRequest.setFilter(new QQueryFilter()
|
||||
CountInput countInput = initCountRequest();
|
||||
countInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.EQUALS)
|
||||
.withValues(List.of(email)))
|
||||
);
|
||||
CountResult countResult = new RDBMSCountAction().execute(countRequest);
|
||||
Assertions.assertEquals(1, countResult.getCount(), "Expected # of rows");
|
||||
CountOutput countOutput = new RDBMSCountAction().execute(countInput);
|
||||
Assertions.assertEquals(1, countOutput.getCount(), "Expected # of rows");
|
||||
}
|
||||
|
||||
|
||||
@ -94,15 +94,15 @@ public class RDBMSCountActionTest extends RDBMSActionTest
|
||||
{
|
||||
String email = "darin.kelkhoff@gmail.com";
|
||||
|
||||
CountRequest countRequest = initCountRequest();
|
||||
countRequest.setFilter(new QQueryFilter()
|
||||
CountInput countInput = initCountRequest();
|
||||
countInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.NOT_EQUALS)
|
||||
.withValues(List.of(email)))
|
||||
);
|
||||
CountResult countResult = new RDBMSCountAction().execute(countRequest);
|
||||
Assertions.assertEquals(4, countResult.getCount(), "Expected # of rows");
|
||||
CountOutput countOutput = new RDBMSCountAction().execute(countInput);
|
||||
Assertions.assertEquals(4, countOutput.getCount(), "Expected # of rows");
|
||||
}
|
||||
|
||||
|
||||
@ -110,12 +110,12 @@ public class RDBMSCountActionTest extends RDBMSActionTest
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private CountRequest initCountRequest()
|
||||
private CountInput initCountRequest()
|
||||
{
|
||||
CountRequest countRequest = new CountRequest();
|
||||
countRequest.setInstance(TestUtils.defineInstance());
|
||||
countRequest.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return countRequest;
|
||||
CountInput countInput = new CountInput();
|
||||
countInput.setInstance(TestUtils.defineInstance());
|
||||
countInput.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return countInput;
|
||||
}
|
||||
|
||||
}
|
@ -23,8 +23,8 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.delete.DeleteResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.delete.DeleteOutput;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -56,9 +56,9 @@ public class RDBMSDeleteActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testDeleteAll() throws Exception
|
||||
{
|
||||
DeleteRequest deleteRequest = initDeleteRequest();
|
||||
deleteRequest.setPrimaryKeys(List.of(1, 2, 3, 4, 5));
|
||||
DeleteResult deleteResult = new RDBMSDeleteAction().execute(deleteRequest);
|
||||
DeleteInput deleteInput = initDeleteRequest();
|
||||
deleteInput.setPrimaryKeys(List.of(1, 2, 3, 4, 5));
|
||||
DeleteOutput deleteResult = new RDBMSDeleteAction().execute(deleteInput);
|
||||
assertEquals(5, deleteResult.getRecords().size(), "Unfiltered delete should return all rows");
|
||||
// todo - add errors to QRecord? assertTrue(deleteResult.getRecords().stream().noneMatch(qrs -> CollectionUtils.nullSafeHasContents(qrs.getErrors())), "There should be no errors");
|
||||
runTestSql("SELECT id FROM person", (rs -> assertFalse(rs.next())));
|
||||
@ -72,9 +72,9 @@ public class RDBMSDeleteActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testDeleteOne() throws Exception
|
||||
{
|
||||
DeleteRequest deleteRequest = initDeleteRequest();
|
||||
deleteRequest.setPrimaryKeys(List.of(1));
|
||||
DeleteResult deleteResult = new RDBMSDeleteAction().execute(deleteRequest);
|
||||
DeleteInput deleteInput = initDeleteRequest();
|
||||
deleteInput.setPrimaryKeys(List.of(1));
|
||||
DeleteOutput deleteResult = new RDBMSDeleteAction().execute(deleteInput);
|
||||
assertEquals(1, deleteResult.getRecords().size(), "Should delete one row");
|
||||
// todo - add errors to QRecord? assertTrue(deleteResult.getRecords().stream().noneMatch(qrs -> CollectionUtils.nullSafeHasContents(qrs.getErrors())), "There should be no errors");
|
||||
runTestSql("SELECT id FROM person WHERE id = 1", (rs -> assertFalse(rs.next())));
|
||||
@ -88,9 +88,9 @@ public class RDBMSDeleteActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testDeleteSome() throws Exception
|
||||
{
|
||||
DeleteRequest deleteRequest = initDeleteRequest();
|
||||
deleteRequest.setPrimaryKeys(List.of(1, 3, 5));
|
||||
DeleteResult deleteResult = new RDBMSDeleteAction().execute(deleteRequest);
|
||||
DeleteInput deleteInput = initDeleteRequest();
|
||||
deleteInput.setPrimaryKeys(List.of(1, 3, 5));
|
||||
DeleteOutput deleteResult = new RDBMSDeleteAction().execute(deleteInput);
|
||||
assertEquals(3, deleteResult.getRecords().size(), "Should delete one row");
|
||||
// todo - add errors to QRecord? assertTrue(deleteResult.getRecords().stream().noneMatch(qrs -> CollectionUtils.nullSafeHasContents(qrs.getErrors())), "There should be no errors");
|
||||
runTestSql("SELECT id FROM person", (rs -> {
|
||||
@ -110,12 +110,12 @@ public class RDBMSDeleteActionTest extends RDBMSActionTest
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private DeleteRequest initDeleteRequest()
|
||||
private DeleteInput initDeleteRequest()
|
||||
{
|
||||
DeleteRequest deleteRequest = new DeleteRequest();
|
||||
deleteRequest.setInstance(TestUtils.defineInstance());
|
||||
deleteRequest.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return deleteRequest;
|
||||
DeleteInput deleteInput = new DeleteInput();
|
||||
deleteInput.setInstance(TestUtils.defineInstance());
|
||||
deleteInput.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return deleteInput;
|
||||
}
|
||||
|
||||
}
|
@ -25,8 +25,8 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.insert.InsertResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.insert.InsertOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@ -58,10 +58,10 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testInsertNullList() throws QException
|
||||
{
|
||||
InsertRequest insertRequest = initInsertRequest();
|
||||
insertRequest.setRecords(null);
|
||||
InsertResult insertResult = new RDBMSInsertAction().execute(insertRequest);
|
||||
assertEquals(0, insertResult.getRecords().size());
|
||||
InsertInput insertInput = initInsertRequest();
|
||||
insertInput.setRecords(null);
|
||||
InsertOutput insertOutput = new RDBMSInsertAction().execute(insertInput);
|
||||
assertEquals(0, insertOutput.getRecords().size());
|
||||
}
|
||||
|
||||
|
||||
@ -72,10 +72,10 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testInsertEmptyList() throws QException
|
||||
{
|
||||
InsertRequest insertRequest = initInsertRequest();
|
||||
insertRequest.setRecords(Collections.emptyList());
|
||||
InsertResult insertResult = new RDBMSInsertAction().execute(insertRequest);
|
||||
assertEquals(0, insertResult.getRecords().size());
|
||||
InsertInput insertInput = initInsertRequest();
|
||||
insertInput.setRecords(Collections.emptyList());
|
||||
InsertOutput insertOutput = new RDBMSInsertAction().execute(insertInput);
|
||||
assertEquals(0, insertOutput.getRecords().size());
|
||||
}
|
||||
|
||||
|
||||
@ -86,16 +86,16 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testInsertOne() throws Exception
|
||||
{
|
||||
InsertRequest insertRequest = initInsertRequest();
|
||||
InsertInput insertInput = initInsertRequest();
|
||||
QRecord record = new QRecord().withTableName("person")
|
||||
.withValue("firstName", "James")
|
||||
.withValue("lastName", "Kirk")
|
||||
.withValue("email", "jamestk@starfleet.net")
|
||||
.withValue("birthDate", "2210-05-20");
|
||||
insertRequest.setRecords(List.of(record));
|
||||
InsertResult insertResult = new RDBMSInsertAction().execute(insertRequest);
|
||||
assertEquals(1, insertResult.getRecords().size(), "Should return 1 row");
|
||||
assertNotNull(insertResult.getRecords().get(0).getValue("id"), "Should have an id in the row");
|
||||
insertInput.setRecords(List.of(record));
|
||||
InsertOutput insertOutput = new RDBMSInsertAction().execute(insertInput);
|
||||
assertEquals(1, insertOutput.getRecords().size(), "Should return 1 row");
|
||||
assertNotNull(insertOutput.getRecords().get(0).getValue("id"), "Should have an id in the row");
|
||||
// todo - add errors to QRecord? assertTrue(insertResult.getRecords().stream().noneMatch(qrs -> CollectionUtils.nullSafeHasContents(qrs.getErrors())), "There should be no errors");
|
||||
runTestSql("SELECT * FROM person WHERE last_name = 'Kirk'", (rs -> {
|
||||
int rowsFound = 0;
|
||||
@ -118,7 +118,7 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testInsertMany() throws Exception
|
||||
{
|
||||
InsertRequest insertRequest = initInsertRequest();
|
||||
InsertInput insertInput = initInsertRequest();
|
||||
QRecord record1 = new QRecord().withTableName("person")
|
||||
.withValue("firstName", "Jean-Luc")
|
||||
.withValue("lastName", "Picard")
|
||||
@ -129,11 +129,11 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
.withValue("lastName", "Riker")
|
||||
.withValue("email", "notthomas@starfleet.net")
|
||||
.withValue("birthDate", "2320-05-20");
|
||||
insertRequest.setRecords(List.of(record1, record2));
|
||||
InsertResult insertResult = new RDBMSInsertAction().execute(insertRequest);
|
||||
assertEquals(2, insertResult.getRecords().size(), "Should return 1 row");
|
||||
assertEquals(6, insertResult.getRecords().get(0).getValue("id"), "Should have next id in the row");
|
||||
assertEquals(7, insertResult.getRecords().get(1).getValue("id"), "Should have next id in the row");
|
||||
insertInput.setRecords(List.of(record1, record2));
|
||||
InsertOutput insertOutput = new RDBMSInsertAction().execute(insertInput);
|
||||
assertEquals(2, insertOutput.getRecords().size(), "Should return 1 row");
|
||||
assertEquals(6, insertOutput.getRecords().get(0).getValue("id"), "Should have next id in the row");
|
||||
assertEquals(7, insertOutput.getRecords().get(1).getValue("id"), "Should have next id in the row");
|
||||
// todo - add errors to QRecord? assertTrue(insertResult.getRecords().stream().noneMatch(qrs -> CollectionUtils.nullSafeHasContents(qrs.getErrors())), "There should be no errors");
|
||||
runTestSql("SELECT * FROM person WHERE last_name = 'Picard'", (rs -> {
|
||||
int rowsFound = 0;
|
||||
@ -162,12 +162,12 @@ public class RDBMSInsertActionTest extends RDBMSActionTest
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private InsertRequest initInsertRequest()
|
||||
private InsertInput initInsertRequest()
|
||||
{
|
||||
InsertRequest insertRequest = new InsertRequest();
|
||||
insertRequest.setInstance(TestUtils.defineInstance());
|
||||
insertRequest.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return insertRequest;
|
||||
InsertInput insertInput = new InsertInput();
|
||||
insertInput.setInstance(TestUtils.defineInstance());
|
||||
insertInput.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return insertInput;
|
||||
}
|
||||
|
||||
}
|
@ -24,11 +24,11 @@ package com.kingsrook.qqq.backend.module.rdbms.actions;
|
||||
|
||||
import java.util.List;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QCriteriaOperator;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QueryRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.query.QueryResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QCriteriaOperator;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QFilterCriteria;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QueryOutput;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@ -58,9 +58,9 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUnfilteredQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(5, queryResult.getRecords().size(), "Unfiltered query should find all rows");
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(5, queryOutput.getRecords().size(), "Unfiltered query should find all rows");
|
||||
}
|
||||
|
||||
|
||||
@ -73,16 +73,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
{
|
||||
String email = "darin.kelkhoff@gmail.com";
|
||||
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.EQUALS)
|
||||
.withValues(List.of(email)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(1, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertEquals(email, queryResult.getRecords().get(0).getValueString("email"), "Should find expected email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(1, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertEquals(email, queryOutput.getRecords().get(0).getValueString("email"), "Should find expected email address");
|
||||
}
|
||||
|
||||
|
||||
@ -95,16 +95,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
{
|
||||
String email = "darin.kelkhoff@gmail.com";
|
||||
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.NOT_EQUALS)
|
||||
.withValues(List.of(email)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(4, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().noneMatch(r -> r.getValueString("email").equals(email)), "Should NOT find expected email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(4, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().noneMatch(r -> r.getValueString("email").equals(email)), "Should NOT find expected email address");
|
||||
}
|
||||
|
||||
|
||||
@ -115,16 +115,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testInQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.IN)
|
||||
.withValues(List.of(2, 4)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(2) || r.getValueInteger("id").equals(4)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(2) || r.getValueInteger("id").equals(4)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -135,16 +135,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testNotInQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.NOT_IN)
|
||||
.withValues(List.of(2, 3, 4)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -155,16 +155,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testStartsWith() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.STARTS_WITH)
|
||||
.withValues(List.of("darin")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(1, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueString("email").matches("darin.*")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(1, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueString("email").matches("darin.*")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -175,16 +175,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testContains() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.CONTAINS)
|
||||
.withValues(List.of("kelkhoff")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(1, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueString("email").matches(".*kelkhoff.*")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(1, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueString("email").matches(".*kelkhoff.*")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -195,16 +195,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testEndsWith() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.ENDS_WITH)
|
||||
.withValues(List.of("gmail.com")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(1, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueString("email").matches(".*gmail.com")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(1, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueString("email").matches(".*gmail.com")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -215,16 +215,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testNotStartsWith() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.NOT_STARTS_WITH)
|
||||
.withValues(List.of("darin")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(4, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().noneMatch(r -> r.getValueString("email").matches("darin.*")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(4, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().noneMatch(r -> r.getValueString("email").matches("darin.*")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -235,16 +235,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testNotContains() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.NOT_CONTAINS)
|
||||
.withValues(List.of("kelkhoff")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(4, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().noneMatch(r -> r.getValueString("email").matches(".*kelkhoff.*")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(4, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().noneMatch(r -> r.getValueString("email").matches(".*kelkhoff.*")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -255,16 +255,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testNotEndsWith() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("email")
|
||||
.withOperator(QCriteriaOperator.NOT_ENDS_WITH)
|
||||
.withValues(List.of("gmail.com")))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(4, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().noneMatch(r -> r.getValueString("email").matches(".*gmail.com")), "Should find matching email address");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(4, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().noneMatch(r -> r.getValueString("email").matches(".*gmail.com")), "Should find matching email address");
|
||||
}
|
||||
|
||||
|
||||
@ -275,16 +275,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testLessThanQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.LESS_THAN)
|
||||
.withValues(List.of(3)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(2)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(2)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -295,16 +295,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testLessThanOrEqualsQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.LESS_THAN_OR_EQUALS)
|
||||
.withValues(List.of(2)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(2)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(2)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -315,16 +315,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testGreaterThanQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.GREATER_THAN)
|
||||
.withValues(List.of(3)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(4) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(4) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -335,16 +335,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testGreaterThanOrEqualsQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.GREATER_THAN_OR_EQUALS)
|
||||
.withValues(List.of(4)))
|
||||
);
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(4) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(4) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -355,15 +355,15 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testIsBlankQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("birthDate")
|
||||
.withOperator(QCriteriaOperator.IS_BLANK)
|
||||
));
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(1, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValue("birthDate") == null), "Should find expected row");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(1, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValue("birthDate") == null), "Should find expected row");
|
||||
}
|
||||
|
||||
|
||||
@ -374,16 +374,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testBetweenQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.BETWEEN)
|
||||
.withValues(List.of(2, 4))
|
||||
));
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(3, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(2) || r.getValueInteger("id").equals(3) || r.getValueInteger("id").equals(4)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(3, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(2) || r.getValueInteger("id").equals(3) || r.getValueInteger("id").equals(4)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -394,16 +394,16 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testNotBetweenQuery() throws QException
|
||||
{
|
||||
QueryRequest queryRequest = initQueryRequest();
|
||||
queryRequest.setFilter(new QQueryFilter()
|
||||
QueryInput queryInput = initQueryRequest();
|
||||
queryInput.setFilter(new QQueryFilter()
|
||||
.withCriteria(new QFilterCriteria()
|
||||
.withFieldName("id")
|
||||
.withOperator(QCriteriaOperator.NOT_BETWEEN)
|
||||
.withValues(List.of(2, 4))
|
||||
));
|
||||
QueryResult queryResult = new RDBMSQueryAction().execute(queryRequest);
|
||||
Assertions.assertEquals(2, queryResult.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryResult.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
QueryOutput queryOutput = new RDBMSQueryAction().execute(queryInput);
|
||||
Assertions.assertEquals(2, queryOutput.getRecords().size(), "Expected # of rows");
|
||||
Assertions.assertTrue(queryOutput.getRecords().stream().allMatch(r -> r.getValueInteger("id").equals(1) || r.getValueInteger("id").equals(5)), "Should find expected ids");
|
||||
}
|
||||
|
||||
|
||||
@ -411,12 +411,12 @@ public class RDBMSQueryActionTest extends RDBMSActionTest
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private QueryRequest initQueryRequest()
|
||||
private QueryInput initQueryRequest()
|
||||
{
|
||||
QueryRequest queryRequest = new QueryRequest();
|
||||
queryRequest.setInstance(TestUtils.defineInstance());
|
||||
queryRequest.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return queryRequest;
|
||||
QueryInput queryInput = new QueryInput();
|
||||
queryInput.setInstance(TestUtils.defineInstance());
|
||||
queryInput.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return queryInput;
|
||||
}
|
||||
|
||||
}
|
@ -27,8 +27,8 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import com.kingsrook.qqq.backend.core.exceptions.QException;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateRequest;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.update.UpdateResult;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateInput;
|
||||
import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateOutput;
|
||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.TestUtils;
|
||||
import com.kingsrook.qqq.backend.module.rdbms.jdbc.QueryManager;
|
||||
@ -77,9 +77,9 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateNullList() throws QException
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
updateRequest.setRecords(null);
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
updateInput.setRecords(null);
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
assertEquals(0, updateResult.getRecords().size());
|
||||
}
|
||||
|
||||
@ -91,10 +91,10 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateEmptyList() throws QException
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
updateRequest.setRecords(Collections.emptyList());
|
||||
new RDBMSUpdateAction().execute(updateRequest);
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
updateInput.setRecords(Collections.emptyList());
|
||||
new RDBMSUpdateAction().execute(updateInput);
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
assertEquals(0, updateResult.getRecords().size());
|
||||
}
|
||||
|
||||
@ -106,17 +106,17 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateOne() throws Exception
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
QRecord record = new QRecord().withTableName("person")
|
||||
.withValue("id", 2)
|
||||
.withValue("firstName", "James")
|
||||
.withValue("lastName", "Kirk")
|
||||
.withValue("email", "jamestk@starfleet.net")
|
||||
.withValue("birthDate", "2210-05-20");
|
||||
updateRequest.setRecords(List.of(record));
|
||||
updateInput.setRecords(List.of(record));
|
||||
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
assertEquals(1, statistics.get(QueryManager.STAT_QUERIES_RAN));
|
||||
|
||||
assertEquals(1, updateResult.getRecords().size(), "Should return 1 row");
|
||||
@ -149,7 +149,7 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateManyWithDifferentColumnsAndValues() throws Exception
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
QRecord record1 = new QRecord().withTableName("person")
|
||||
.withValue("id", 1)
|
||||
.withValue("firstName", "Darren")
|
||||
@ -166,9 +166,9 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
.withValue("firstName", "Richard")
|
||||
.withValue("birthDate", null);
|
||||
|
||||
updateRequest.setRecords(List.of(record1, record2, record3));
|
||||
updateInput.setRecords(List.of(record1, record2, record3));
|
||||
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
|
||||
// this test runs one batch and one regular query
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
@ -224,7 +224,7 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateManyWithSameColumnsDifferentValues() throws Exception
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
QRecord record1 = new QRecord().withTableName("person")
|
||||
.withValue("id", 1)
|
||||
.withValue("firstName", "Darren")
|
||||
@ -237,10 +237,10 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
.withValue("lastName", "Tim's Uncle")
|
||||
.withValue("birthDate", null);
|
||||
|
||||
updateRequest.setRecords(List.of(record1, record2));
|
||||
updateInput.setRecords(List.of(record1, record2));
|
||||
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
assertEquals(1, statistics.get(QueryManager.STAT_BATCHES_RAN));
|
||||
|
||||
assertEquals(2, updateResult.getRecords().size(), "Should return 2 rows");
|
||||
@ -281,8 +281,8 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
@Test
|
||||
public void testUpdateManyWithSameColumnsSameValues() throws Exception
|
||||
{
|
||||
UpdateRequest updateRequest = initUpdateRequest();
|
||||
List<QRecord> records = new ArrayList<>();
|
||||
UpdateInput updateInput = initUpdateRequest();
|
||||
List<QRecord> records = new ArrayList<>();
|
||||
for(int i = 1; i <= 5; i++)
|
||||
{
|
||||
records.add(new QRecord().withTableName("person")
|
||||
@ -290,10 +290,10 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
.withValue("birthDate", "1999-09-09"));
|
||||
}
|
||||
|
||||
updateRequest.setRecords(records);
|
||||
updateInput.setRecords(records);
|
||||
|
||||
UpdateResult updateResult = new RDBMSUpdateAction().execute(updateRequest);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
UpdateOutput updateResult = new RDBMSUpdateAction().execute(updateInput);
|
||||
Map<String, Integer> statistics = QueryManager.getStatistics();
|
||||
assertEquals(1, statistics.get(QueryManager.STAT_QUERIES_RAN));
|
||||
|
||||
assertEquals(5, updateResult.getRecords().size(), "Should return 5 rows");
|
||||
@ -314,12 +314,12 @@ public class RDBMSUpdateActionTest extends RDBMSActionTest
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
private UpdateRequest initUpdateRequest()
|
||||
private UpdateInput initUpdateRequest()
|
||||
{
|
||||
UpdateRequest updateRequest = new UpdateRequest();
|
||||
updateRequest.setInstance(TestUtils.defineInstance());
|
||||
updateRequest.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return updateRequest;
|
||||
UpdateInput updateInput = new UpdateInput();
|
||||
updateInput.setInstance(TestUtils.defineInstance());
|
||||
updateInput.setTableName(TestUtils.defineTablePerson().getName());
|
||||
return updateInput;
|
||||
}
|
||||
|
||||
}
|
@ -22,7 +22,7 @@
|
||||
DROP TABLE IF EXISTS person;
|
||||
CREATE TABLE person
|
||||
(
|
||||
id INT AUTO_INCREMENT,
|
||||
id INT AUTO_INCREMENT primary key ,
|
||||
create_date TIMESTAMP DEFAULT now(),
|
||||
modify_date TIMESTAMP DEFAULT now(),
|
||||
|
||||
|
Reference in New Issue
Block a user