From cf441e8198b4bb7ccf41a41506dbddbab2048f24 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 2 Jun 2020 22:16:06 +0200 Subject: Sqlite: Add primary key table constraint to table builder Change-Id: I60c158eb76db2217a2d045053bb8e47eef75ff7a Reviewed-by: Tim Jenssen --- tests/unit/unittest/createtablesqlstatementbuilder-test.cpp | 13 +++++++++++++ tests/unit/unittest/sqlitetable-test.cpp | 13 +++++++++++++ 2 files changed, 26 insertions(+) (limited to 'tests/unit') diff --git a/tests/unit/unittest/createtablesqlstatementbuilder-test.cpp b/tests/unit/unittest/createtablesqlstatementbuilder-test.cpp index 49099081a0..0e92b06897 100644 --- a/tests/unit/unittest/createtablesqlstatementbuilder-test.cpp +++ b/tests/unit/unittest/createtablesqlstatementbuilder-test.cpp @@ -530,4 +530,17 @@ TEST_F(CreateTableSqlStatementBuilder, BlobType) ASSERT_THAT(builder.sqlStatement(), "CREATE TABLE test(data BLOB)"); } +TEST_F(CreateTableSqlStatementBuilder, TablePrimaryKeyConstaint) +{ + builder.clear(); + builder.setTableName("test"); + builder.addColumn("id", ColumnType::Integer); + builder.addColumn("text", ColumnType::Text); + + builder.addConstraint(Sqlite::TablePrimaryKey{{"id, text"}}); + auto statement = builder.sqlStatement(); + + ASSERT_THAT(statement, "CREATE TABLE test(id INTEGER, text TEXT, PRIMARY KEY(id, text))"); +} + } // namespace diff --git a/tests/unit/unittest/sqlitetable-test.cpp b/tests/unit/unittest/sqlitetable-test.cpp index 05d3e73462..f96b451785 100644 --- a/tests/unit/unittest/sqlitetable-test.cpp +++ b/tests/unit/unittest/sqlitetable-test.cpp @@ -292,4 +292,17 @@ TEST_F(SqliteTable, AddForeignKeyColumnWithColumnAndNotNull) VariantWith(Eq(Sqlite::NotNull{})))))); } +TEST_F(SqliteTable, AddPrimaryTableContraint) +{ + table.setName(tableName.clone()); + const auto &idColumn = table.addColumn("id"); + const auto &nameColumn = table.addColumn("name"); + table.addPrimaryKeyContraint({idColumn, nameColumn}); + + EXPECT_CALL(mockDatabase, + execute( + Eq("CREATE TABLE testTable(id NUMERIC, name NUMERIC, PRIMARY KEY(id, name))"))); + + table.initialize(mockDatabase); +} } // namespace -- cgit v1.2.3