query/test/orm/backend/test_statement.cpp

31 lines
1.1 KiB
C++

#include "test_statement.hpp"
#include "test_result_reader.hpp"
#include "test_parameter_binder.hpp"
#include <chrono>
#include <random>
#include <thread>
namespace matador::test::orm {
test_statement::test_statement(const sql::query_context &query)
: statement_impl(query) {}
utils::result<size_t, utils::error> test_statement::execute(const sql::parameter_binder &/*bindings*/) {
using namespace std::chrono_literals;
std::mt19937 rng(query_.sql.size());
std::uniform_int_distribution dist(10, 40);
std::this_thread::sleep_for(std::chrono::milliseconds(dist(rng)));
return utils::ok(static_cast<size_t>(8));
}
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> test_statement::fetch(const sql::parameter_binder &/*bindings*/) {
return utils::ok(std::make_unique<sql::query_result_impl>(std::make_unique<test_result_reader>(), query_.prototype, query_.prototype.size()));
}
void test_statement::reset() {}
std::unique_ptr<utils::attribute_writer> test_statement::create_binder() const {
return std::make_unique<test_parameter_binder>();
}
} // namespace matador::test::orm