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(PeerTests, FromSocket) { struct sockaddr_in socket_name; socket_name.sin_family = AF_INET; socket_name.sin_port = htons(8080); inet_pton(AF_INET, "127.0.0.1", &socket_name.sin_addr); gallocy::common::Peer peer1(socket_name); ASSERT_EQ(peer1.get_string(), "127.0.0.1:8080"); }
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, GetSocket) { gallocy::common::Peer peer1("127.0.0.1", 8080); ASSERT_EQ(peer1.get_string(), "127.0.0.1:8080"); ASSERT_EQ(ntohs(peer1.get_socket().sin_port), 8080); }