|
|
@@ -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());
|
|
|
+}
|
|
|
+
|