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
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_delete.hpp"
#include "utils/db/sqlite/db_insert.hpp"
#include "utils/db/sqlite/db_select.hpp"
#include "utils/db/sqlite/db_update.hpp"
#include "utils/path.hpp"
namespace repertory {
class database_test : public ::testing::Test {
class utils_db_sqlite : public ::testing::Test {
public:
static console_consumer cs;
utils::db::sqlite::db3_t db3;
void SetUp() override {
event_system::instance().start();
{
sqlite3 *db3_ptr{nullptr};
auto res =
sqlite3_open_v2(":memory:", &db3_ptr, SQLITE_OPEN_READWRITE, nullptr);
auto res = sqlite3_open(":memory:", &db3_ptr);
ASSERT_EQ(SQLITE_OK, res);
ASSERT_TRUE(db3_ptr != nullptr);
db3.reset(db3_ptr);
}
std::string sql{
"CREATE TABLE [table] (column1 TEXT PRIMARY KEY UNIQUE "
"NOT NULL, column2 TEXT NOT NULL);",
};
db3_stmt_t db3_stmt;
{
std::string sql{
"CREATE TABLE [table] (column1 TEXT PRIMARY KEY UNIQUE "
"NOT NULL, column2 TEXT NOT NULL);",
};
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);
db3_stmt.reset(stmt_ptr);
}
@ -63,10 +60,7 @@ public:
ASSERT_EQ(SQLITE_DONE, res);
}
void TearDown() override {
db3.reset();
event_system::instance().stop();
}
void TearDown() override { db3.reset(); }
};
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_str = query.dump();
std::cout << query_str << std::endl;
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"}
.where("column1")
.equals("test1")
@ -163,7 +157,7 @@ TEST_F(database_test, db_delete_where_query) {
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"}
.column_value("column1", "test9")
.column_value("column2", "test9");
@ -173,7 +167,7 @@ TEST_F(database_test, db_insert_query) {
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"}
.or_replace()
.column_value("column1", "test1")
@ -185,14 +179,14 @@ TEST_F(database_test, db_insert_or_replace_query) {
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_str = query.dump();
std::cout << query_str << std::endl;
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"}
.where("column1")
.equals("test1")
@ -205,7 +199,7 @@ TEST_F(database_test, db_select_where_query) {
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 =
utils::db::sqlite::db_select{*db3.get(), "table"}
.group([](auto &grp) {
@ -226,7 +220,7 @@ TEST_F(database_test, db_select_where_with_group_query) {
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"}
.column("column1")
.column("column2")
@ -242,7 +236,7 @@ TEST_F(database_test, db_select_columns_query) {
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"}
.column_value("column1", "moose")
.where("column1")
@ -257,7 +251,7 @@ TEST_F(database_test, db_update_query) {
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_select(*db3.get(), "test0", "test1", true);
@ -265,7 +259,7 @@ TEST_F(database_test, insert_select_delete) {
common_delete(*db3.get(), true);
}
TEST_F(database_test, insert_update_delete) {
TEST_F(utils_db_sqlite, insert_update_delete) {
common_insert(*db3.get());
{
@ -283,7 +277,7 @@ TEST_F(database_test, insert_update_delete) {
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());
{
@ -301,3 +295,5 @@ TEST_F(database_test, insert_or_replace_and_delete) {
common_delete(*db3.get());
}
} // namespace repertory
#endif // defined(PROJECT_ENABLE_SQLITE)