This commit is contained in:
Scott E. Graves 2024-10-09 10:37:43 -05:00
parent 14ebdab034
commit 675707b46c

View File

@ -19,42 +19,39 @@
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.
*/ */
#include "test_common.hpp" #include "test.hpp"
#if defined(PROJECT_ENABLE_SQLITE)
#include "utils/db/sqlite/db_common.hpp" #include "utils/db/sqlite/db_common.hpp"
#include "utils/db/sqlite/db_delete.hpp" #include "utils/db/sqlite/db_delete.hpp"
#include "utils/db/sqlite/db_insert.hpp" #include "utils/db/sqlite/db_insert.hpp"
#include "utils/db/sqlite/db_select.hpp" #include "utils/db/sqlite/db_select.hpp"
#include "utils/db/sqlite/db_update.hpp" #include "utils/db/sqlite/db_update.hpp"
#include "utils/path.hpp"
namespace repertory { namespace repertory {
class database_test : public ::testing::Test { class utils_db_sqlite : public ::testing::Test {
public: public:
static console_consumer cs;
utils::db::sqlite::db3_t db3; utils::db::sqlite::db3_t db3;
void SetUp() override { void SetUp() override {
event_system::instance().start();
{ {
sqlite3 *db3_ptr{nullptr}; sqlite3 *db3_ptr{nullptr};
auto res = auto res = sqlite3_open(":memory:", &db3_ptr);
sqlite3_open_v2(":memory:", &db3_ptr, SQLITE_OPEN_READWRITE, nullptr);
ASSERT_EQ(SQLITE_OK, res); ASSERT_EQ(SQLITE_OK, res);
ASSERT_TRUE(db3_ptr != nullptr); ASSERT_TRUE(db3_ptr != nullptr);
db3.reset(db3_ptr); db3.reset(db3_ptr);
} }
db3_stmt_t db3_stmt;
{
std::string sql{ std::string sql{
"CREATE TABLE [table] (column1 TEXT PRIMARY KEY UNIQUE " "CREATE TABLE [table] (column1 TEXT PRIMARY KEY UNIQUE "
"NOT NULL, column2 TEXT NOT NULL);", "NOT NULL, column2 TEXT NOT NULL);",
}; };
db3_stmt_t db3_stmt;
{
sqlite3_stmt *stmt_ptr{}; sqlite3_stmt *stmt_ptr{};
res = sqlite3_prepare_v2(db3_ptr, sql.c_str(), -1, &stmt_ptr, nullptr); res = sqlite3_prepare_v2(db3.get(), sql.c_str(), -1, &stmt_ptr, nullptr);
ASSERT_EQ(SQLITE_OK, res); ASSERT_EQ(SQLITE_OK, res);
db3_stmt.reset(stmt_ptr); db3_stmt.reset(stmt_ptr);
} }
@ -63,10 +60,7 @@ public:
ASSERT_EQ(SQLITE_DONE, res); ASSERT_EQ(SQLITE_DONE, res);
} }
void TearDown() override { void TearDown() override { db3.reset(); }
db3.reset();
event_system::instance().stop();
}
}; };
static void common_insert(sqlite3 &db, bool dump = false) { static void common_insert(sqlite3 &db, bool dump = false) {
@ -143,14 +137,14 @@ static void common_delete(sqlite3 &db, bool dump = false) {
} }
} }
TEST_F(database_test, db_delete_query) { TEST_F(utils_db_sqlite, db_delete_query) {
auto query = utils::db::sqlite::db_delete{*db3.get(), "table"}; auto query = utils::db::sqlite::db_delete{*db3.get(), "table"};
auto query_str = query.dump(); auto query_str = query.dump();
std::cout << query_str << std::endl; std::cout << query_str << std::endl;
EXPECT_STREQ(R"(DELETE FROM "table";)", query_str.c_str()); EXPECT_STREQ(R"(DELETE FROM "table";)", query_str.c_str());
} }
TEST_F(database_test, db_delete_where_query) { TEST_F(utils_db_sqlite, db_delete_where_query) {
auto query = utils::db::sqlite::db_delete{*db3.get(), "table"} auto query = utils::db::sqlite::db_delete{*db3.get(), "table"}
.where("column1") .where("column1")
.equals("test1") .equals("test1")
@ -163,7 +157,7 @@ TEST_F(database_test, db_delete_where_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_insert_query) { TEST_F(utils_db_sqlite, db_insert_query) {
auto query = utils::db::sqlite::db_insert{*db3.get(), "table"} auto query = utils::db::sqlite::db_insert{*db3.get(), "table"}
.column_value("column1", "test9") .column_value("column1", "test9")
.column_value("column2", "test9"); .column_value("column2", "test9");
@ -173,7 +167,7 @@ TEST_F(database_test, db_insert_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_insert_or_replace_query) { TEST_F(utils_db_sqlite, db_insert_or_replace_query) {
auto query = utils::db::sqlite::db_insert{*db3.get(), "table"} auto query = utils::db::sqlite::db_insert{*db3.get(), "table"}
.or_replace() .or_replace()
.column_value("column1", "test1") .column_value("column1", "test1")
@ -185,14 +179,14 @@ TEST_F(database_test, db_insert_or_replace_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_select_query) { TEST_F(utils_db_sqlite, db_select_query) {
auto query = utils::db::sqlite::db_select{*db3.get(), "table"}; auto query = utils::db::sqlite::db_select{*db3.get(), "table"};
auto query_str = query.dump(); auto query_str = query.dump();
std::cout << query_str << std::endl; std::cout << query_str << std::endl;
EXPECT_STREQ(R"(SELECT * FROM "table";)", query_str.c_str()); EXPECT_STREQ(R"(SELECT * FROM "table";)", query_str.c_str());
} }
TEST_F(database_test, db_select_where_query) { TEST_F(utils_db_sqlite, db_select_where_query) {
auto query = utils::db::sqlite::db_select{*db3.get(), "table"} auto query = utils::db::sqlite::db_select{*db3.get(), "table"}
.where("column1") .where("column1")
.equals("test1") .equals("test1")
@ -205,7 +199,7 @@ TEST_F(database_test, db_select_where_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_select_where_with_group_query) { TEST_F(utils_db_sqlite, db_select_where_with_group_query) {
auto query = auto query =
utils::db::sqlite::db_select{*db3.get(), "table"} utils::db::sqlite::db_select{*db3.get(), "table"}
.group([](auto &grp) { .group([](auto &grp) {
@ -226,7 +220,7 @@ TEST_F(database_test, db_select_where_with_group_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_select_columns_query) { TEST_F(utils_db_sqlite, db_select_columns_query) {
auto query = utils::db::sqlite::db_select{*db3.get(), "table"} auto query = utils::db::sqlite::db_select{*db3.get(), "table"}
.column("column1") .column("column1")
.column("column2") .column("column2")
@ -242,7 +236,7 @@ TEST_F(database_test, db_select_columns_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, db_update_query) { TEST_F(utils_db_sqlite, db_update_query) {
auto query = utils::db::sqlite::db_update{*db3.get(), "table"} auto query = utils::db::sqlite::db_update{*db3.get(), "table"}
.column_value("column1", "moose") .column_value("column1", "moose")
.where("column1") .where("column1")
@ -257,7 +251,7 @@ TEST_F(database_test, db_update_query) {
query_str.c_str()); query_str.c_str());
} }
TEST_F(database_test, insert_select_delete) { TEST_F(utils_db_sqlite, insert_select_delete) {
common_insert(*db3.get(), true); common_insert(*db3.get(), true);
common_select(*db3.get(), "test0", "test1", true); common_select(*db3.get(), "test0", "test1", true);
@ -265,7 +259,7 @@ TEST_F(database_test, insert_select_delete) {
common_delete(*db3.get(), true); common_delete(*db3.get(), true);
} }
TEST_F(database_test, insert_update_delete) { TEST_F(utils_db_sqlite, insert_update_delete) {
common_insert(*db3.get()); common_insert(*db3.get());
{ {
@ -283,7 +277,7 @@ TEST_F(database_test, insert_update_delete) {
common_delete(*db3.get()); common_delete(*db3.get());
} }
TEST_F(database_test, insert_or_replace_and_delete) { TEST_F(utils_db_sqlite, insert_or_replace_and_delete) {
common_insert(*db3.get()); common_insert(*db3.get());
{ {
@ -301,3 +295,5 @@ TEST_F(database_test, insert_or_replace_and_delete) {
common_delete(*db3.get()); common_delete(*db3.get());
} }
} // namespace repertory } // namespace repertory
#endif // defined(PROJECT_ENABLE_SQLITE)