diff options
Diffstat (limited to 'java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java')
-rw-r--r-- | java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java | 121 |
1 files changed, 42 insertions, 79 deletions
diff --git a/java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java b/java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java index 42da5bb3..85a2fe08 100644 --- a/java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java +++ b/java/core/src/test/java/com/google/protobuf/FieldPresenceTest.java @@ -38,12 +38,10 @@ import com.google.protobuf.FieldPresenceTestProto.TestAllTypes; import com.google.protobuf.FieldPresenceTestProto.TestOptionalFieldsOnly; import com.google.protobuf.FieldPresenceTestProto.TestRepeatedFieldsOnly; import protobuf_unittest.UnittestProto; - import junit.framework.TestCase; /** - * Unit tests for protos that doesn't support field presence test for optional - * non-message fields. + * Unit tests for protos that doesn't support field presence test for optional non-message fields. */ public class FieldPresenceTest extends TestCase { private static boolean hasMethod(Class<?> clazz, String name) { @@ -59,9 +57,7 @@ public class FieldPresenceTest extends TestCase { } private static void assertHasMethodRemoved( - Class<?> classWithFieldPresence, - Class<?> classWithoutFieldPresence, - String camelName) { + Class<?> classWithFieldPresence, Class<?> classWithoutFieldPresence, String camelName) { assertTrue(hasMethod(classWithFieldPresence, "get" + camelName)); assertTrue(hasMethod(classWithFieldPresence, "has" + camelName)); assertTrue(hasMethod(classWithoutFieldPresence, "get" + camelName)); @@ -70,72 +66,38 @@ public class FieldPresenceTest extends TestCase { public void testHasMethod() { // Optional non-message fields don't have a hasFoo() method generated. + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OptionalInt32"); + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OptionalString"); + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OptionalBytes"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OptionalInt32"); - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OptionalString"); - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OptionalBytes"); - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OptionalNestedEnum"); + UnittestProto.TestAllTypes.class, TestAllTypes.class, "OptionalNestedEnum"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OptionalInt32"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OptionalInt32"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OptionalString"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OptionalString"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OptionalBytes"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OptionalBytes"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OptionalNestedEnum"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OptionalNestedEnum"); // message fields still have the hasFoo() method generated. - assertFalse(TestAllTypes.newBuilder().build().hasOptionalNestedMessage()); + assertFalse(TestAllTypes.getDefaultInstance().hasOptionalNestedMessage()); assertFalse(TestAllTypes.newBuilder().hasOptionalNestedMessage()); // oneof fields don't have hasFoo() methods for non-message types. - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OneofUint32"); - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OneofString"); - assertHasMethodRemoved( - UnittestProto.TestAllTypes.class, - TestAllTypes.class, - "OneofBytes"); - assertFalse(TestAllTypes.newBuilder().build().hasOneofNestedMessage()); + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OneofUint32"); + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OneofString"); + assertHasMethodRemoved(UnittestProto.TestAllTypes.class, TestAllTypes.class, "OneofBytes"); + assertFalse(TestAllTypes.getDefaultInstance().hasOneofNestedMessage()); assertFalse(TestAllTypes.newBuilder().hasOneofNestedMessage()); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OneofUint32"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OneofUint32"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OneofString"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OneofString"); assertHasMethodRemoved( - UnittestProto.TestAllTypes.Builder.class, - TestAllTypes.Builder.class, - "OneofBytes"); + UnittestProto.TestAllTypes.Builder.class, TestAllTypes.Builder.class, "OneofBytes"); } public void testOneofEquals() throws Exception { @@ -200,10 +162,10 @@ public class FieldPresenceTest extends TestCase { assertEquals(TestAllTypes.NestedEnum.BAR, message.getOptionalNestedEnum()); // equals()/hashCode() should produce the same results. - TestAllTypes empty = TestAllTypes.newBuilder().build(); + TestAllTypes empty = TestAllTypes.getDefaultInstance(); message = builder.build(); - assertTrue(empty.equals(message)); - assertTrue(message.equals(empty)); + assertEquals(message, empty); + assertEquals(empty, message); assertEquals(empty.hashCode(), message.hashCode()); } @@ -215,7 +177,7 @@ public class FieldPresenceTest extends TestCase { FieldDescriptor optionalNestedEnumField = descriptor.findFieldByName("optional_nested_enum"); // Field not present. - TestAllTypes message = TestAllTypes.newBuilder().build(); + TestAllTypes message = TestAllTypes.getDefaultInstance(); assertFalse(message.hasField(optionalInt32Field)); assertFalse(message.hasField(optionalStringField)); assertFalse(message.hasField(optionalBytesField)); @@ -223,12 +185,13 @@ public class FieldPresenceTest extends TestCase { assertEquals(0, message.getAllFields().size()); // Field set to default value is seen as not present. - message = TestAllTypes.newBuilder() - .setOptionalInt32(0) - .setOptionalString("") - .setOptionalBytes(ByteString.EMPTY) - .setOptionalNestedEnum(TestAllTypes.NestedEnum.FOO) - .build(); + message = + TestAllTypes.newBuilder() + .setOptionalInt32(0) + .setOptionalString("") + .setOptionalBytes(ByteString.EMPTY) + .setOptionalNestedEnum(TestAllTypes.NestedEnum.FOO) + .build(); assertFalse(message.hasField(optionalInt32Field)); assertFalse(message.hasField(optionalStringField)); assertFalse(message.hasField(optionalBytesField)); @@ -236,12 +199,13 @@ public class FieldPresenceTest extends TestCase { assertEquals(0, message.getAllFields().size()); // Field set to non-default value is seen as present. - message = TestAllTypes.newBuilder() - .setOptionalInt32(1) - .setOptionalString("x") - .setOptionalBytes(ByteString.copyFromUtf8("y")) - .setOptionalNestedEnum(TestAllTypes.NestedEnum.BAR) - .build(); + message = + TestAllTypes.newBuilder() + .setOptionalInt32(1) + .setOptionalString("x") + .setOptionalBytes(ByteString.copyFromUtf8("y")) + .setOptionalNestedEnum(TestAllTypes.NestedEnum.BAR) + .build(); assertTrue(message.hasField(optionalInt32Field)); assertTrue(message.hasField(optionalStringField)); assertTrue(message.hasField(optionalBytesField)); @@ -284,7 +248,9 @@ public class FieldPresenceTest extends TestCase { assertEquals(4, message.getAllFields().size()); // Field set to default value is seen as not present. - message = message.toBuilder() + message = + message + .toBuilder() .setField(optionalInt32Field, 0) .setField(optionalStringField, "") .setField(optionalBytesField, ByteString.EMPTY) @@ -302,8 +268,7 @@ public class FieldPresenceTest extends TestCase { assertFalse(builder.hasOptionalNestedMessage()); assertFalse(builder.build().hasOptionalNestedMessage()); - TestAllTypes.NestedMessage.Builder nestedBuilder = - builder.getOptionalNestedMessageBuilder(); + TestAllTypes.NestedMessage.Builder nestedBuilder = builder.getOptionalNestedMessageBuilder(); assertTrue(builder.hasOptionalNestedMessage()); assertTrue(builder.build().hasOptionalNestedMessage()); @@ -341,8 +306,7 @@ public class FieldPresenceTest extends TestCase { assertTrue(message.hasOptionalNestedMessage()); assertEquals(0, message.getOptionalNestedMessage().getValue()); // The oneof field set to its default value is also present. - assertEquals( - TestAllTypes.OneofFieldCase.ONEOF_INT32, message.getOneofFieldCase()); + assertEquals(TestAllTypes.OneofFieldCase.ONEOF_INT32, message.getOneofFieldCase()); } // Regression test for b/16173397 @@ -376,8 +340,7 @@ public class FieldPresenceTest extends TestCase { TestAllTypes.Builder builder = TestAllTypes.newBuilder(); // Test optional proto2 message fields. - UnittestProto.TestRequired.Builder proto2Builder = - builder.getOptionalProto2MessageBuilder(); + UnittestProto.TestRequired.Builder proto2Builder = builder.getOptionalProto2MessageBuilder(); assertFalse(builder.isInitialized()); assertFalse(builder.buildPartial().isInitialized()); |