From 6bdf281eaba5aa9194dbac0d138e3cf81232599c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Sun, 8 Mar 2026 20:24:34 +0100 Subject: [PATCH] used make_object for object_ptr in tests --- .../matador/query/insert_query_builder.hpp | 2 +- .../intermediates/query_into_intermediate.hpp | 6 + test/backends/QueryTest.cpp | 136 +++++++++--------- 3 files changed, 75 insertions(+), 69 deletions(-) diff --git a/include/matador/query/insert_query_builder.hpp b/include/matador/query/insert_query_builder.hpp index cba6056..f83ec34 100644 --- a/include/matador/query/insert_query_builder.hpp +++ b/include/matador/query/insert_query_builder.hpp @@ -139,7 +139,7 @@ public: on_foreign_object(obj, attr); } template - static void on_has_many(const char * /*id*/, Collection &con, const char * /*join_column*/, const utils::foreign_attributes & ) {} + static void on_has_many(const char * /*id*/, Collection &/*con*/, const char * /*join_column*/, const utils::foreign_attributes & ) {} template void on_has_many_to_many(const char *id, Collection &con, const char *join_column, const char *inverse_join_column, const utils::foreign_attributes & ) { if (id == nullptr || join_column == nullptr || inverse_join_column == nullptr) { diff --git a/include/matador/query/intermediates/query_into_intermediate.hpp b/include/matador/query/intermediates/query_into_intermediate.hpp index dc9c6bc..5a50d92 100644 --- a/include/matador/query/intermediates/query_into_intermediate.hpp +++ b/include/matador/query/intermediates/query_into_intermediate.hpp @@ -6,6 +6,8 @@ #include "matador/query/value_extractor.hpp" +#include "matador/object/object_ptr.hpp" + #include "matador/utils/placeholder.hpp" namespace matador::query { @@ -21,6 +23,10 @@ public: query_values_intermediate values(const Type &obj) { return values(value_extractor::extract(obj)); } + template + query_values_intermediate values(const object::object_ptr &obj) { + return values(*obj); + } }; } diff --git a/test/backends/QueryTest.cpp b/test/backends/QueryTest.cpp index 6bc2155..d36514a 100644 --- a/test/backends/QueryTest.cpp +++ b/test/backends/QueryTest.cpp @@ -186,15 +186,15 @@ TEST_CASE_METHOD(QueryFixture, "Select statement with foreign key", "[query][for REQUIRE(db.exists(FLIGHT.table_name())); std::vector planes{ - object_ptr(std::make_shared(1, "Airbus", "A380")), - object_ptr(std::make_shared(2, "Boeing", "707")), - object_ptr(std::make_shared(3, "Boeing", "747")) + make_object(1, "Airbus", "A380"), + make_object(2, "Boeing", "707"), + make_object(3, "Boeing", "747") }; for (const auto &plane: planes) { auto res = query::insert() .into(AIRPLANE, {AIRPLANE.id, AIRPLANE.brand, AIRPLANE.model}) - .values(*plane) + .values(plane) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -236,15 +236,15 @@ TEST_CASE_METHOD(QueryFixture, "Select statement with foreign key and join_left" REQUIRE(db.exists(FLIGHT.table_name())); std::vector planes{ - object_ptr(std::make_shared(1, "Airbus", "A380")), - object_ptr(std::make_shared(2, "Boeing", "707")), - object_ptr(std::make_shared(3, "Boeing", "747")) + make_object(1, "Airbus", "A380"), + make_object(2, "Boeing", "707"), + make_object(3, "Boeing", "747") }; for (const auto &plane: planes) { auto res = query::insert() .into(AIRPLANE, {AIRPLANE.id, AIRPLANE.brand, AIRPLANE.model}) - .values(*plane) + .values(plane) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -256,16 +256,16 @@ TEST_CASE_METHOD(QueryFixture, "Select statement with foreign key and join_left" REQUIRE(count == 3); std::vector flights{ - object_ptr(std::make_shared(4, planes.at(0), "hans")), - object_ptr(std::make_shared(5, planes.at(0), "otto")), - object_ptr(std::make_shared(6, planes.at(1), "george")), - object_ptr(std::make_shared(7, planes.at(2), "paul")) + make_object(4, planes.at(0), "hans"), + make_object(5, planes.at(0), "otto"), + make_object(6, planes.at(1), "george"), + make_object(7, planes.at(2), "paul"), }; for (const auto &f: flights) { auto res = query::insert() .into(FLIGHT, {FLIGHT.id, FLIGHT.airplane_id, FLIGHT.pilot_name}) - .values(*f) + .values(f) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -317,15 +317,15 @@ TEST_CASE_METHOD(QueryFixture, "Select statement with foreign key and for single REQUIRE(db.exists(FLIGHT.table_name())); std::vector planes{ - object_ptr(std::make_shared(1, "Airbus", "A380")), - object_ptr(std::make_shared(2, "Boeing", "707")), - object_ptr(std::make_shared(3, "Boeing", "747")) + make_object(1, "Airbus", "A380"), + make_object(2, "Boeing", "707"), + make_object(3, "Boeing", "747") }; for (const auto &plane: planes) { auto res = query::insert() .into(AIRPLANE, {AIRPLANE.id, AIRPLANE.brand, AIRPLANE.model}) - .values(*plane) + .values(plane) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -339,16 +339,16 @@ TEST_CASE_METHOD(QueryFixture, "Select statement with foreign key and for single REQUIRE(count->value() == 3); std::vector flights{ - object_ptr(std::make_shared(4, planes.at(0), "hans")), - object_ptr(std::make_shared(5, planes.at(0), "otto")), - object_ptr(std::make_shared(6, planes.at(1), "george")), - object_ptr(std::make_shared(7, planes.at(2), "paul")) + make_object(4, planes.at(0), "hans"), + make_object(5, planes.at(0), "otto"), + make_object(6, planes.at(1), "george"), + make_object(7, planes.at(2), "paul") }; for (const auto &f: flights) { auto res = query::insert() .into(FLIGHT, {FLIGHT.id, FLIGHT.airplane_id, FLIGHT.pilot_name}) - .values(*f) + .values(f) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -541,14 +541,14 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with eager has many relation", repo.initialize_executor(db); const std::vector shipments { - object_ptr{std::make_shared(1, "4711")}, - object_ptr{std::make_shared(2, "0815")} + make_object(1, "4711"), + make_object(2, "0815") }; for (const auto &sh: shipments) { auto res = query::insert() .into(SHIPMENT, SHIPMENT) - .values(*sh) + .values(sh) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -561,17 +561,17 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with eager has many relation", REQUIRE(*count == 2); std::vector packages { - object_ptr{std::make_shared(3, 15.4, shipments.at(0))}, - object_ptr{std::make_shared(4, 1.3, shipments.at(0))}, - object_ptr{std::make_shared(5, 30.9, shipments.at(1))}, - object_ptr{std::make_shared(6, 22.8, shipments.at(1))}, - object_ptr{std::make_shared(7, 17.2, shipments.at(1))} + make_object(3, 15.4, shipments.at(0)), + make_object(4, 1.3, shipments.at(0)), + make_object(5, 30.9, shipments.at(1)), + make_object(6, 22.8, shipments.at(1)), + make_object(7, 17.2, shipments.at(1)) }; for (const auto &pkg: packages) { auto res = query::insert() .into(PACKAGE, PACKAGE) - .values(*pkg) + .values(pkg) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -639,27 +639,27 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with lazy has many relation", " repo.initialize_executor(db); const std::vector authors { - object_ptr{std::make_shared(1, "Michael", "Crichton", "23.10.1942", 1975, true)}, - object_ptr{std::make_shared( 2, "Steven", "King", "21.9.1947", 1956, false)} + make_object(1, "Michael", "Crichton", "23.10.1942", 1975, true), + make_object(2, "Steven", "King", "21.9.1947", 1956, false) }; const std::vector books { - object_ptr{std::make_shared(3, "Jurassic Park", authors[0], 1990)}, - object_ptr{std::make_shared(4, "Timeline", authors[0], 1999)}, - object_ptr{std::make_shared(5, "The Andromeda Strain", authors[0], 1969)}, - object_ptr{std::make_shared(6, "Congo", authors[0], 1980)}, - object_ptr{std::make_shared(7, "Prey", authors[0], 2002)}, - object_ptr{std::make_shared(8, "Carrie", authors[1], 1974)}, - object_ptr{std::make_shared(9, "The Shining", authors[1], 1977)}, - object_ptr{std::make_shared(10, "It", authors[1], 1986)}, - object_ptr{std::make_shared(11, "Misery", authors[1], 1987)}, - object_ptr{std::make_shared(12, "The Dark Tower: The Gunslinger", authors[1], 1982)}, + make_object(3, "Jurassic Park", authors.at(0), 1990), + make_object(4, "Timeline", authors.at(0), 1999), + make_object(5, "The Andromeda Strain", authors.at(0), 1969), + make_object(6, "Congo", authors.at(0), 1980), + make_object(7, "Prey", authors.at(0), 2002), + make_object(8, "Carrie", authors.at(1), 1974), + make_object(9, "The Shining", authors.at(1), 1977), + make_object(10, "It", authors.at(1), 1986), + make_object(11, "Misery", authors.at(1), 1987), + make_object(12, "The Dark Tower: The Gunslinger", authors.at(1), 1982) }; for (const auto &a: authors) { auto res = query::insert() .into(AUTHOR, {AUTHOR.id, AUTHOR.first_name, AUTHOR.last_name, AUTHOR.date_of_birth, AUTHOR.year_of_birth, AUTHOR.distinguished}) - .values(*a) + .values(a) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -674,7 +674,7 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with lazy has many relation", " for (const auto &b: books) { auto res = query::insert() .into(BOOK, {BOOK.id, BOOK.title, BOOK.author_id, BOOK.published_in}) - .values(*b) + .values(b) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -721,22 +721,22 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with lazy belongs to relation", repo.initialize_executor(db); const std::vector deps { - object_ptr{std::make_shared(1, "Human Resources")}, - object_ptr{std::make_shared(2, "Invoices")} + make_object(1, "Human Resources"), + make_object(2, "Invoices") }; const std::vector emps { - object_ptr{std::make_shared(3, "Hans", "Wurst", deps[0])}, - object_ptr{std::make_shared(4, "Steven", "Spielberg", deps[0])}, - object_ptr{std::make_shared(5, "Julia", "Roberts", deps[0])}, - object_ptr{std::make_shared(6, "Otto", "Walkes", deps[1])}, - object_ptr{std::make_shared(7, "Miss", "Marple", deps[1])}, + make_object(3, "Hans", "Wurst", deps.at(0)), + make_object(4, "Steven", "Spielberg", deps.at(0)), + make_object(5, "Julia", "Roberts", deps.at(0)), + make_object(6, "Otto", "Walkes", deps.at(1)), + make_object(7, "Miss", "Marple", deps.at(1)) }; for (const auto &dep: deps) { auto res = query::insert() .into(DEPARTMENT, {DEPARTMENT.id, DEPARTMENT.name}) - .values(*dep) + .values(dep) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -751,7 +751,7 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with lazy belongs to relation", for (const auto &emp: emps) { auto res = query::insert() .into(EMPLOYEE, {EMPLOYEE.id, EMPLOYEE.first_name, EMPLOYEE.last_name, EMPLOYEE.dep_id}) - .values(*emp) + .values(emp) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -787,27 +787,27 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with eager belongs to relation" REQUIRE(result.is_ok()); const std::vector authors { - object_ptr{std::make_shared(1, "Michael", "Crichton", "23.10.1942", 1975, true)}, - object_ptr{std::make_shared( 2, "Steven", "King", "21.9.1947", 1956, false)} + make_object(1, "Michael", "Crichton", "23.10.1942", 1975, true), + make_object(2, "Steven", "King", "21.9.1947", 1956, false) }; const std::vector books { - object_ptr{std::make_shared(3, "Jurassic Park", authors[0], 1990)}, - object_ptr{std::make_shared(4, "Timeline", authors[0], 1999)}, - object_ptr{std::make_shared(5, "The Andromeda Strain", authors[0], 1969)}, - object_ptr{std::make_shared(6, "Congo", authors[0], 1980)}, - object_ptr{std::make_shared(7, "Prey", authors[0], 2002)}, - object_ptr{std::make_shared(8, "Carrie", authors[1], 1974)}, - object_ptr{std::make_shared(9, "The Shining", authors[1], 1977)}, - object_ptr{std::make_shared(10, "It", authors[1], 1986)}, - object_ptr{std::make_shared(11, "Misery", authors[1], 1987)}, - object_ptr{std::make_shared(12, "The Dark Tower: The Gunslinger", authors[1], 1982)}, + make_object(3, "Jurassic Park", authors.at(0), 1990), + make_object(4, "Timeline", authors.at(0), 1999), + make_object(5, "The Andromeda Strain", authors.at(0), 1969), + make_object(6, "Congo", authors.at(0), 1980), + make_object(7, "Prey", authors.at(0), 2002), + make_object(8, "Carrie", authors.at(1), 1974), + make_object(9, "The Shining", authors.at(1), 1977), + make_object(10, "It", authors.at(1), 1986), + make_object(11, "Misery", authors.at(1), 1987), + make_object(12, "The Dark Tower: The Gunslinger", authors.at(1), 1982) }; for (const auto &a: authors) { auto res = query::insert() .into(AUTHOR, {AUTHOR.id, AUTHOR.first_name, AUTHOR.last_name, AUTHOR.date_of_birth, AUTHOR.year_of_birth, AUTHOR.distinguished}) - .values(*a) + .values(a) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1); @@ -822,7 +822,7 @@ TEST_CASE_METHOD(QueryFixture, "Test load entity with eager belongs to relation" for (const auto &b: books) { auto res = query::insert() .into(BOOK, {BOOK.id, BOOK.title, BOOK.author_id, BOOK.published_in}) - .values(*b) + .values(b) .execute(db); REQUIRE(res.is_ok()); REQUIRE(res->affected_rows == 1);