moved session to namespace query and move basic_schema::initialize to session constructor

This commit is contained in:
2026-04-23 16:01:44 +02:00
parent a34a3dc266
commit 3a82f4891a
30 changed files with 337 additions and 367 deletions
+15 -15
View File
@@ -4,6 +4,8 @@
#include "connection.hpp"
#include "matador/query/session.hpp"
#include "models/airplane.hpp"
#include "models/author.hpp"
#include "models/book.hpp"
@@ -14,6 +16,7 @@
#include <iostream>
using namespace matador;
using namespace matador::query;
using namespace matador::object;
using namespace matador::test;
@@ -22,7 +25,7 @@ TEST_CASE_METHOD(SessionFixture, "Session insert test", "[session][insert]") {
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
auto plane = ses.insert(make_object<airplane>(1, "Boeing", "A380"));
REQUIRE(plane.is_ok());
@@ -39,7 +42,7 @@ TEST_CASE_METHOD(SessionFixture, "Session update test", "[session][update]") {
.and_then([this] { return schema.create(db); } );
REQUIRE(res.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
auto result = ses.insert(make_object<airplane>(1, "Boeing", "A380"));
REQUIRE(result.is_ok());
@@ -70,9 +73,7 @@ TEST_CASE_METHOD(SessionFixture, "Session delete test", "[session][delete]") {
.and_then([this] { return schema.create(db); } );
REQUIRE(res.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
schema.initialize(ses);
session ses({bus, connection::dns, 4}, schema);
auto result = ses.insert(make_object<airplane>(1, "Boeing", "A380"));
REQUIRE(result.is_ok());
@@ -87,7 +88,7 @@ TEST_CASE_METHOD(SessionFixture, "Session delete test", "[session][delete]") {
result = ses.find<airplane>(1);
REQUIRE(result.is_error());
REQUIRE(result.err().ec() == orm::error_code::FailedToFindObject);
REQUIRE(result.err().ec() == query::error_code::FailedToFindObject);
}
TEST_CASE_METHOD(SessionFixture, "Session relation test", "[session][relation]") {
@@ -96,7 +97,7 @@ TEST_CASE_METHOD(SessionFixture, "Session relation test", "[session][relation]")
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
auto plane = ses.insert(make_object<airplane>(1, "Boeing", "A380"));
REQUIRE(plane.is_ok());
auto f = ses.insert(make_object<flight>(2, *plane, "sully"));
@@ -118,13 +119,13 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find object with id", "[session
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
auto a380 = ses.insert(make_object<airplane>(1, "Boeing", "A380"));
REQUIRE(a380.is_ok());
auto find_result = ses.find<airplane>(2);
REQUIRE(!find_result.is_ok());
REQUIRE((find_result.err().ec() == orm::error_code::FailedToFindObject));
REQUIRE((find_result.err().ec() == query::error_code::FailedToFindObject));
find_result = ses.find<airplane>(1);
@@ -138,7 +139,7 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find all objects", "[session][f
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
std::vector planes {
make_object<airplane>(1, "Airbus", "A380"),
@@ -175,8 +176,7 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find all objects with one-to-ma
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
schema.initialize(ses);
session ses({bus, connection::dns, 4}, schema);
std::vector authors {
make_object<author>(1, "Michael", "Crichton", "23.10.1942", 1975, true),
make_object<author>( 2, "Steven", "King", "21.9.1947", 1956, false)
@@ -230,7 +230,7 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find all objects with one-to-ma
.and_then([this] { return schema.create(db); } );
REQUIRE(result.is_ok());
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
std::vector departments {
make_object<department>(1, "Insurance"),
@@ -289,7 +289,7 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find all objects with many-to-m
return schema.create(db);
} );
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
std::vector ingredients {
make_object<ingredient>(1, "Apple"),
@@ -325,7 +325,7 @@ TEST_CASE_METHOD(SessionFixture, "Use session to find all objects with many-to-m
return schema.create(db);
} );
orm::session ses({bus, connection::dns, 4}, schema);
session ses({bus, connection::dns, 4}, schema);
std::vector ingredients {
make_object<ingredient>(1, "Apple"),