TEST_F(P2pSessionTest, testCannotConnectPeerBeforeHostConnected) { TestP2pEventHandler peerEventHandler1; boost::scoped_ptr<P2pSession> peer1( P2pSessionFactory::create(2, peerEventHandler1)); EXPECT_TRUE(peer1->open(ACE_DEFAULT_SERVER_PORT + 1)); TestP2pEventHandler peerEventHandler2; boost::scoped_ptr<P2pSession> peer2( P2pSessionFactory::create(3, peerEventHandler2)); EXPECT_TRUE(peer2->open(ACE_DEFAULT_SERVER_PORT + 2)); peer1->connect(getHostAddresses()); for (int i = 0; i < (2 * 3); ++i) { peer1->tick(); hostSession_->tick(); } peer2->connect(peer1->getAddresses(2)); for (int i = 0; i < (2 * 3); ++i) { peer1->tick(); peer2->tick(); hostSession_->tick(); } EXPECT_EQ(2, int(hostSession_->getPeerCount())); EXPECT_EQ(2, int(peer1->getPeerCount())); }
TEST_F(P2pSessionTest, testUnicast) { TestRpcPlugIn* peerRpcPlugIn1; TestP2pEventHandler peerEventHandler1; boost::scoped_ptr<P2pSession> peer1( P2pSessionFactory::create(2, peerEventHandler1)); peerRpcPlugIn1 = new TestRpcPlugIn; PlugInPtr plugIn1(peerRpcPlugIn1); peer1->attach(plugIn1); EXPECT_TRUE(peer1->open(ACE_DEFAULT_SERVER_PORT + 1)); peer1->connect(getHostAddresses()); for (int i = 0; i < (2 * 3); ++i) { peer1->tick(); hostSession_->tick(); } TestRpcPlugIn* peerRpcPlugIn2; TestP2pEventHandler peerEventHandler2; boost::scoped_ptr<P2pSession> peer2( P2pSessionFactory::create(3, peerEventHandler2)); peerRpcPlugIn2 = new TestRpcPlugIn; PlugInPtr plugIn2(peerRpcPlugIn2); peer2->attach(plugIn2); EXPECT_TRUE(peer2->open(ACE_DEFAULT_SERVER_PORT + 2)); peer2->connect(getHostAddresses()); for (int i = 0; i < (2 * 4); ++i) { peer1->tick(); peer2->tick(); hostSession_->tick(); } EXPECT_EQ(int(hostSession_->getPeerCount()), int(peer1->getPeerCount())); const PeerHint hint(2); hostRpcPlugIn_->hello("hi", &hint); for (int i = 0; i < (2 * 3); ++i) { hostSession_->tick(); peer1->tick(); peer2->tick(); } EXPECT_EQ("hi", peerRpcPlugIn1->getLastWorld()); EXPECT_EQ(PeerId(1), peerRpcPlugIn1->getLastPeerId()); EXPECT_EQ("", peerRpcPlugIn2->getLastWorld()); EXPECT_EQ(invalidPeerId, peerRpcPlugIn2->getLastPeerId()); }
TEST(PeerTests, Constructors) { gallocy::common::Peer peer1; ASSERT_EQ(peer1.get_canonical_id(), static_cast<uint64_t>(0)); ASSERT_EQ(peer1.get_string(), "0.0.0.0:0"); gallocy::common::Peer peer2("127.0.0.1", 8080); ASSERT_EQ(peer2.get_canonical_id(), static_cast<uint64_t>(2130706433)); ASSERT_EQ(peer2.get_string(), "127.0.0.1:8080"); gallocy::common::Peer peer3 = peer2; ASSERT_EQ(peer3.get_canonical_id(), static_cast<uint64_t>(2130706433)); ASSERT_EQ(peer3.get_string(), "127.0.0.1:8080"); gallocy::common::Peer peer4(peer2); ASSERT_EQ(peer4.get_canonical_id(), static_cast<uint64_t>(2130706433)); ASSERT_EQ(peer4.get_string(), "127.0.0.1:8080"); }