diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2021-11-17 22:34:57 +0100 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2021-11-17 22:34:57 +0100 |
| commit | 6232d13f5321b87ddf12a1aa36b4545da45f173d (patch) | |
| tree | 23f3316470a14136debd9d02f9e920ca2b06f4cc /test/socket_test.hh | |
Travel3: Simple image and video display site
Reads the images and videos from filesystem and builds a site in
memroy.
Diffstat (limited to 'test/socket_test.hh')
| -rw-r--r-- | test/socket_test.hh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/socket_test.hh b/test/socket_test.hh new file mode 100644 index 0000000..de71619 --- /dev/null +++ b/test/socket_test.hh @@ -0,0 +1,48 @@ +#ifndef SOCKET_TEST_HH +#define SOCKET_TEST_HH + +#include "unique_fd.hh" + +#include <gtest/gtest.h> +#include <utility> + +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<void(Buffer*)> writer) = 0; + virtual std::string_view received() const = 0; + virtual void forget(size_t bytes) = 0; + virtual void read(std::function<void(RoBuffer*)> 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<unique_fd, unique_fd> create_pair(); + + std::unique_ptr<Client> create_client(unique_fd&& fd); + + std::shared_ptr<Looper> const& looper() { return looper_; } + +private: + std::shared_ptr<Looper> looper_; +}; + +#endif // SOCKET_TEST_HH |
