| Index: third_party/protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google/protobuf/test/DescriptorsTest.java
|
| diff --git a/third_party/protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google/protobuf/test/DescriptorsTest.java b/third_party/protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google/protobuf/test/DescriptorsTest.java
|
| deleted file mode 100644
|
| index aabd7b4d7307bef398e218ed460c5e69e0e1f10f..0000000000000000000000000000000000000000
|
| --- a/third_party/protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google/protobuf/test/DescriptorsTest.java
|
| +++ /dev/null
|
| @@ -1,649 +0,0 @@
|
| -// Protocol Buffers - Google's data interchange format
|
| -// Copyright 2008 Google Inc. All rights reserved.
|
| -// http://code.google.com/p/protobuf/
|
| -//
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| -// met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following disclaimer
|
| -// in the documentation and/or other materials provided with the
|
| -// distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived from
|
| -// this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| -package com.google.protobuf.test;
|
| -import com.google.protobuf.*;
|
| -
|
| -import com.google.protobuf.DescriptorProtos.DescriptorProto;
|
| -import com.google.protobuf.DescriptorProtos.EnumDescriptorProto;
|
| -import com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto;
|
| -import com.google.protobuf.DescriptorProtos.FieldDescriptorProto;
|
| -import com.google.protobuf.DescriptorProtos.FileDescriptorProto;
|
| -import com.google.protobuf.Descriptors.DescriptorValidationException;
|
| -import com.google.protobuf.Descriptors.FileDescriptor;
|
| -import com.google.protobuf.Descriptors.Descriptor;
|
| -import com.google.protobuf.Descriptors.FieldDescriptor;
|
| -import com.google.protobuf.Descriptors.EnumDescriptor;
|
| -import com.google.protobuf.Descriptors.EnumValueDescriptor;
|
| -import com.google.protobuf.Descriptors.ServiceDescriptor;
|
| -import com.google.protobuf.Descriptors.MethodDescriptor;
|
| -
|
| -import com.google.protobuf.test.UnittestImport;
|
| -import com.google.protobuf.test.UnittestImport.ImportEnum;
|
| -import com.google.protobuf.test.UnittestImport.ImportMessage;
|
| -import protobuf_unittest.UnittestProto;
|
| -import protobuf_unittest.UnittestProto.ForeignEnum;
|
| -import protobuf_unittest.UnittestProto.ForeignMessage;
|
| -import protobuf_unittest.UnittestProto.TestAllTypes;
|
| -import protobuf_unittest.UnittestProto.TestAllExtensions;
|
| -import protobuf_unittest.UnittestProto.TestExtremeDefaultValues;
|
| -import protobuf_unittest.UnittestProto.TestRequired;
|
| -import protobuf_unittest.UnittestProto.TestService;
|
| -import protobuf_unittest.UnittestCustomOptions;
|
| -
|
| -
|
| -import junit.framework.TestCase;
|
| -
|
| -import java.util.Arrays;
|
| -import java.util.Collections;
|
| -import java.util.List;
|
| -
|
| -/**
|
| - * Unit test for {@link Descriptors}.
|
| - *
|
| - * @author kenton@google.com Kenton Varda
|
| - */
|
| -public class DescriptorsTest extends TestCase {
|
| -
|
| - // Regression test for bug where referencing a FieldDescriptor.Type value
|
| - // before a FieldDescriptorProto.Type value would yield a
|
| - // ExceptionInInitializerError.
|
| - @SuppressWarnings("unused")
|
| - private static final Object STATIC_INIT_TEST = FieldDescriptor.Type.BOOL;
|
| -
|
| - public void testFieldTypeEnumMapping() throws Exception {
|
| - assertEquals(FieldDescriptor.Type.values().length,
|
| - FieldDescriptorProto.Type.values().length);
|
| - for (FieldDescriptor.Type type : FieldDescriptor.Type.values()) {
|
| - FieldDescriptorProto.Type protoType = type.toProto();
|
| - assertEquals("TYPE_" + type.name(), protoType.name());
|
| - assertEquals(type, FieldDescriptor.Type.valueOf(protoType));
|
| - }
|
| - }
|
| -
|
| - public void testFileDescriptor() throws Exception {
|
| - FileDescriptor file = UnittestProto.getDescriptor();
|
| -
|
| - assertEquals("google/protobuf/unittest.proto", file.getName());
|
| - assertEquals("protobuf_unittest", file.getPackage());
|
| -
|
| - assertEquals("UnittestProto", file.getOptions().getJavaOuterClassname());
|
| - assertEquals("google/protobuf/unittest.proto",
|
| - file.toProto().getName());
|
| -
|
| - assertEquals(Arrays.asList(UnittestImport.getDescriptor()),
|
| - file.getDependencies());
|
| -
|
| - Descriptor messageType = TestAllTypes.getDescriptor();
|
| - assertEquals(messageType, file.getMessageTypes().get(0));
|
| - assertEquals(messageType, file.findMessageTypeByName("TestAllTypes"));
|
| - assertNull(file.findMessageTypeByName("NoSuchType"));
|
| - assertNull(file.findMessageTypeByName("protobuf_unittest.TestAllTypes"));
|
| - for (int i = 0; i < file.getMessageTypes().size(); i++) {
|
| - assertEquals(i, file.getMessageTypes().get(i).getIndex());
|
| - }
|
| -
|
| - EnumDescriptor enumType = ForeignEnum.getDescriptor();
|
| - assertEquals(enumType, file.getEnumTypes().get(0));
|
| - assertEquals(enumType, file.findEnumTypeByName("ForeignEnum"));
|
| - assertNull(file.findEnumTypeByName("NoSuchType"));
|
| - assertNull(file.findEnumTypeByName("protobuf_unittest.ForeignEnum"));
|
| - assertEquals(Arrays.asList(ImportEnum.getDescriptor()),
|
| - UnittestImport.getDescriptor().getEnumTypes());
|
| - for (int i = 0; i < file.getEnumTypes().size(); i++) {
|
| - assertEquals(i, file.getEnumTypes().get(i).getIndex());
|
| - }
|
| -
|
| - ServiceDescriptor service = TestService.getDescriptor();
|
| - assertEquals(service, file.getServices().get(0));
|
| - assertEquals(service, file.findServiceByName("TestService"));
|
| - assertNull(file.findServiceByName("NoSuchType"));
|
| - assertNull(file.findServiceByName("protobuf_unittest.TestService"));
|
| - assertEquals(Collections.emptyList(),
|
| - UnittestImport.getDescriptor().getServices());
|
| - for (int i = 0; i < file.getServices().size(); i++) {
|
| - assertEquals(i, file.getServices().get(i).getIndex());
|
| - }
|
| -
|
| - FieldDescriptor extension =
|
| - UnittestProto.optionalInt32Extension.getDescriptor();
|
| - assertEquals(extension, file.getExtensions().get(0));
|
| - assertEquals(extension,
|
| - file.findExtensionByName("optional_int32_extension"));
|
| - assertNull(file.findExtensionByName("no_such_ext"));
|
| - assertNull(file.findExtensionByName(
|
| - "protobuf_unittest.optional_int32_extension"));
|
| - assertEquals(Collections.emptyList(),
|
| - UnittestImport.getDescriptor().getExtensions());
|
| - for (int i = 0; i < file.getExtensions().size(); i++) {
|
| - assertEquals(i, file.getExtensions().get(i).getIndex());
|
| - }
|
| - }
|
| -
|
| - public void testDescriptor() throws Exception {
|
| - Descriptor messageType = TestAllTypes.getDescriptor();
|
| - Descriptor nestedType = TestAllTypes.NestedMessage.getDescriptor();
|
| -
|
| - assertEquals("TestAllTypes", messageType.getName());
|
| - assertEquals("protobuf_unittest.TestAllTypes", messageType.getFullName());
|
| - assertEquals(UnittestProto.getDescriptor(), messageType.getFile());
|
| - assertNull(messageType.getContainingType());
|
| - assertEquals(DescriptorProtos.MessageOptions.getDefaultInstance(),
|
| - messageType.getOptions());
|
| - assertEquals("TestAllTypes", messageType.toProto().getName());
|
| -
|
| - assertEquals("NestedMessage", nestedType.getName());
|
| - assertEquals("protobuf_unittest.TestAllTypes.NestedMessage",
|
| - nestedType.getFullName());
|
| - assertEquals(UnittestProto.getDescriptor(), nestedType.getFile());
|
| - assertEquals(messageType, nestedType.getContainingType());
|
| -
|
| - FieldDescriptor field = messageType.getFields().get(0);
|
| - assertEquals("optional_int32", field.getName());
|
| - assertEquals(field, messageType.findFieldByName("optional_int32"));
|
| - assertNull(messageType.findFieldByName("no_such_field"));
|
| - assertEquals(field, messageType.findFieldByNumber(1));
|
| - assertNull(messageType.findFieldByNumber(571283));
|
| - for (int i = 0; i < messageType.getFields().size(); i++) {
|
| - assertEquals(i, messageType.getFields().get(i).getIndex());
|
| - }
|
| -
|
| - assertEquals(nestedType, messageType.getNestedTypes().get(0));
|
| - assertEquals(nestedType, messageType.findNestedTypeByName("NestedMessage"));
|
| - assertNull(messageType.findNestedTypeByName("NoSuchType"));
|
| - for (int i = 0; i < messageType.getNestedTypes().size(); i++) {
|
| - assertEquals(i, messageType.getNestedTypes().get(i).getIndex());
|
| - }
|
| -
|
| - EnumDescriptor enumType = TestAllTypes.NestedEnum.getDescriptor();
|
| - assertEquals(enumType, messageType.getEnumTypes().get(0));
|
| - assertEquals(enumType, messageType.findEnumTypeByName("NestedEnum"));
|
| - assertNull(messageType.findEnumTypeByName("NoSuchType"));
|
| - for (int i = 0; i < messageType.getEnumTypes().size(); i++) {
|
| - assertEquals(i, messageType.getEnumTypes().get(i).getIndex());
|
| - }
|
| - }
|
| -
|
| - public void testFieldDescriptor() throws Exception {
|
| - Descriptor messageType = TestAllTypes.getDescriptor();
|
| - FieldDescriptor primitiveField =
|
| - messageType.findFieldByName("optional_int32");
|
| - FieldDescriptor enumField =
|
| - messageType.findFieldByName("optional_nested_enum");
|
| - FieldDescriptor messageField =
|
| - messageType.findFieldByName("optional_foreign_message");
|
| - FieldDescriptor cordField =
|
| - messageType.findFieldByName("optional_cord");
|
| - FieldDescriptor extension =
|
| - UnittestProto.optionalInt32Extension.getDescriptor();
|
| - FieldDescriptor nestedExtension = TestRequired.single.getDescriptor();
|
| -
|
| - assertEquals("optional_int32", primitiveField.getName());
|
| - assertEquals("protobuf_unittest.TestAllTypes.optional_int32",
|
| - primitiveField.getFullName());
|
| - assertEquals(1, primitiveField.getNumber());
|
| - assertEquals(messageType, primitiveField.getContainingType());
|
| - assertEquals(UnittestProto.getDescriptor(), primitiveField.getFile());
|
| - assertEquals(FieldDescriptor.Type.INT32, primitiveField.getType());
|
| - assertEquals(FieldDescriptor.JavaType.INT, primitiveField.getJavaType());
|
| - assertEquals(DescriptorProtos.FieldOptions.getDefaultInstance(),
|
| - primitiveField.getOptions());
|
| - assertFalse(primitiveField.isExtension());
|
| - assertEquals("optional_int32", primitiveField.toProto().getName());
|
| -
|
| - assertEquals("optional_nested_enum", enumField.getName());
|
| - assertEquals(FieldDescriptor.Type.ENUM, enumField.getType());
|
| - assertEquals(FieldDescriptor.JavaType.ENUM, enumField.getJavaType());
|
| - assertEquals(TestAllTypes.NestedEnum.getDescriptor(),
|
| - enumField.getEnumType());
|
| -
|
| - assertEquals("optional_foreign_message", messageField.getName());
|
| - assertEquals(FieldDescriptor.Type.MESSAGE, messageField.getType());
|
| - assertEquals(FieldDescriptor.JavaType.MESSAGE, messageField.getJavaType());
|
| - assertEquals(ForeignMessage.getDescriptor(), messageField.getMessageType());
|
| -
|
| - assertEquals("optional_cord", cordField.getName());
|
| - assertEquals(FieldDescriptor.Type.STRING, cordField.getType());
|
| - assertEquals(FieldDescriptor.JavaType.STRING, cordField.getJavaType());
|
| - assertEquals(DescriptorProtos.FieldOptions.CType.CORD,
|
| - cordField.getOptions().getCtype());
|
| -
|
| - assertEquals("optional_int32_extension", extension.getName());
|
| - assertEquals("protobuf_unittest.optional_int32_extension",
|
| - extension.getFullName());
|
| - assertEquals(1, extension.getNumber());
|
| - assertEquals(TestAllExtensions.getDescriptor(),
|
| - extension.getContainingType());
|
| - assertEquals(UnittestProto.getDescriptor(), extension.getFile());
|
| - assertEquals(FieldDescriptor.Type.INT32, extension.getType());
|
| - assertEquals(FieldDescriptor.JavaType.INT, extension.getJavaType());
|
| - assertEquals(DescriptorProtos.FieldOptions.getDefaultInstance(),
|
| - extension.getOptions());
|
| - assertTrue(extension.isExtension());
|
| - assertEquals(null, extension.getExtensionScope());
|
| - assertEquals("optional_int32_extension", extension.toProto().getName());
|
| -
|
| - assertEquals("single", nestedExtension.getName());
|
| - assertEquals("protobuf_unittest.TestRequired.single",
|
| - nestedExtension.getFullName());
|
| - assertEquals(TestRequired.getDescriptor(),
|
| - nestedExtension.getExtensionScope());
|
| - }
|
| -
|
| - public void testFieldDescriptorLabel() throws Exception {
|
| - FieldDescriptor requiredField =
|
| - TestRequired.getDescriptor().findFieldByName("a");
|
| - FieldDescriptor optionalField =
|
| - TestAllTypes.getDescriptor().findFieldByName("optional_int32");
|
| - FieldDescriptor repeatedField =
|
| - TestAllTypes.getDescriptor().findFieldByName("repeated_int32");
|
| -
|
| - assertTrue(requiredField.isRequired());
|
| - assertFalse(requiredField.isRepeated());
|
| - assertFalse(optionalField.isRequired());
|
| - assertFalse(optionalField.isRepeated());
|
| - assertFalse(repeatedField.isRequired());
|
| - assertTrue(repeatedField.isRepeated());
|
| - }
|
| -
|
| - public void testFieldDescriptorDefault() throws Exception {
|
| - Descriptor d = TestAllTypes.getDescriptor();
|
| - assertFalse(d.findFieldByName("optional_int32").hasDefaultValue());
|
| - assertEquals(0, d.findFieldByName("optional_int32").getDefaultValue());
|
| - assertTrue(d.findFieldByName("default_int32").hasDefaultValue());
|
| - assertEquals(41, d.findFieldByName("default_int32").getDefaultValue());
|
| -
|
| - d = TestExtremeDefaultValues.getDescriptor();
|
| - assertEquals(
|
| - ByteString.copyFrom(
|
| - "\0\001\007\b\f\n\r\t\013\\\'\"\u00fe".getBytes("ISO-8859-1")),
|
| - d.findFieldByName("escaped_bytes").getDefaultValue());
|
| - assertEquals(-1, d.findFieldByName("large_uint32").getDefaultValue());
|
| - assertEquals(-1L, d.findFieldByName("large_uint64").getDefaultValue());
|
| - }
|
| -
|
| - public void testEnumDescriptor() throws Exception {
|
| - EnumDescriptor enumType = ForeignEnum.getDescriptor();
|
| - EnumDescriptor nestedType = TestAllTypes.NestedEnum.getDescriptor();
|
| -
|
| - assertEquals("ForeignEnum", enumType.getName());
|
| - assertEquals("protobuf_unittest.ForeignEnum", enumType.getFullName());
|
| - assertEquals(UnittestProto.getDescriptor(), enumType.getFile());
|
| - assertNull(enumType.getContainingType());
|
| - assertEquals(DescriptorProtos.EnumOptions.getDefaultInstance(),
|
| - enumType.getOptions());
|
| -
|
| - assertEquals("NestedEnum", nestedType.getName());
|
| - assertEquals("protobuf_unittest.TestAllTypes.NestedEnum",
|
| - nestedType.getFullName());
|
| - assertEquals(UnittestProto.getDescriptor(), nestedType.getFile());
|
| - assertEquals(TestAllTypes.getDescriptor(), nestedType.getContainingType());
|
| -
|
| - EnumValueDescriptor value = ForeignEnum.FOREIGN_FOO.getValueDescriptor();
|
| - assertEquals(value, enumType.getValues().get(0));
|
| - assertEquals("FOREIGN_FOO", value.getName());
|
| - assertEquals(4, value.getNumber());
|
| - assertEquals(value, enumType.findValueByName("FOREIGN_FOO"));
|
| - assertEquals(value, enumType.findValueByNumber(4));
|
| - assertNull(enumType.findValueByName("NO_SUCH_VALUE"));
|
| - for (int i = 0; i < enumType.getValues().size(); i++) {
|
| - assertEquals(i, enumType.getValues().get(i).getIndex());
|
| - }
|
| - }
|
| -
|
| - public void testServiceDescriptor() throws Exception {
|
| - ServiceDescriptor service = TestService.getDescriptor();
|
| -
|
| - assertEquals("TestService", service.getName());
|
| - assertEquals("protobuf_unittest.TestService", service.getFullName());
|
| - assertEquals(UnittestProto.getDescriptor(), service.getFile());
|
| -
|
| - assertEquals(2, service.getMethods().size());
|
| -
|
| - MethodDescriptor fooMethod = service.getMethods().get(0);
|
| - assertEquals("Foo", fooMethod.getName());
|
| - assertEquals(UnittestProto.FooRequest.getDescriptor(),
|
| - fooMethod.getInputType());
|
| - assertEquals(UnittestProto.FooResponse.getDescriptor(),
|
| - fooMethod.getOutputType());
|
| - assertEquals(fooMethod, service.findMethodByName("Foo"));
|
| -
|
| - MethodDescriptor barMethod = service.getMethods().get(1);
|
| - assertEquals("Bar", barMethod.getName());
|
| - assertEquals(UnittestProto.BarRequest.getDescriptor(),
|
| - barMethod.getInputType());
|
| - assertEquals(UnittestProto.BarResponse.getDescriptor(),
|
| - barMethod.getOutputType());
|
| - assertEquals(barMethod, service.findMethodByName("Bar"));
|
| -
|
| - assertNull(service.findMethodByName("NoSuchMethod"));
|
| -
|
| - for (int i = 0; i < service.getMethods().size(); i++) {
|
| - assertEquals(i, service.getMethods().get(i).getIndex());
|
| - }
|
| - }
|
| -
|
| -
|
| - public void testCustomOptions() throws Exception {
|
| - Descriptor descriptor =
|
| - UnittestCustomOptions.TestMessageWithCustomOptions.getDescriptor();
|
| -
|
| - assertTrue(
|
| - descriptor.getOptions().hasExtension(UnittestCustomOptions.messageOpt1));
|
| - assertEquals(Integer.valueOf(-56),
|
| - descriptor.getOptions().getExtension(UnittestCustomOptions.messageOpt1));
|
| -
|
| - FieldDescriptor field = descriptor.findFieldByName("field1");
|
| - assertNotNull(field);
|
| -
|
| - assertTrue(
|
| - field.getOptions().hasExtension(UnittestCustomOptions.fieldOpt1));
|
| - assertEquals(Long.valueOf(8765432109L),
|
| - field.getOptions().getExtension(UnittestCustomOptions.fieldOpt1));
|
| -
|
| - EnumDescriptor enumType =
|
| - UnittestCustomOptions.TestMessageWithCustomOptions.AnEnum.getDescriptor();
|
| -
|
| - assertTrue(
|
| - enumType.getOptions().hasExtension(UnittestCustomOptions.enumOpt1));
|
| - assertEquals(Integer.valueOf(-789),
|
| - enumType.getOptions().getExtension(UnittestCustomOptions.enumOpt1));
|
| -
|
| - ServiceDescriptor service =
|
| - UnittestCustomOptions.TestServiceWithCustomOptions.getDescriptor();
|
| -
|
| - assertTrue(
|
| - service.getOptions().hasExtension(UnittestCustomOptions.serviceOpt1));
|
| - assertEquals(Long.valueOf(-9876543210L),
|
| - service.getOptions().getExtension(UnittestCustomOptions.serviceOpt1));
|
| -
|
| - MethodDescriptor method = service.findMethodByName("Foo");
|
| - assertNotNull(method);
|
| -
|
| - assertTrue(
|
| - method.getOptions().hasExtension(UnittestCustomOptions.methodOpt1));
|
| - assertEquals(UnittestCustomOptions.MethodOpt1.METHODOPT1_VAL2,
|
| - method.getOptions().getExtension(UnittestCustomOptions.methodOpt1));
|
| - }
|
| -
|
| - /**
|
| - * Test that the FieldDescriptor.Type enum is the same as the
|
| - * WireFormat.FieldType enum.
|
| - */
|
| - public void testFieldTypeTablesMatch() throws Exception {
|
| - FieldDescriptor.Type[] values1 = FieldDescriptor.Type.values();
|
| - WireFormat.FieldType[] values2 = WireFormat.FieldType.values();
|
| -
|
| - assertEquals(values1.length, values2.length);
|
| -
|
| - for (int i = 0; i < values1.length; i++) {
|
| - assertEquals(values1[i].toString(), values2[i].toString());
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Test that the FieldDescriptor.JavaType enum is the same as the
|
| - * WireFormat.JavaType enum.
|
| - */
|
| - public void testJavaTypeTablesMatch() throws Exception {
|
| - FieldDescriptor.JavaType[] values1 = FieldDescriptor.JavaType.values();
|
| - WireFormat.JavaType[] values2 = WireFormat.JavaType.values();
|
| -
|
| - assertEquals(values1.length, values2.length);
|
| -
|
| - for (int i = 0; i < values1.length; i++) {
|
| - assertEquals(values1[i].toString(), values2[i].toString());
|
| - }
|
| - }
|
| -
|
| - public void testEnormousDescriptor() throws Exception {
|
| - // The descriptor for this file is larger than 64k, yet it did not cause
|
| - // a compiler error due to an over-long string literal.
|
| - assertTrue(
|
| - UnittestEnormousDescriptor.getDescriptor()
|
| - .toProto().getSerializedSize() > 65536);
|
| - }
|
| -
|
| - /**
|
| - * Tests that the DescriptorValidationException works as intended.
|
| - */
|
| - public void testDescriptorValidatorException() throws Exception {
|
| - FileDescriptorProto fileDescriptorProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto")
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("Foo")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL)
|
| - .setType(FieldDescriptorProto.Type.TYPE_INT32)
|
| - .setName("foo")
|
| - .setNumber(1)
|
| - .setDefaultValue("invalid")
|
| - .build())
|
| - .build())
|
| - .build();
|
| - try {
|
| - Descriptors.FileDescriptor.buildFrom(fileDescriptorProto,
|
| - new FileDescriptor[0]);
|
| - fail("DescriptorValidationException expected");
|
| - } catch (DescriptorValidationException e) {
|
| - // Expected; check that the error message contains some useful hints
|
| - assertTrue(e.getMessage().indexOf("foo") != -1);
|
| - assertTrue(e.getMessage().indexOf("Foo") != -1);
|
| - assertTrue(e.getMessage().indexOf("invalid") != -1);
|
| - assertTrue(e.getCause() instanceof NumberFormatException);
|
| - assertTrue(e.getCause().getMessage().indexOf("invalid") != -1);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Tests the translate/crosslink for an example where a message field's name
|
| - * and type name are the same.
|
| - */
|
| - public void testDescriptorComplexCrosslink() throws Exception {
|
| - FileDescriptorProto fileDescriptorProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto")
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("Foo")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL)
|
| - .setType(FieldDescriptorProto.Type.TYPE_INT32)
|
| - .setName("foo")
|
| - .setNumber(1)
|
| - .build())
|
| - .build())
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("Bar")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL)
|
| - .setTypeName("Foo")
|
| - .setName("Foo")
|
| - .setNumber(1)
|
| - .build())
|
| - .build())
|
| - .build();
|
| - // translate and crosslink
|
| - FileDescriptor file =
|
| - Descriptors.FileDescriptor.buildFrom(fileDescriptorProto,
|
| - new FileDescriptor[0]);
|
| - // verify resulting descriptors
|
| - assertNotNull(file);
|
| - List<Descriptor> msglist = file.getMessageTypes();
|
| - assertNotNull(msglist);
|
| - assertTrue(msglist.size() == 2);
|
| - boolean barFound = false;
|
| - for (Descriptor desc : msglist) {
|
| - if (desc.getName().equals("Bar")) {
|
| - barFound = true;
|
| - assertNotNull(desc.getFields());
|
| - List<FieldDescriptor> fieldlist = desc.getFields();
|
| - assertNotNull(fieldlist);
|
| - assertTrue(fieldlist.size() == 1);
|
| - assertTrue(fieldlist.get(0).getType() == FieldDescriptor.Type.MESSAGE);
|
| - assertTrue(fieldlist.get(0).getMessageType().getName().equals("Foo"));
|
| - }
|
| - }
|
| - assertTrue(barFound);
|
| - }
|
| -
|
| - public void testInvalidPublicDependency() throws Exception {
|
| - FileDescriptorProto fooProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto") .build();
|
| - FileDescriptorProto barProto = FileDescriptorProto.newBuilder()
|
| - .setName("boo.proto")
|
| - .addDependency("foo.proto")
|
| - .addPublicDependency(1) // Error, should be 0.
|
| - .build();
|
| - FileDescriptor fooFile = Descriptors.FileDescriptor.buildFrom(fooProto,
|
| - new FileDescriptor[0]);
|
| - try {
|
| - Descriptors.FileDescriptor.buildFrom(barProto,
|
| - new FileDescriptor[] {fooFile});
|
| - fail("DescriptorValidationException expected");
|
| - } catch (DescriptorValidationException e) {
|
| - assertTrue(
|
| - e.getMessage().indexOf("Invalid public dependency index.") != -1);
|
| - }
|
| - }
|
| -
|
| - public void testHiddenDependency() throws Exception {
|
| - FileDescriptorProto barProto = FileDescriptorProto.newBuilder()
|
| - .setName("bar.proto")
|
| - .addMessageType(DescriptorProto.newBuilder().setName("Bar"))
|
| - .build();
|
| - FileDescriptorProto forwardProto = FileDescriptorProto.newBuilder()
|
| - .setName("forward.proto")
|
| - .addDependency("bar.proto")
|
| - .build();
|
| - FileDescriptorProto fooProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto")
|
| - .addDependency("forward.proto")
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("Foo")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL)
|
| - .setTypeName("Bar")
|
| - .setName("bar")
|
| - .setNumber(1)))
|
| - .build();
|
| - FileDescriptor barFile = Descriptors.FileDescriptor.buildFrom(
|
| - barProto, new FileDescriptor[0]);
|
| - FileDescriptor forwardFile = Descriptors.FileDescriptor.buildFrom(
|
| - forwardProto, new FileDescriptor[] {barFile});
|
| -
|
| - try {
|
| - Descriptors.FileDescriptor.buildFrom(
|
| - fooProto, new FileDescriptor[] {forwardFile});
|
| - fail("DescriptorValidationException expected");
|
| - } catch (DescriptorValidationException e) {
|
| - assertTrue(e.getMessage().indexOf("Bar") != -1);
|
| - assertTrue(e.getMessage().indexOf("is not defined") != -1);
|
| - }
|
| - }
|
| -
|
| - public void testPublicDependency() throws Exception {
|
| - FileDescriptorProto barProto = FileDescriptorProto.newBuilder()
|
| - .setName("bar.proto")
|
| - .addMessageType(DescriptorProto.newBuilder().setName("Bar"))
|
| - .build();
|
| - FileDescriptorProto forwardProto = FileDescriptorProto.newBuilder()
|
| - .setName("forward.proto")
|
| - .addDependency("bar.proto")
|
| - .addPublicDependency(0)
|
| - .build();
|
| - FileDescriptorProto fooProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto")
|
| - .addDependency("forward.proto")
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("Foo")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_OPTIONAL)
|
| - .setTypeName("Bar")
|
| - .setName("bar")
|
| - .setNumber(1)))
|
| - .build();
|
| - FileDescriptor barFile = Descriptors.FileDescriptor.buildFrom(
|
| - barProto, new FileDescriptor[0]);
|
| - FileDescriptor forwardFile = Descriptors.FileDescriptor.buildFrom(
|
| - forwardProto, new FileDescriptor[]{barFile});
|
| - Descriptors.FileDescriptor.buildFrom(
|
| - fooProto, new FileDescriptor[] {forwardFile});
|
| - }
|
| -
|
| - /**
|
| - * Tests the translate/crosslink for an example with a more complex namespace
|
| - * referencing.
|
| - */
|
| - public void testComplexNamespacePublicDependency() throws Exception {
|
| - FileDescriptorProto fooProto = FileDescriptorProto.newBuilder()
|
| - .setName("bar.proto")
|
| - .setPackage("a.b.c.d.bar.shared")
|
| - .addEnumType(EnumDescriptorProto.newBuilder()
|
| - .setName("MyEnum")
|
| - .addValue(EnumValueDescriptorProto.newBuilder()
|
| - .setName("BLAH")
|
| - .setNumber(1)))
|
| - .build();
|
| - FileDescriptorProto barProto = FileDescriptorProto.newBuilder()
|
| - .setName("foo.proto")
|
| - .addDependency("bar.proto")
|
| - .setPackage("a.b.c.d.foo.shared")
|
| - .addMessageType(DescriptorProto.newBuilder()
|
| - .setName("MyMessage")
|
| - .addField(FieldDescriptorProto.newBuilder()
|
| - .setLabel(FieldDescriptorProto.Label.LABEL_REPEATED)
|
| - .setTypeName("bar.shared.MyEnum")
|
| - .setName("MyField")
|
| - .setNumber(1)))
|
| - .build();
|
| - // translate and crosslink
|
| - FileDescriptor fooFile = Descriptors.FileDescriptor.buildFrom(
|
| - fooProto, new FileDescriptor[0]);
|
| - FileDescriptor barFile = Descriptors.FileDescriptor.buildFrom(
|
| - barProto, new FileDescriptor[]{fooFile});
|
| - // verify resulting descriptors
|
| - assertNotNull(barFile);
|
| - List<Descriptor> msglist = barFile.getMessageTypes();
|
| - assertNotNull(msglist);
|
| - assertTrue(msglist.size() == 1);
|
| - Descriptor desc = msglist.get(0);
|
| - if (desc.getName().equals("MyMessage")) {
|
| - assertNotNull(desc.getFields());
|
| - List<FieldDescriptor> fieldlist = desc.getFields();
|
| - assertNotNull(fieldlist);
|
| - assertTrue(fieldlist.size() == 1);
|
| - FieldDescriptor field = fieldlist.get(0);
|
| - assertTrue(field.getType() == FieldDescriptor.Type.ENUM);
|
| - assertTrue(field.getEnumType().getName().equals("MyEnum"));
|
| - assertTrue(field.getEnumType().getFile().getName().equals("bar.proto"));
|
| - assertTrue(field.getEnumType().getFile().getPackage().equals(
|
| - "a.b.c.d.bar.shared"));
|
| - }
|
| - }
|
| -}
|
|
|