#include "catch2/catch_test_macros.hpp" #include "SessionFixture.hpp" #include "connection.hpp" #include "matador/query/session.hpp" #include "models/user.hpp" using namespace matador::test; using namespace matador::query; using namespace matador::object; TEST_CASE_METHOD(SessionFixture, "Test insert object with has_one relation", "[session][insert][has_one]") { const auto result = schema.attach("users") .and_then( [this] { return schema.attach("user_sessions"); } ) .and_then([this] { return schema.create(db); } ); REQUIRE(result.is_ok()); session ses({bus, connection::dns, 4}, schema); const auto u = make_object("user1", "password"); const auto us = make_object("session1", u); REQUIRE(u.is_transient()); REQUIRE(us.is_transient()); REQUIRE(ses.insert(us).is_ok()); REQUIRE(us.is_persistent()); REQUIRE(u.is_persistent()); REQUIRE(u->session->session_token == "session1"); }