void NetworkTests::sendToServer_mockFile_fileRecieveCompleted(const CEvent& event, void*) { CServer* server = reinterpret_cast<CServer*>(event.getTarget()); EXPECT_TRUE(server->isReceivedFileSizeValid()); m_events.raiseQuitEvent(); }
void NetworkTests::sendToClient_mockFile_fileRecieveCompleted(const CEvent& event, void*) { CClient* client = reinterpret_cast<CClient*>(event.getTarget()); EXPECT_TRUE(client->isReceivedFileSizeValid()); m_events.raiseQuitEvent(); }
void CIpcTests::sendMessageToClient_clientHandleMessageReceived(const CEvent& e, void*) { CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject()); if (m->m_type == kIpcLogLine) { CIpcLogLineMessage* llm = static_cast<CIpcLogLineMessage*>(m); LOG((CLOG_DEBUG "got ipc log message, %d", llm->logLine().c_str())); m_sendMessageToClient_receivedString = llm->logLine(); m_events.raiseQuitEvent(); } }
void CIpcTests::connectToServer_handleMessageReceived(const CEvent& e, void*) { CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject()); if (m->m_type == kIpcHello) { m_connectToServer_hasClientNode = m_connectToServer_server->hasClients(kIpcClientNode); m_connectToServer_helloMessageReceived = true; m_events.raiseQuitEvent(); } }
void CIpcTests::sendMessageToServer_serverHandleMessageReceived(const CEvent& e, void*) { CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject()); if (m->m_type == kIpcHello) { LOG((CLOG_DEBUG "client said hello, sending test to server")); CIpcCommandMessage m("test", true); m_sendMessageToServer_client->send(m); } else if (m->m_type == kIpcCommand) { CIpcCommandMessage* cm = static_cast<CIpcCommandMessage*>(m); LOG((CLOG_DEBUG "got ipc command message, %d", cm->command().c_str())); m_sendMessageToServer_receivedString = cm->command(); m_events.raiseQuitEvent(); } }
void NetworkTests::sendMockData(void* eventTarget) { // send first message (file size) CString size = intToString(kMockDataSize); size_t sizeLength = size.size(); CFileChunker::CFileChunk* sizeMessage = new CFileChunker::CFileChunk(sizeLength + 2); char* chunkData = sizeMessage->m_chunk; chunkData[0] = kFileStart; memcpy(&chunkData[1], size.c_str(), sizeLength); chunkData[sizeLength + 1] = '\0'; m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, sizeMessage)); // send chunk messages with incrementing chunk size size_t lastSize = 0; size_t sentLength = 0; while (true) { size_t chunkSize = lastSize + kMockDataChunkIncrement; // make sure we don't read too much from the mock data. if (sentLength + chunkSize > kMockDataSize) { chunkSize = kMockDataSize - sentLength; } // first byte is the chunk mark, last is \0 CFileChunker::CFileChunk* fileChunk = new CFileChunker::CFileChunk(chunkSize + 2); char* chunkData = fileChunk->m_chunk; chunkData[0] = kFileChunk; memcpy(&chunkData[1], &m_mockData[sentLength], chunkSize); chunkData[chunkSize + 1] = '\0'; m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, fileChunk)); sentLength += chunkSize; lastSize = chunkSize; if (sentLength == kMockDataSize) { break; } } // send last message CFileChunker::CFileChunk* transferFinished = new CFileChunker::CFileChunk(2); chunkData = transferFinished->m_chunk; chunkData[0] = kFileEnd; chunkData[1] = '\0'; m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, transferFinished)); }