blob: de716197be716588fb621717aab3f085aee4e669 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
|