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());