fixed backend test compilation

This commit is contained in:
Sascha Kühl
2025-02-12 16:01:52 +01:00
parent 42acaf24ce
commit 5d41a592bb
36 changed files with 727 additions and 575 deletions
+46 -34
View File
@@ -1,9 +1,10 @@
#include <catch2/catch_test_macros.hpp>
#include "matador/sql/column.hpp"
#include "matador/sql/condition.hpp"
#include "matador/sql/connection.hpp"
#include "matador/sql/query.hpp"
#include "matador/query/condition.hpp"
#include "matador/query/query.hpp"
#include "models/person.hpp"
@@ -13,15 +14,18 @@
#include <vector>
using namespace matador::sql;
using namespace matador::object;
using namespace matador::query;
using namespace matador::test;
TEST_CASE_METHOD(QueryFixture, "Test create statement", "[query][statement][create]") {
schema.attach<matador::test::person>("person");
REQUIRE(schema.attach<matador::test::person>("person"));
auto stmt = query::create()
.table<matador::test::person>("person", schema)
.prepare(db);
REQUIRE(stmt);
auto res = stmt.execute();
auto res = stmt->execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 0);
tables_to_drop.emplace("person");
@@ -39,12 +43,13 @@ TEST_CASE_METHOD(QueryFixture, "Test create statement", "[query][statement][crea
TEST_CASE_METHOD(QueryFixture, "Test insert statement", "[query][statement][insert]") {
using namespace matador::test;
schema.attach<person>("person");
REQUIRE(schema.attach<person>("person"));
auto stmt = query::create()
.table<person>("person", schema)
.prepare(db);
REQUIRE(stmt);
auto res = stmt.execute();
auto res = stmt->execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 0);
tables_to_drop.emplace("person");
@@ -57,8 +62,9 @@ TEST_CASE_METHOD(QueryFixture, "Test insert statement", "[query][statement][inse
.into<person>("person", schema)
.values<person>()
.prepare(db);
REQUIRE(stmt);
res = stmt.bind(george)
res = stmt->bind(george)
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
@@ -79,12 +85,13 @@ TEST_CASE_METHOD(QueryFixture, "Test update statement", "[query][statement][upda
using namespace matador::test;
using namespace matador::utils;
schema.attach<matador::test::person>("person");
REQUIRE(schema.attach<matador::test::person>("person"));
auto stmt = query::create()
.table<matador::test::person>("person", schema)
.prepare(db);
REQUIRE(stmt);
auto res = stmt.execute();
auto res = stmt->execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 0);
tables_to_drop.emplace("person");
@@ -97,8 +104,9 @@ TEST_CASE_METHOD(QueryFixture, "Test update statement", "[query][statement][upda
.into<person>("person", schema)
.values<person>()
.prepare(db);
REQUIRE(stmt);
res = stmt.bind(george)
res = stmt->bind(george)
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
@@ -120,8 +128,9 @@ TEST_CASE_METHOD(QueryFixture, "Test update statement", "[query][statement][upda
.set<person>()
.where("id"_col == _)
.prepare(db);
REQUIRE(stmt);
res = stmt.bind(george)
res = stmt->bind(george)
.bind(4, george.id)
.execute();
REQUIRE(res.is_ok());
@@ -142,12 +151,13 @@ TEST_CASE_METHOD(QueryFixture, "Test update statement", "[query][statement][upda
TEST_CASE_METHOD(QueryFixture, "Test delete statement", "[query][statement][delete]") {
using namespace matador::test;
schema.attach<matador::test::person>("person");
REQUIRE(schema.attach<matador::test::person>("person"));
auto stmt = query::create()
.table<matador::test::person>("person", schema)
.prepare(db);
REQUIRE(stmt);
auto res = stmt.execute();
auto res = stmt->execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 0);
tables_to_drop.emplace("person");
@@ -158,6 +168,7 @@ TEST_CASE_METHOD(QueryFixture, "Test delete statement", "[query][statement][dele
.into<person>("person", schema)
.values<person>()
.prepare(db);
REQUIRE(stmt);
std::vector<person> peoples {
{1,"george", 45, {1,2,3,4}},
@@ -167,20 +178,20 @@ TEST_CASE_METHOD(QueryFixture, "Test delete statement", "[query][statement][dele
};
for (const auto &p : peoples) {
res = stmt.bind(p)
res = stmt->bind(p)
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
stmt.reset();
stmt->reset();
}
auto select_stmt = query::select<person>(schema)
.from("person")
.where("name"_col == matador::utils::_)
.prepare(db);
REQUIRE(select_stmt);
auto rows = select_stmt
.bind(0, "jane")
auto rows = select_stmt->bind(0, "jane")
.fetch<person>();
REQUIRE(rows.is_ok());
@@ -196,30 +207,28 @@ TEST_CASE_METHOD(QueryFixture, "Test delete statement", "[query][statement][dele
.from("person")
.where("name"_col == matador::utils::_)
.prepare(db);
REQUIRE(stmt);
res = stmt.bind(0, "jane")
res = stmt->bind(0, "jane")
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
select_stmt.reset();
auto row = select_stmt
.bind(0, "jane")
select_stmt->reset();
auto row = select_stmt->bind(0, "jane")
.fetch_one<person>();
REQUIRE(row.is_ok());
REQUIRE(*row == nullptr);
stmt.reset();
res = stmt
.bind(0, "merlin")
stmt->reset();
res = stmt->bind(0, "merlin")
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
select_stmt.reset();
row = select_stmt
.bind(0, "merlin")
select_stmt->reset();
row = select_stmt->bind(0, "merlin")
.fetch_one<person>();
REQUIRE(row.is_ok());
@@ -229,12 +238,13 @@ TEST_CASE_METHOD(QueryFixture, "Test delete statement", "[query][statement][dele
TEST_CASE_METHOD(QueryFixture, "Test reuse prepared statement", "[query][statement][reuse]") {
using namespace matador::test;
schema.attach<matador::test::person>("person");
REQUIRE(schema.attach<matador::test::person>("person"));
auto stmt = query::create()
.table<matador::test::person>("person", schema)
.prepare(db);
REQUIRE(stmt);
auto res = stmt.execute();
auto res = stmt->execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 0);
tables_to_drop.emplace("person");
@@ -245,6 +255,7 @@ TEST_CASE_METHOD(QueryFixture, "Test reuse prepared statement", "[query][stateme
.into<person>("person", schema)
.values<person>()
.prepare(db);
REQUIRE(stmt);
std::vector<person> peoples {
{1,"george", 45, {1,2,3,4}},
@@ -254,18 +265,19 @@ TEST_CASE_METHOD(QueryFixture, "Test reuse prepared statement", "[query][stateme
};
for (const auto &p : peoples) {
res = stmt.bind(p)
res = stmt->bind(p)
.execute();
REQUIRE(res.is_ok());
REQUIRE(*res == 1);
stmt.reset();
stmt->reset();
}
stmt = query::select<person>(schema)
.from("person")
.prepare(db);
REQUIRE(stmt);
auto rows = stmt.fetch<person>();
auto rows = stmt->fetch<person>();
REQUIRE(rows.is_ok());
size_t index = 0;
@@ -277,9 +289,9 @@ TEST_CASE_METHOD(QueryFixture, "Test reuse prepared statement", "[query][stateme
++index;
}
stmt.reset();
stmt->reset();
rows = stmt.fetch<person>();
rows = stmt->fetch<person>();
REQUIRE(rows.is_ok());
index = 0;