| Index: third_party/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java
|
| ===================================================================
|
| --- third_party/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java (revision 216642)
|
| +++ third_party/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java (working copy)
|
| @@ -38,6 +38,8 @@
|
|
|
| import junit.framework.TestCase;
|
|
|
| +import java.util.List;
|
| +
|
| /**
|
| * Misc. unit tests for message operations that apply to both generated
|
| * and dynamic messages.
|
| @@ -310,4 +312,42 @@
|
| assertEquals("Message missing required fields: a, b, c", e.getMessage());
|
| }
|
| }
|
| +
|
| + /** Test reading unset repeated message from DynamicMessage. */
|
| + public void testDynamicRepeatedMessageNull() throws Exception {
|
| + Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
|
| + DynamicMessage result =
|
| + DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
|
| + .mergeFrom(DynamicMessage.newBuilder(MERGE_SOURCE).build())
|
| + .build();
|
| +
|
| + assertTrue(result.getField(result.getDescriptorForType()
|
| + .findFieldByName("repeated_foreign_message")) instanceof List<?>);
|
| + assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
|
| + .findFieldByName("repeated_foreign_message")), 0);
|
| + }
|
| +
|
| + /** Test reading repeated message from DynamicMessage. */
|
| + public void testDynamicRepeatedMessageNotNull() throws Exception {
|
| +
|
| + TestAllTypes REPEATED_NESTED =
|
| + TestAllTypes.newBuilder()
|
| + .setOptionalInt32(1)
|
| + .setOptionalString("foo")
|
| + .setOptionalForeignMessage(ForeignMessage.getDefaultInstance())
|
| + .addRepeatedString("bar")
|
| + .addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
|
| + .addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
|
| + .build();
|
| + Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
|
| + DynamicMessage result =
|
| + DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
|
| + .mergeFrom(DynamicMessage.newBuilder(REPEATED_NESTED).build())
|
| + .build();
|
| +
|
| + assertTrue(result.getField(result.getDescriptorForType()
|
| + .findFieldByName("repeated_foreign_message")) instanceof List<?>);
|
| + assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
|
| + .findFieldByName("repeated_foreign_message")), 2);
|
| + }
|
| }
|
|
|