#pragma once #include "util/Taggable.hpp" #include "web/ng/Connection.hpp" #include "web/ng/Error.hpp" #include "web/ng/Request.hpp" #include "web/ng/Response.hpp" #include "web/ng/impl/HttpConnection.hpp" #include #include #include #include #include #include #include #include struct MockHttpConnectionImpl : web::ng::impl::UpgradableConnection { using UpgradableConnection::UpgradableConnection; MOCK_METHOD(bool, wasUpgraded, (), (const, override)); MOCK_METHOD(void, setTimeout, (std::chrono::steady_clock::duration), (override)); using SendReturnType = std::expected; MOCK_METHOD(SendReturnType, send, (web::ng::Response, boost::asio::yield_context), (override)); MOCK_METHOD( SendReturnType, sendRaw, (boost::beast::http::response, boost::asio::yield_context), (override) ); using ReceiveReturnType = std::expected; MOCK_METHOD(ReceiveReturnType, receive, (boost::asio::yield_context), (override)); MOCK_METHOD(void, close, (boost::asio::yield_context), (override)); using IsUpgradeRequestedReturnType = std::expected; MOCK_METHOD( IsUpgradeRequestedReturnType, isUpgradeRequested, (boost::asio::yield_context), (override) ); using UpgradeReturnType = std::expected; using OptionalSslContext = std::optional; MOCK_METHOD( UpgradeReturnType, upgrade, (util::TagDecoratorFactory const& tagDecoratorFactory, boost::asio::yield_context yield), (override) ); }; using MockHttpConnection = testing::NiceMock; using MockHttpConnectionPtr = std::unique_ptr>; using StrictMockHttpConnection = testing::StrictMock; using StrictMockHttpConnectionPtr = std::unique_ptr>;