aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/unittest/sqlitecolumn-test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/unittest/sqlitecolumn-test.cpp')
-rw-r--r--tests/unit/unittest/sqlitecolumn-test.cpp99
1 files changed, 61 insertions, 38 deletions
diff --git a/tests/unit/unittest/sqlitecolumn-test.cpp b/tests/unit/unittest/sqlitecolumn-test.cpp
index 3daa32bd23..9753457c94 100644
--- a/tests/unit/unittest/sqlitecolumn-test.cpp
+++ b/tests/unit/unittest/sqlitecolumn-test.cpp
@@ -29,70 +29,93 @@
namespace {
-using testing::AllOf;
-using testing::Contains;
-using testing::Property;
-
using Sqlite::ColumnType;
-using Sqlite::Contraint;
+using Sqlite::ConstraintType;
using Sqlite::JournalMode;
using Sqlite::OpenMode;
using Column = Sqlite::Column;
+using Sqlite::Enforment;
+using Sqlite::ForeignKey;
+using Sqlite::ForeignKeyAction;
using Sqlite::SqliteColumns;
class SqliteColumn : public ::testing::Test
{
protected:
- void SetUp() override;
-
Sqlite::Column column;
};
-TEST_F(SqliteColumn, ChangeName)
+TEST_F(SqliteColumn, DefaultConstruct)
{
- column.setName("Claudia");
-
- ASSERT_THAT(column.name(), "Claudia");
-}
-
-TEST_F(SqliteColumn, DefaultType)
-{
- ASSERT_THAT(column.type(), ColumnType::Numeric);
+ ASSERT_THAT(column,
+ AllOf(Field(&Column::name, IsEmpty()),
+ Field(&Column::tableName, IsEmpty()),
+ Field(&Column::type, ColumnType::Numeric),
+ Field(&Column::constraints, IsEmpty())));
}
-TEST_F(SqliteColumn, ChangeType)
+TEST_F(SqliteColumn, Clear)
{
- column.setType(ColumnType::Text);
+ column.name = "foo";
+ column.name = "foo";
+ column.type = ColumnType::Text;
+ column.constraints = {Sqlite::PrimaryKey{}};
- ASSERT_THAT(column.type(), ColumnType::Text);
-}
+ column.clear();
-TEST_F(SqliteColumn, DefaultConstraint)
-{
- ASSERT_THAT(column.constraint(), Contraint::NoConstraint);
+ ASSERT_THAT(column,
+ AllOf(Field(&Column::name, IsEmpty()),
+ Field(&Column::tableName, IsEmpty()),
+ Field(&Column::type, ColumnType::Numeric),
+ Field(&Column::constraints, IsEmpty())));
}
-TEST_F(SqliteColumn, SetConstraint)
+TEST_F(SqliteColumn, Constructor)
{
- column.setContraint(Contraint::PrimaryKey);
+ column = Sqlite::Column{"table",
+ "column",
+ ColumnType::Text,
+ {ForeignKey{"referencedTable",
+ "referencedColumn",
+ ForeignKeyAction::SetNull,
+ ForeignKeyAction::Cascade,
+ Enforment::Deferred}}};
- ASSERT_THAT(column.constraint(), Contraint::PrimaryKey);
+ ASSERT_THAT(column,
+ AllOf(Field(&Column::name, Eq("column")),
+ Field(&Column::tableName, Eq("table")),
+ Field(&Column::type, ColumnType::Text),
+ Field(&Column::constraints,
+ ElementsAre(VariantWith<ForeignKey>(
+ AllOf(Field(&ForeignKey::table, Eq("referencedTable")),
+ Field(&ForeignKey::column, Eq("referencedColumn")),
+ Field(&ForeignKey::updateAction, ForeignKeyAction::SetNull),
+ Field(&ForeignKey::deleteAction, ForeignKeyAction::Cascade),
+ Field(&ForeignKey::enforcement, Enforment::Deferred)))))));
}
-TEST_F(SqliteColumn, GetColumnDefinition)
+TEST_F(SqliteColumn, FlatConstructor)
{
- column.setName("Claudia");
+ column = Sqlite::Column{"table",
+ "column",
+ ColumnType::Text,
+ {ForeignKey{"referencedTable",
+ "referencedColumn",
+ ForeignKeyAction::SetNull,
+ ForeignKeyAction::Cascade,
+ Enforment::Deferred}}};
ASSERT_THAT(column,
- AllOf(
- Property(&Column::name, "Claudia"),
- Property(&Column::type, ColumnType::Numeric),
- Property(&Column::constraint, Contraint::NoConstraint)));
-}
-
-void SqliteColumn::SetUp()
-{
- column.clear();
+ AllOf(Field(&Column::name, Eq("column")),
+ Field(&Column::tableName, Eq("table")),
+ Field(&Column::type, ColumnType::Text),
+ Field(&Column::constraints,
+ ElementsAre(VariantWith<ForeignKey>(
+ AllOf(Field(&ForeignKey::table, Eq("referencedTable")),
+ Field(&ForeignKey::column, Eq("referencedColumn")),
+ Field(&ForeignKey::updateAction, ForeignKeyAction::SetNull),
+ Field(&ForeignKey::deleteAction, ForeignKeyAction::Cascade),
+ Field(&ForeignKey::enforcement, Enforment::Deferred)))))));
}
-}
+} // namespace