37 lines
1.2 KiB
C++
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;
|
|
} |