#include #include #include #include #include #include "libreichwein/file.h" #include "config.h" #include "storage.h" #include "whiteboard.h" namespace fs = std::filesystem; namespace { const std::string testDbFilename{"./whiteboard.db3"}; } class CompiledSQLTest: public ::testing::Test { protected: CompiledSQLTest(){ } ~CompiledSQLTest() override{ } void SetUp() override { std::error_code ec; fs::remove(testDbFilename, ec); } void TearDown() override { std::error_code ec; fs::remove(testDbFilename, ec); } }; TEST_F(CompiledSQLTest, create) { SQLite::Database db{testDbFilename, SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE}; CompiledSQL stmt1{db}; stmt1.init("CREATE TABLE documents (id VARCHAR(16) PRIMARY KEY)"); stmt1.execute(); CompiledSQL stmt2{db}; stmt2.init("INSERT INTO documents (id) values (?)"); stmt2.bind(1, "abc"); ASSERT_TRUE(stmt2.execute()); CompiledSQL stmt3{db}; stmt3.init("SELECT id FROM documents WHERE id = ?"); stmt3.bind(1, "abc"); ASSERT_TRUE(stmt3.execute()); EXPECT_EQ(stmt3.getColumn(0), "abc"); stmt3.init("SELECT id FROM documents WHERE id = ?"); stmt3.bind(1, "def"); ASSERT_FALSE(stmt3.execute()); EXPECT_TRUE(fs::exists(testDbFilename)); }