proxygen
ObservingClientPipelineTest.cpp File Reference

Go to the source code of this file.

Classes

struct  TestRoutingData
 
class  TestPipelineFactory
 
class  CustomPipelineFactory
 
class  CustomPipelineMakerTestClient
 

Typedefs

using BytesPipeline = Pipeline< IOBufQueue &, std::unique_ptr< IOBuf >>
 
using TestObsPipeline = ObservingPipeline< std::shared_ptr< folly::IOBuf >>
 
using TestServer = ServerBootstrap< BytesPipeline >
 
using TestClient = ClientBootstrap< TestObsPipeline >
 

Functions

 TEST (ObservingClientPipelineTest, CustomPipelineMaker)
 

Typedef Documentation

using BytesPipeline = Pipeline<IOBufQueue&, std::unique_ptr<IOBuf>>

Definition at line 28 of file ObservingClientPipelineTest.cpp.

using TestObsPipeline = ObservingPipeline<std::shared_ptr<folly::IOBuf>>

Definition at line 29 of file ObservingClientPipelineTest.cpp.

Function Documentation

TEST ( ObservingClientPipelineTest  ,
CustomPipelineMaker   
)

Definition at line 113 of file ObservingClientPipelineTest.cpp.

References TestRoutingData::data, EXPECT_EQ, folly::EventBaseManager::get(), TestServer::getAddress(), and folly::EventBaseManager::getEventBase().

113  {
114  TestServer server;
115  auto factory = std::make_shared<TestPipelineFactory>();
116  server.childPipeline(factory);
117  server.bind(0);
118  auto base = EventBaseManager::get()->getEventBase();
119 
120  SocketAddress address;
121  server.getSockets()[0]->getAddress(&address);
122 
123  TestRoutingData routingData;
124  routingData.data = "Test";
125  auto clientPipelineFactory = std::make_shared<CustomPipelineFactory>();
126  auto client =
127  std::make_unique<CustomPipelineMakerTestClient>(
128  routingData, clientPipelineFactory);
129 
130  client->connect(address, std::chrono::milliseconds(0));
131  base->loop();
132  server.stop();
133  server.join();
134 
135  EXPECT_EQ(1, clientPipelineFactory->routingPipelines_);
136  EXPECT_EQ(routingData, clientPipelineFactory->routingData_);
137  EXPECT_EQ(0, clientPipelineFactory->pipelines_);
138 }
#define EXPECT_EQ(val1, val2)
Definition: gtest.h:1922
const folly::SocketAddress & getAddress() const
PUSHMI_INLINE_VAR constexpr detail::get_fn< T > get
Definition: submit.h:391