33 #include <google/protobuf/unittest_drop_unknown_fields.pb.h>
38 using unittest_drop_unknown_fields::Foo;
39 using unittest_drop_unknown_fields::FooWithExtraFields;
44 TEST(DropUnknownFieldsTest, GeneratedMessage) {
45 FooWithExtraFields foo_with_extra_fields;
46 foo_with_extra_fields.set_int32_value(1);
47 foo_with_extra_fields.set_enum_value(FooWithExtraFields::QUX);
48 foo_with_extra_fields.set_extra_int32_value(2);
51 ASSERT_TRUE(
foo.ParseFromString(foo_with_extra_fields.SerializeAsString()));
53 EXPECT_EQ(
static_cast<int>(FooWithExtraFields::QUX),
54 static_cast<int>(
foo.enum_value()));
57 ASSERT_TRUE(foo_with_extra_fields.ParseFromString(
foo.SerializeAsString()));
58 EXPECT_EQ(1, foo_with_extra_fields.int32_value());
59 EXPECT_EQ(FooWithExtraFields::QUX, foo_with_extra_fields.enum_value());
61 EXPECT_EQ(2, foo_with_extra_fields.extra_int32_value());
65 FooWithExtraFields foo_with_extra_fields;
66 foo_with_extra_fields.set_int32_value(1);
67 foo_with_extra_fields.set_enum_value(FooWithExtraFields::QUX);
68 foo_with_extra_fields.set_extra_int32_value(2);
72 ASSERT_TRUE(
foo->ParseFromString(foo_with_extra_fields.SerializeAsString()));
75 ASSERT_TRUE(foo_with_extra_fields.ParseFromString(
foo->SerializeAsString()));
76 EXPECT_EQ(1, foo_with_extra_fields.int32_value());
77 EXPECT_EQ(FooWithExtraFields::QUX, foo_with_extra_fields.enum_value());
79 EXPECT_EQ(2, foo_with_extra_fields.extra_int32_value());