forked from qt-creator/qt-creator
Sqlite: Cleanup table and column handling
Using values instead of pointers makes the handling much easier. We can remove ColumnDefinition too, and use SqliteColumn instead. Change-Id: I224db9cc569c4dfb6e2746179b02096904bfbccb Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -30,18 +30,17 @@
|
||||
|
||||
namespace {
|
||||
|
||||
using Sqlite::ColumnDefinition;
|
||||
using Sqlite::ColumnDefinitions;
|
||||
using Sqlite::SqliteColumn;
|
||||
using Sqlite::SqliteColumns;
|
||||
|
||||
using Sqlite::SqlStatementBuilderException;
|
||||
|
||||
class CreateTableSqlStatementBuilder : public ::testing::Test
|
||||
{
|
||||
protected:
|
||||
void bindValues();
|
||||
static ColumnDefinitions createColumnDefintions();
|
||||
static ColumnDefinition createColumnDefintion(Utils::SmallString name,
|
||||
ColumnType type,
|
||||
bool isPrimaryKey = false);
|
||||
static SqliteColumns createColumns();
|
||||
|
||||
protected:
|
||||
Sqlite::CreateTableSqlStatementBuilder builder;
|
||||
};
|
||||
@@ -88,7 +87,7 @@ TEST_F(CreateTableSqlStatementBuilder, AddColumnToExistingColumns)
|
||||
{
|
||||
bindValues();
|
||||
|
||||
builder.addColumnDefinition("number2", ColumnType::Real);
|
||||
builder.addColumn("number2", ColumnType::Real);
|
||||
|
||||
ASSERT_THAT(builder.sqlStatement(),
|
||||
"CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY, name TEXT, number NUMERIC, number2 REAL)");}
|
||||
@@ -118,8 +117,8 @@ TEST_F(CreateTableSqlStatementBuilder, ClearColumnsAndAddColumnNewColumns)
|
||||
bindValues();
|
||||
builder.clearColumns();
|
||||
|
||||
builder.addColumnDefinition("name3", ColumnType::Text);
|
||||
builder.addColumnDefinition("number3", ColumnType::Real);
|
||||
builder.addColumn("name3", ColumnType::Text);
|
||||
builder.addColumn("number3", ColumnType::Real);
|
||||
|
||||
ASSERT_THAT(builder.sqlStatement(),
|
||||
"CREATE TABLE IF NOT EXISTS test(name3 TEXT, number3 REAL)");
|
||||
@@ -140,7 +139,7 @@ TEST_F(CreateTableSqlStatementBuilder, SetColumnDefinitions)
|
||||
builder.clear();
|
||||
builder.setTable("test");
|
||||
|
||||
builder.setColumnDefinitions(createColumnDefintions());
|
||||
builder.setColumns(createColumns());
|
||||
|
||||
ASSERT_THAT(builder.sqlStatement(),
|
||||
"CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY, name TEXT, number NUMERIC)");
|
||||
@@ -150,30 +149,19 @@ void CreateTableSqlStatementBuilder::bindValues()
|
||||
{
|
||||
builder.clear();
|
||||
builder.setTable("test");
|
||||
builder.addColumnDefinition("id", ColumnType::Integer, true);
|
||||
builder.addColumnDefinition("name", ColumnType::Text);
|
||||
builder.addColumnDefinition("number",ColumnType:: Numeric);
|
||||
builder.addColumn("id", ColumnType::Integer, IsPrimaryKey::Yes);
|
||||
builder.addColumn("name", ColumnType::Text);
|
||||
builder.addColumn("number",ColumnType:: Numeric);
|
||||
}
|
||||
|
||||
ColumnDefinitions CreateTableSqlStatementBuilder::createColumnDefintions()
|
||||
SqliteColumns CreateTableSqlStatementBuilder::createColumns()
|
||||
{
|
||||
ColumnDefinitions columnDefinitions;
|
||||
columnDefinitions.push_back(createColumnDefintion("id", ColumnType::Integer, true));
|
||||
columnDefinitions.push_back(createColumnDefintion("name", ColumnType::Text));
|
||||
columnDefinitions.push_back(createColumnDefintion("number", ColumnType::Numeric));
|
||||
SqliteColumns columns;
|
||||
columns.emplace_back("id", ColumnType::Integer, IsPrimaryKey::Yes);
|
||||
columns.emplace_back("name", ColumnType::Text);
|
||||
columns.emplace_back("number", ColumnType::Numeric);
|
||||
|
||||
return columnDefinitions;
|
||||
}
|
||||
|
||||
ColumnDefinition CreateTableSqlStatementBuilder::createColumnDefintion(Utils::SmallString name, ColumnType type, bool isPrimaryKey)
|
||||
{
|
||||
ColumnDefinition columnDefinition;
|
||||
|
||||
columnDefinition.setName(std::move(name));
|
||||
columnDefinition.setType(type);
|
||||
columnDefinition.setIsPrimaryKey(isPrimaryKey);
|
||||
|
||||
return columnDefinition;
|
||||
return columns;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user