observer progress, added to schema and added schema_observer class

This commit is contained in:
Sascha Kühl
2025-12-19 15:56:36 +01:00
parent 5e2d2ddde5
commit d104222fdd
16 changed files with 205 additions and 116 deletions
+20 -3
View File
@@ -1,10 +1,17 @@
#include <catch2/catch_test_macros.hpp>
#include "matador/sql/backend_provider.hpp"
#include "matador/sql/connection_pool.hpp"
#include "matador/sql/interface/connection_impl.hpp"
#include "matador/query/generator.hpp"
#include "matador/query/table.hpp"
#include "matador/query/schema.hpp"
#include "matador/object/repository.hpp"
#include "../backend/test_backend_service.hpp"
#include "../test/models/product.hpp"
#include "../test/models/order.hpp"
#include "../test/models/book.hpp"
@@ -12,10 +19,14 @@
using namespace matador::query;
using namespace matador::object;
using namespace matador::sql;
TEST_CASE("Generate columns from object", "[column][generator]") {
using namespace matador::test;
repository s("main");
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
connection_pool pool("noop://noop.db", 4);
schema s(pool);
auto result = s.attach<product>("product");
REQUIRE( result );
@@ -42,7 +53,10 @@ TEST_CASE("Generate columns from object", "[column][generator]") {
TEST_CASE("Generate columns for object with has many relation", "[column][generator][relation]") {
using namespace matador::test;
repository s("main");
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
connection_pool pool("noop://noop.db", 4);
schema s(pool);
auto result = s.attach<supplier>("supplier")
.and_then( [&s] { return s.attach<category>("categories"); } )
.and_then( [&s] { return s.attach<order_details>("order_details"); } )
@@ -82,7 +96,10 @@ TEST_CASE("Generate columns for object with has many relation", "[column][genera
TEST_CASE("Generate columns for object with eager foreign key relation", "[column][generator][eager]") {
using namespace matador::test;
repository s("main");
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
connection_pool pool("noop://noop.db", 4);
schema s(pool);
auto result = s.attach<book>("books")
.and_then( [&s] { return s.attach<author>("authors"); } );
REQUIRE(result);