#ifndef SOCKET_TEST_HH #define SOCKET_TEST_HH #include "unique_fd.hh" #include #include class Buffer; class Logger; class Looper; class RoBuffer; class SocketTest : public testing::Test { public: class Client { public: virtual ~Client() = default; virtual void write(std::string_view data) = 0; virtual void write(std::function writer) = 0; virtual std::string_view received() const = 0; virtual void forget(size_t bytes) = 0; virtual void read(std::function reader) = 0; virtual bool closed() const = 0; virtual void wait(Logger* logger) = 0; protected: Client() = default; Client(Client const&) = delete; Client& operator=(Client const&) = delete; }; protected: SocketTest(); std::pair create_pair(); std::unique_ptr create_client(unique_fd&& fd); std::shared_ptr const& looper() { return looper_; } private: std::shared_ptr looper_; }; #endif // SOCKET_TEST_HH