diff options
-rw-r--r-- | compiledsql.h | 2 | ||||
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | tests/test-compiledsql.cpp | 34 |
3 files changed, 25 insertions, 13 deletions
diff --git a/compiledsql.h b/compiledsql.h index 923be83..7510408 100644 --- a/compiledsql.h +++ b/compiledsql.h @@ -13,6 +13,7 @@ public: void init(const std::string& stmt); + // index 1-based as in SQLite template<typename T> void bind(int index, T value) { @@ -21,6 +22,7 @@ public: bool execute(); + // index 0-based as in SQLite template<typename T> T getColumn(const int index) { diff --git a/debian/control b/debian/control index aecfa97..6b0db0e 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: whiteboard Section: web Priority: optional Maintainer: Roland Reichwein <mail@reichwein.it> -Build-Depends: debhelper (>= 12), libboost-all-dev | libboost1.71-all-dev, clang | g++-9, llvm | g++-9, lld | g++-9, uglifyjs, python3-pkg-resources, htmlmin, cleancss, libfcgi-dev, libqrcodegencpp-dev, libmagick++-dev, pkg-config, libfmt-dev, libsqlitecpp-dev, googletest, gcovr, webserver, libreichwein-dev +Build-Depends: debhelper (>= 12), libboost-all-dev | libboost1.71-all-dev, clang | g++-9, llvm | g++-9, lld | g++-9, uglifyjs, python3-pkg-resources, htmlmin, cleancss, libfcgi-dev, libqrcodegencpp-dev, libgraphicsmagick++-dev, pkg-config, libfmt-dev, libsqlitecpp-dev, googletest, gcovr, webserver, libreichwein-dev Standards-Version: 4.5.0 Homepage: http://www.reichwein.it/whiteboard/ diff --git a/tests/test-compiledsql.cpp b/tests/test-compiledsql.cpp index 4fe29e0..00a8221 100644 --- a/tests/test-compiledsql.cpp +++ b/tests/test-compiledsql.cpp @@ -14,7 +14,6 @@ namespace fs = std::filesystem; namespace { - const std::string testConfigFilename{"./test.conf"}; const std::string testDbFilename{"./whiteboard.db3"}; } @@ -29,29 +28,40 @@ protected: void SetUp() override { - File::setFile(testConfigFilename, R"CONFIG( -<config> - <datapath>.</datapath> - <maxage>2592000</maxage> -</config> -)CONFIG"); std::error_code ec; fs::remove(testDbFilename, ec); - - m_config = std::make_shared<Config>(testConfigFilename); } void TearDown() override { std::error_code ec; fs::remove(testDbFilename, ec); - fs::remove(testConfigFilename, ec); } - std::shared_ptr<Config> m_config; }; -TEST_F(CompiledSQLTest, connection) +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<std::string>(0), "abc"); + stmt3.init("SELECT id FROM documents WHERE id = ?"); + stmt3.bind(1, "def"); + ASSERT_FALSE(stmt3.execute()); + + EXPECT_TRUE(fs::exists(testDbFilename)); } |