query/test/backends/SessionInsertHasOne.cpp

37 lines
1.2 KiB
C++

#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<user_identity>("users")
.and_then( [this] { return schema.attach<user_session_identity>("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<user_identity>("user1", "password");
auto us = make_object<user_session_identity>("session1", u);
REQUIRE(u.is_transient());
REQUIRE(us.is_transient());
REQUIRE(ses.insert(us).is_ok());
REQUIRE(us.is_persistent());
REQUIRE(u.is_persistent());
const auto user_result = ses.find<user_identity>(u->id);
REQUIRE(user_result.is_ok());
// REQUIRE(user_result.value()->session->session_token == "session1");
us = user_result.value()->session;
const auto token = us->session_token;
}