fixed has one definitions
This commit is contained in:
parent
820b5432b2
commit
8c8423bf64
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "product.hpp"
|
||||
|
||||
#include "matador/object/collection.hpp"
|
||||
#include "matador/object/object_ptr.hpp"
|
||||
|
||||
#include "matador/utils/foreign_attributes.hpp"
|
||||
|
|
@ -13,14 +14,14 @@ struct order;
|
|||
struct order_details {
|
||||
unsigned int order_details_id;
|
||||
object::object_ptr<order> order_;
|
||||
object::object_ptr<product> product_;
|
||||
object::collection<object::object_ptr<product>> products_;
|
||||
|
||||
template<class Operator>
|
||||
void process(Operator &op) {
|
||||
namespace field = matador::access;
|
||||
field::primary_key(op, "order_details_id", order_details_id);
|
||||
field::belongs_to(op, "order_id", order_, utils::CascadeNoneFetchLazy);
|
||||
field::has_one(op, "product_id", product_, utils::CascadeNoneFetchLazy);
|
||||
field::has_many(op, "order_products", products_, "product_id", utils::CascadeNoneFetchLazy);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,9 @@
|
|||
#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"
|
||||
|
|
@ -23,8 +15,6 @@ using namespace matador::sql;
|
|||
|
||||
TEST_CASE("Generate columns from object", "[column][generator]") {
|
||||
using namespace matador::test;
|
||||
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
|
||||
connection_pool pool("noop://noop.db", 4);
|
||||
|
||||
schema s;
|
||||
auto result = s.attach<product>("product");
|
||||
|
|
@ -53,8 +43,6 @@ 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;
|
||||
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
|
||||
connection_pool pool("noop://noop.db", 4);
|
||||
|
||||
schema s;
|
||||
auto result = s.attach<supplier>("supplier")
|
||||
|
|
@ -82,8 +70,7 @@ TEST_CASE("Generate columns for object with has many relation", "[column][genera
|
|||
{ &order_table, "ship_postal_code", "c11" },
|
||||
{ &order_table, "ship_country", "c12" },
|
||||
{ &order_details_table, "order_details_id", "c13" },
|
||||
{ &order_details_table, "order_id", "c14" },
|
||||
{ &order_details_table, "product_id", "c15" }
|
||||
{ &order_details_table, "order_id", "c14" }
|
||||
};
|
||||
REQUIRE(!columns.empty());
|
||||
REQUIRE(columns.size() == expected_columns.size());
|
||||
|
|
@ -96,8 +83,6 @@ 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;
|
||||
backend_provider::instance().register_backend("noop", std::make_unique<orm::test_backend_service>());
|
||||
connection_pool pool("noop://noop.db", 4);
|
||||
|
||||
schema s;
|
||||
auto result = s.attach<book>("books")
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ TEST_CASE("Create sql query data for entity with eager has many belongs to", "[q
|
|||
|
||||
REQUIRE(q.is_ok());
|
||||
const auto sql = q->str(db);
|
||||
const std::string expected_sql = R"(SELECT "t01"."order_id", "t01"."order_date", "t01"."required_date", "t01"."shipped_date", "t01"."ship_via", "t01"."freight", "t01"."ship_name", "t01"."ship_address", "t01"."ship_city", "t01"."ship_region", "t01"."ship_postal_code", "t01"."ship_country", "t02"."order_details_id", "t02"."order_id", "t02"."product_id" FROM "orders" "t01" LEFT JOIN "order_details" "t02" ON "t01"."order_id" = "t02"."order_id" WHERE "t01"."order_id" = ? ORDER BY "t01"."order_id" ASC)";
|
||||
const std::string expected_sql = R"(SELECT "t01"."order_id", "t01"."order_date", "t01"."required_date", "t01"."shipped_date", "t01"."ship_via", "t01"."freight", "t01"."ship_name", "t01"."ship_address", "t01"."ship_city", "t01"."ship_region", "t01"."ship_postal_code", "t01"."ship_country", "t02"."order_details_id", "t02"."order_id" FROM "orders" "t01" LEFT JOIN "order_details" "t02" ON "t01"."order_id" = "t02"."order_id" WHERE "t01"."order_id" = ? ORDER BY "t01"."order_id" ASC)";
|
||||
REQUIRE(expected_sql == sql);
|
||||
|
||||
const auto& data = eqb.query_data();
|
||||
|
|
@ -211,8 +211,7 @@ TEST_CASE("Create sql query data for entity with eager has many belongs to", "[q
|
|||
{ &orders, "ship_postal_code", "c11" },
|
||||
{ &orders, "ship_country", "c12" },
|
||||
{ &order_details, "order_details_id", "c13" },
|
||||
{ &order_details, "order_id", "c14" },
|
||||
{ &order_details, "product_id", "c15" }
|
||||
{ &order_details, "order_id", "c14" }
|
||||
};
|
||||
REQUIRE(data.columns.size() == expected_columns.size());
|
||||
for (size_t i = 0; i != expected_columns.size(); ++i) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue