310
312
assertEquals("Message missing required fields: a, b, c", e.getMessage());
316
/** Test reading unset repeated message from DynamicMessage. */
317
public void testDynamicRepeatedMessageNull() throws Exception {
318
Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
319
DynamicMessage result =
320
DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
321
.mergeFrom(DynamicMessage.newBuilder(MERGE_SOURCE).build())
324
assertTrue(result.getField(result.getDescriptorForType()
325
.findFieldByName("repeated_foreign_message")) instanceof List<?>);
326
assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
327
.findFieldByName("repeated_foreign_message")), 0);
330
/** Test reading repeated message from DynamicMessage. */
331
public void testDynamicRepeatedMessageNotNull() throws Exception {
333
TestAllTypes REPEATED_NESTED =
334
TestAllTypes.newBuilder()
336
.setOptionalString("foo")
337
.setOptionalForeignMessage(ForeignMessage.getDefaultInstance())
338
.addRepeatedString("bar")
339
.addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
340
.addRepeatedForeignMessage(ForeignMessage.getDefaultInstance())
342
Descriptors.Descriptor descriptor = TestRequired.getDescriptor();
343
DynamicMessage result =
344
DynamicMessage.newBuilder(TestAllTypes.getDescriptor())
345
.mergeFrom(DynamicMessage.newBuilder(REPEATED_NESTED).build())
348
assertTrue(result.getField(result.getDescriptorForType()
349
.findFieldByName("repeated_foreign_message")) instanceof List<?>);
350
assertEquals(result.getRepeatedFieldCount(result.getDescriptorForType()
351
.findFieldByName("repeated_foreign_message")), 2);