diff options
Diffstat (limited to 'tests/unit/unittest/sqlitecolumn-test.cpp')
-rw-r--r-- | tests/unit/unittest/sqlitecolumn-test.cpp | 99 |
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 |