Example #1
0
TEST_F(NetworkTest, RecvMessageTwoParts) {
  EXPECT_CALL(*system, Recv(13, _, 1, 0))
      .WillOnce(Invoke([](int, void *buffer, size_t, int) {
        char *buf = (char*) buffer;
        buf[0] = 5;
        return 1;
      }));
  EXPECT_CALL(*system, Recv(13, _, 5, 0))
      .WillOnce(Invoke([](int, void *buffer, size_t, int) {
        char *buf = (char*) buffer;
        strncpy(buf, "te", 2);
        return 2;
      }));
  EXPECT_CALL(*system, Recv(13, _, 3, 0))
      .WillOnce(Invoke([](int, void *buffer, size_t, int) {
        char *buf = (char*) buffer;
        strncpy(buf, "st", 3);
        return 3;
      }));
  EXPECT_CALL(*system, Poll(_, 1, detail::TimeoutSeconds * 1000))
      .WillOnce(Return(1))
      .WillOnce(Return(1))
      .WillOnce(Return(1));

  NetworkPtr network = Network::Create(system);

  NetworkMessage nm = network->RecvMessage(13);
  ASSERT_EQ(5, nm.size());
  EXPECT_STREQ(nm.data(), "test");
}
Example #2
0
TEST_F(NetworkTest, RecvMessageOneLongMessage) {
  EXPECT_CALL(*system, Recv(13, _, 1, 0)).WillOnce(Invoke([](int, void *buffer, size_t, int) {
    unsigned char *buf = (unsigned char*) buffer;
    buf[0] = (unsigned char) (255);
    // copy buffer content
    return 256;
  }));
  EXPECT_CALL(*system, Poll(_, 1, detail::TimeoutSeconds * 1000)).WillOnce(Return(1));

  NetworkPtr network = Network::Create(system);

  NetworkMessage nm = network->RecvMessage(13);
  ASSERT_EQ(255, nm.size());
}