Przeglądaj źródła

Test for deserializing.

Bart Hertog 6 lat temu
rodzic
commit
97de52dda8
1 zmienionych plików z 25 dodań i 0 usunięć
  1. 25 0
      test/test_oneof_fields.cpp

+ 25 - 0
test/test_oneof_fields.cpp

@@ -101,3 +101,28 @@ TEST(OneofField, serialize_ones)
 
   EXPECT_TRUE(msg.serialize(buffer));
 }
+
+TEST(OneofField, deserialize) 
+{
+  InSequence s;
+
+  message_oneof msg;
+  Mocks::ReadBufferMock buffer;
+
+  uint8_t referee[] = {0x08, 0x01,  // a
+                       0x50, 0x01,  // b
+                       0x30, 0x01}; // y
+
+  for(auto r: referee) {
+    EXPECT_CALL(buffer, pop(_)).Times(1).WillOnce(DoAll(SetArgReferee<0>(r), Return(true)));
+  }
+  EXPECT_CALL(buffer, pop(_)).Times(1).WillOnce(Return(false));
+
+  EXPECT_TRUE(msg.deserialize(buffer));
+
+  EXPECT_EQ(1, msg.get_a());
+  EXPECT_EQ(1, msg.get_b());
+  EXPECT_EQ(6, msg.get_which_xyz());
+  EXPECT_EQ(1, msg.get_y());
+}
+