Add simple test for factory pointer setting at receive

This commit is contained in:
mkrzewic 2018-11-27 13:43:54 +01:00 committed by Alexey Rybalchenko
parent cc0c525e0d
commit 489bea5a51

View File

@ -32,6 +32,7 @@ auto RunSingleThreadedMultipart(string transport, string address) -> void {
FairMQProgOptions config; FairMQProgOptions config;
config.SetValue<string>("session", std::to_string(session)); config.SetValue<string>("session", std::to_string(session));
auto factory = FairMQTransportFactory::CreateTransportFactory(transport, fair::mq::tools::Uuid(), &config); auto factory = FairMQTransportFactory::CreateTransportFactory(transport, fair::mq::tools::Uuid(), &config);
FairMQTransportFactory* factoryptr = factory.get();
auto push = FairMQChannel{"Push", "push", factory}; auto push = FairMQChannel{"Push", "push", factory};
ASSERT_TRUE(push.Bind(address)); ASSERT_TRUE(push.Bind(address));
auto pull = FairMQChannel{"Pull", "pull", factory}; auto pull = FairMQChannel{"Pull", "pull", factory};
@ -55,8 +56,9 @@ auto RunSingleThreadedMultipart(string transport, string address) -> void {
ASSERT_GE(pull.Receive(receivedMsg), 0); ASSERT_GE(pull.Receive(receivedMsg), 0);
stringstream out; stringstream out;
for_each(receivedMsg.cbegin(), receivedMsg.cend(), [&out](const FairMQMessagePtr& part) { for_each(receivedMsg.cbegin(), receivedMsg.cend(), [&out,&factoryptr](const FairMQMessagePtr& part) {
out << string{static_cast<char*>(part->GetData()), part->GetSize()}; out << string{static_cast<char*>(part->GetData()), part->GetSize()};
ASSERT_EQ(part->GetTransport(),factoryptr);
}); });
ASSERT_EQ(out.str(), "123"); ASSERT_EQ(out.str(), "123");
} }