#include // from librssimulator #include "testing/IsolatedServiceTester.h" #include "peer/PeerNode.h" // from libretroshare #include "services/p3statusservice.h" #include "serialiser/rsstatusitems.h" #define N_PEERS 10 TEST(libretroshare_services, Status_test1) { RsPeerId ownId = RsPeerId::random(); RsPeerId friendId = RsPeerId::random(); std::list peers; peers.push_back(friendId); for(int i = 0; i < N_PEERS; i++) { peers.push_back(RsPeerId::random()); } IsolatedServiceTester tester(ownId, peers); // extract bits we need. PeerNode *node = tester.getPeerNode(); p3PeerMgr *peerMgr = node->getPeerMgr(); p3LinkMgr *linkMgr = node->getLinkMgr(); p3NetMgr *netMgr = node->getNetMgr(); p3ServiceControl *serviceCtrl = node->getServiceControl(); // add in service. p3StatusService *status = new p3StatusService(serviceCtrl); node->AddService(status); node->AddPqiServiceMonitor(status); tester.addSerialType(new RsStatusSerialiser()); /**************** Start Test ****************/ // setup. tester.startup(); tester.tick(); // Expect no packets - as noone is online. EXPECT_FALSE(tester.tickUntilPacket(20)); /*************** Connect Peers **************/ // bring people online. std::list onlineList; onlineList.push_back(friendId); node->bringOnline(onlineList); EXPECT_TRUE(tester.tickUntilPacket(20)); /*************** First Packet ***************/ RsItem *item = tester.getPacket(); EXPECT_TRUE(item != NULL); // expecting Discovery RsStatusItem *statusitem = dynamic_cast(item); EXPECT_TRUE(statusitem != NULL); EXPECT_TRUE(statusitem->PeerId() == friendId); if (statusitem) { delete statusitem; } /*************** Reply Packet ***************/ statusitem = new RsStatusItem(); statusitem->PeerId(friendId); tester.sendPacket(statusitem); // expect... //EXPECT_TRUE(test.tickUntilPacket(20)); }