xref: /openbmc/bmcweb/http/test_stream.hpp (revision 46f780f777ea8169f2c7d992aa2e979ed228b9b7)
1 #pragma once
2 
3 #include <boost/asio/io_context.hpp>
4 #include <boost/asio/ip/tcp.hpp>
5 #include <boost/beast/_experimental/test/stream.hpp>
6 
7 namespace crow
8 {
9 
10 /*
11 A test class that simulates a socket by wrapping the beast test stream
12 
13 Additionally it adds remote_endpoint to allow testing of TCP-specific behaviors
14 */
15 struct TestStream : public boost::beast::test::stream
16 {
17     explicit TestStream(boost::asio::io_context& io) :
18         boost::beast::test::stream(io)
19     {}
20 
21     using endpoint = boost::asio::ip::tcp::endpoint;
22     // NOLINTNEXTLINE(readability-identifier-naming)
23     static endpoint remote_endpoint(boost::system::error_code& ec)
24     {
25         ec = {};
26         return {};
27     }
28 };
29 
30 } // namespace crow
31