query/test/orm/backend/test_connection.cpp

72 lines
2.3 KiB
C++

#include "test_connection.hpp"
#include "test_statement.hpp"
#include "test_result_reader.hpp"
#include "matador/sql/query_context.hpp"
#include "matador/sql/record.hpp"
#include "matador/sql/internal/query_result_impl.hpp"
#include "matador/sql/interface/statement_impl.hpp"
#include "matador/utils/string.hpp"
#include <string>
#include <memory>
namespace matador::test::orm {
test_connection::test_connection(const sql::connection_info &info)
: connection_impl(info) {}
utils::result<void, utils::error> test_connection::open() {
is_open_ = true;
return utils::ok<void>();
}
utils::result<void, utils::error> test_connection::close() {
is_open_ = false;
return utils::ok<void>();
}
utils::result<bool, utils::error> test_connection::is_open() const {
return utils::ok(is_open_);
}
utils::result<bool, utils::error> test_connection::is_valid() const {
return is_open();
}
utils::result<utils::version, utils::error> test_connection::client_version() const {
return utils::ok(utils::version{1, 2, 3});
}
utils::result<utils::version, utils::error> test_connection::server_version() const {
return utils::ok(utils::version{3, 2, 1});
}
utils::result<size_t, utils::error> test_connection::execute(const std::string &/*stmt*/) {
return utils::ok(static_cast<size_t>(4));
}
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> test_connection::fetch(const sql::query_context &context) {
return utils::ok(std::make_unique<sql::query_result_impl>(std::make_unique<test_result_reader>(), context.prototype, context.prototype.size()));
}
utils::result<std::unique_ptr<sql::statement_impl>, utils::error> test_connection::prepare(const sql::query_context &context) {
std::unique_ptr<sql::statement_impl> s(std::make_unique<test_statement>(context));
return utils::ok(std::move(s));
}
utils::result<std::vector<object::attribute_definition>, utils::error> test_connection::describe(const std::string &/*table*/) {
return utils::ok(std::vector<object::attribute_definition>{});
}
utils::result<bool, utils::error> test_connection::exists(const std::string &/*schema_name*/, const std::string &/*table_name*/) {
return utils::ok(false);
}
std::string test_connection::to_escaped_string(const utils::blob& value) const {
return utils::to_string(value);
}
}