From fed4f40cfb0927983ec97b5ed5762465f5c21048 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Wed, 2 Oct 2024 14:25:14 -0500 Subject: [PATCH] [Unit Test] SQLite mini-ORM unit tests and cleanup #14 --- .../repertory_test/src/database_test.cpp | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/repertory/repertory_test/src/database_test.cpp b/repertory/repertory_test/src/database_test.cpp index c8b1dc74..9102e29d 100644 --- a/repertory/repertory_test/src/database_test.cpp +++ b/repertory/repertory_test/src/database_test.cpp @@ -201,4 +201,72 @@ TEST_F(database_test, insert_select_delete) { EXPECT_EQ(std::size_t(0U), row_count); } } + +TEST_F(database_test, insert_update_delete) { + { + auto query = db::db_insert{*db3.get(), "table"} + .column_value("column1", "test0") + .column_value("column2", "test1"); + auto res = query.go(); + EXPECT_TRUE(res.ok()); + } + + { + auto query = db::db_update{*db3.get(), "table"} + .column_value("column1", "moose") + .where("column1") + .equals("test0"); + auto res = query.go(); + EXPECT_TRUE(res.ok()); + } + + { + auto query = db::db_select{*db3.get(), "table"}; + auto res = query.go(); + EXPECT_TRUE(res.ok()); + EXPECT_TRUE(res.has_row()); + + std::size_t row_count{}; + while (res.has_row()) { + std::optional row; + EXPECT_TRUE(res.get_row(row)); + EXPECT_TRUE(row.has_value()); + if (row.has_value()) { + auto columns = row.value().get_columns(); + EXPECT_EQ(std::size_t(2U), columns.size()); + EXPECT_STREQ("column1", columns[0U].get_name().c_str()); + EXPECT_STREQ("moose", columns[0U].get_value().c_str()); + EXPECT_STREQ("column2", columns[1U].get_name().c_str()); + EXPECT_STREQ("test1", columns[1U].get_value().c_str()); + for (auto &&column : columns) { + std::cout << column.get_index() << ':'; + std::cout << column.get_name() << ':'; + std::cout << column.get_value() << std::endl; + } + } + ++row_count; + } + + EXPECT_EQ(std::size_t(1U), row_count); + } + + { + auto query = db::db_delete{*db3.get(), "table"}; + auto res = query.go(); + EXPECT_TRUE(res.ok()); + } + + { + auto query = db::db_select{*db3.get(), "table"}; + auto res = query.go(); + EXPECT_TRUE(res.ok()); + + std::size_t row_count{}; + while (res.has_row()) { + ++row_count; + } + + EXPECT_EQ(std::size_t(0U), row_count); + } +} } // namespace repertory