diff --git a/.gitignore b/.gitignore index b8ba4892a43b..220e5c388469 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,8 @@ src/**/*.trs # JavaBuild output. java/target javanano/target + +# Windows native output. +vsprojects/Debug +vsprojects/Release + diff --git a/csharp/protos/extest/unittest_extras.proto b/csharp/protos/extest/unittest_extras.proto deleted file mode 100644 index 91f10fbd0b93..000000000000 --- a/csharp/protos/extest/unittest_extras.proto +++ /dev/null @@ -1,37 +0,0 @@ -// Additional options required for C# generation. File from copyright -// line onwards is as per original distribution. -import "google/protobuf/csharp_options.proto"; -option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasProtoFile"; -option (google.protobuf.csharp_file_options).add_serializable = true; - -package protobuf_unittest_extra; - -option java_package = "com.google.protobuf"; - -message TestUnpackedExtensions { - extensions 1 to max; -} - -extend TestUnpackedExtensions { - repeated int32 unpacked_int32_extension = 90; - repeated int64 unpacked_int64_extension = 91; - repeated uint32 unpacked_uint32_extension = 92; - repeated uint64 unpacked_uint64_extension = 93; - repeated sint32 unpacked_sint32_extension = 94; - repeated sint64 unpacked_sint64_extension = 95; - repeated fixed32 unpacked_fixed32_extension = 96; - repeated fixed64 unpacked_fixed64_extension = 97; - repeated sfixed32 unpacked_sfixed32_extension = 98; - repeated sfixed64 unpacked_sfixed64_extension = 99; - repeated float unpacked_float_extension = 100; - repeated double unpacked_double_extension = 101; - repeated bool unpacked_bool_extension = 102; - repeated UnpackedExtensionsForeignEnum unpacked_enum_extension = 103; -} - -enum UnpackedExtensionsForeignEnum { - FOREIGN_FOO = 4; - FOREIGN_BAR = 5; - FOREIGN_BAZ = 6; -} diff --git a/csharp/protos/extest/unittest_extras_full.proto b/csharp/protos/extest/unittest_extras_full.proto index a334bbf18036..1b54605376db 100644 --- a/csharp/protos/extest/unittest_extras_full.proto +++ b/csharp/protos/extest/unittest_extras_full.proto @@ -1,13 +1,9 @@ -// Additional options required for C# generation. File from copyright -// line onwards is as per original distribution. -import "google/protobuf/csharp_options.proto"; -option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasFullProtoFile"; +syntax = "proto2"; package protobuf_unittest_extra; +option csharp_namespace = "Google.ProtocolBuffers.TestProtos"; option optimize_for = CODE_SIZE; - option java_package = "com.google.protobuf"; message TestInteropPerson { @@ -45,7 +41,10 @@ message TestInteropEmployeeId { } extend TestInteropPerson { - required TestInteropEmployeeId employee_id = 126; + // Note: changed from required to optional, as required fields are not + // permitted in extensions. (The fact that this was allowed in protogen + // before was almost certainly a bug.) + optional TestInteropEmployeeId employee_id = 126; } message TestMissingFieldsA { diff --git a/csharp/protos/extest/unittest_extras_lite.proto b/csharp/protos/extest/unittest_extras_lite.proto index ea1bcd25ca87..0c242d2fa666 100644 --- a/csharp/protos/extest/unittest_extras_lite.proto +++ b/csharp/protos/extest/unittest_extras_lite.proto @@ -1,14 +1,9 @@ -// Additional options required for C# generation. File from copyright -// line onwards is as per original distribution. -import "google/protobuf/csharp_options.proto"; -option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasLiteProtoFile"; -option (google.protobuf.csharp_file_options).add_serializable = true; +syntax = "proto2"; package protobuf_unittest_extra; +option csharp_namespace = "Google.ProtocolBuffers.TestProtos"; option optimize_for = LITE_RUNTIME; - option java_package = "com.google.protobuf"; message TestRequiredLite { @@ -58,7 +53,10 @@ message TestInteropEmployeeIdLite { } extend TestInteropPersonLite { - required TestInteropEmployeeIdLite employee_id_lite = 126; + // Note: changed from required to optional, as required fields are not + // permitted in extensions. (The fact that this was allowed in protogen + // before was almost certainly a bug.) + optional TestInteropEmployeeIdLite employee_id_lite = 126; } /* Removed from unittest_lite.proto and added back here */ diff --git a/csharp/protos/extest/unittest_extras_xmltest.proto b/csharp/protos/extest/unittest_extras_xmltest.proto index ab8088a76be8..fae361653712 100644 --- a/csharp/protos/extest/unittest_extras_xmltest.proto +++ b/csharp/protos/extest/unittest_extras_xmltest.proto @@ -1,7 +1,6 @@ -import "google/protobuf/csharp_options.proto"; -option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestXmlSerializerTestProtoFile"; -option (google.protobuf.csharp_file_options).add_serializable = true; +syntax = "proto2"; + +option csharp_namespace = "Google.ProtocolBuffers.TestProtos"; package protobuf_unittest_extra; diff --git a/csharp/protos/extest/unittest_generic_services.proto b/csharp/protos/extest/unittest_generic_services.proto index 3fe2e8eb58f4..4e68ff0f15a5 100644 --- a/csharp/protos/extest/unittest_generic_services.proto +++ b/csharp/protos/extest/unittest_generic_services.proto @@ -1,29 +1,30 @@ +syntax = "proto2"; + // Additional options required for C# generation. File from copyright // line onwards is as per original distribution. -import "google/protobuf/csharp_options.proto"; import "google/protobuf/unittest.proto"; import "google/protobuf/unittest_custom_options.proto"; -option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestGenericServices"; -option (google.protobuf.csharp_file_options).service_generator_type = GENERIC; +option csharp_namespace = "Google.ProtocolBuffers.TestProtos"; + +// option (google.protobuf.csharp_file_options).service_generator_type = GENERIC; + +// We don't put this in a package within proto2 because we need to make sure +// that the generated code doesn't depend on being in the proto2 namespace. +package protobuf_unittest; -// We don't put this in a package within proto2 because we need to make sure -// that the generated code doesn't depend on being in the proto2 namespace. -package protobuf_unittest; - option optimize_for = SPEED; service TestGenericService { rpc Foo(FooRequest) returns (FooResponse); rpc Bar(BarRequest) returns (BarResponse); } - -service TestGenericServiceWithCustomOptions { - option (service_opt1) = -9876543210; - - rpc Foo(CustomOptionFooRequest) returns (CustomOptionFooResponse) { - option (method_opt1) = METHODOPT1_VAL2; - } -} - + +service TestGenericServiceWithCustomOptions { + option (service_opt1) = -9876543210; + + rpc Foo(CustomOptionFooRequest) returns (CustomOptionFooResponse) { + option (method_opt1) = METHODOPT1_VAL2; + } +} + diff --git a/csharp/protos/extest/unittest_issues.proto b/csharp/protos/extest/unittest_issues.proto index cb803791a493..97249dff71c1 100644 --- a/csharp/protos/extest/unittest_issues.proto +++ b/csharp/protos/extest/unittest_issues.proto @@ -1,10 +1,10 @@ +syntax = "proto2"; + // These proto descriptors have at one time been reported as an issue or defect. // They are kept here to replicate the issue, and continue to verify the fix. -import "google/protobuf/csharp_options.proto"; // Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualified -option (google.protobuf.csharp_file_options).namespace = "UnitTest.Issues.TestProtos"; -option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasIssuesProtoFile"; +option csharp_namespace = "UnitTest.Issues.TestProtos"; package unittest_issues; option optimize_for = SPEED; @@ -67,24 +67,28 @@ service TestGenericService { rpc Bar(TestBasicNoFields) returns (TestBasicMessage); } */ -// Issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13 + +// Old issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13 +// New issue 309: https://github.com/google/protobuf/issues/309 -message A { - optional int32 _A = 1; -} +// message A { +// optional int32 _A = 1; +// } -message B { - optional int32 B_ = 1; -} +// message B { +// optional int32 B_ = 1; +// } -message AB { - optional int32 a_b = 1; -} +//message AB { +// optional int32 a_b = 1; +//} // Similar issue with numeric names -message NumberField { - optional int32 _01 = 1; -} +// Java code failed too, so probably best for this to be a restriction. +// See https://github.com/google/protobuf/issues/308 +// message NumberField { +// optional int32 _01 = 1; +// } // Issue 28: Circular message dependencies result in null defaults for DefaultInstance diff --git a/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs b/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs index 02793aeb1036..54f400c35eea 100644 --- a/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs @@ -132,8 +132,8 @@ public void UnpackedParsingOfPackedInputExtensions() { byte[] bytes = TestUtil.GetPackedSet().ToByteArray(); ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); - UnitTestProtoFile.RegisterAllExtensions(registry); - UnitTestExtrasProtoFile.RegisterAllExtensions(registry); + Unittest.RegisterAllExtensions(registry); + UnittestImport.RegisterAllExtensions(registry); TestUnpackedExtensions message = TestUnpackedExtensions.ParseFrom(bytes, registry); TestUtil.AssertUnpackedExtensionsSet(message); } @@ -143,7 +143,7 @@ public void PackedParsingOfUnpackedInputExtensions() { byte[] bytes = TestUnpackedTypes.ParseFrom(TestUtil.GetPackedSet().ToByteArray()).ToByteArray(); ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); - UnitTestProtoFile.RegisterAllExtensions(registry); + Unittest.RegisterAllExtensions(registry); TestPackedExtensions message = TestPackedExtensions.ParseFrom(bytes, registry); TestUtil.AssertPackedExtensionsSet(message); } @@ -250,7 +250,7 @@ public void EqualsAndHashCode() TestAllTypes d = TestAllTypes.CreateBuilder(c).AddRepeatedString("y").Build(); TestAllExtensions e = TestUtil.GetAllExtensionsSet(); TestAllExtensions f = TestAllExtensions.CreateBuilder(e) - .AddExtension(UnitTestProtoFile.RepeatedInt32Extension, 999).Build(); + .AddExtension(Unittest.RepeatedInt32Extension, 999).Build(); CheckEqualsIsConsistent(a); CheckEqualsIsConsistent(b); diff --git a/csharp/src/ProtocolBuffers.Test/CSharpOptionsTest.cs b/csharp/src/ProtocolBuffers.Test/CSharpOptionsTest.cs deleted file mode 100644 index 752d9a0c6ef6..000000000000 --- a/csharp/src/ProtocolBuffers.Test/CSharpOptionsTest.cs +++ /dev/null @@ -1,127 +0,0 @@ -#region Copyright notice and license - -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// http://github.com/jskeet/dotnet-protobufs/ -// Original C++/Java/Python code: -// 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. - -#endregion - -using Google.ProtocolBuffers.DescriptorProtos; -using Google.ProtocolBuffers.Descriptors; -using Microsoft.VisualStudio.TestTools.UnitTesting; - -namespace Google.ProtocolBuffers -{ - [TestClass] - public class DescriptorUtilTest - { - [TestMethod] - public void ExplicitNamespace() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder - { - Name = "x", - Package = "pack", - Options = - new FileOptions.Builder().SetExtension( - CSharpOptions.CSharpFileOptions, - new CSharpFileOptions.Builder {Namespace = "Foo.Bar"}.Build()). - Build() - }.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("Foo.Bar", descriptor.CSharpOptions.Namespace); - } - - [TestMethod] - public void NoNamespaceFallsBackToPackage() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "x", Package = "pack"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("pack", descriptor.CSharpOptions.Namespace); - } - - [TestMethod] - public void NoNamespaceOrPackageFallsBackToEmptyString() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "x"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("", descriptor.CSharpOptions.Namespace); - } - - [TestMethod] - public void ExplicitlyNamedFileClass() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder - { - Name = "x", - Options = - new FileOptions.Builder().SetExtension( - CSharpOptions.CSharpFileOptions, - new CSharpFileOptions.Builder {UmbrellaClassname = "Foo"}.Build()) - .Build() - }.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("Foo", descriptor.CSharpOptions.UmbrellaClassname); - } - - [TestMethod] - public void ImplicitFileClassWithProtoSuffix() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "foo_bar.proto"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname); - } - - [TestMethod] - public void ImplicitFileClassWithProtoDevelSuffix() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "foo_bar.protodevel"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname); - } - - [TestMethod] - public void ImplicitFileClassWithNoSuffix() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "foo_bar"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname); - } - - [TestMethod] - public void ImplicitFileClassWithDirectoryStructure() - { - FileDescriptorProto proto = new FileDescriptorProto.Builder {Name = "x/y/foo_bar"}.Build(); - FileDescriptor descriptor = FileDescriptor.BuildFrom(proto, null); - Assert.AreEqual("FooBar", descriptor.CSharpOptions.UmbrellaClassname); - } - } -} \ No newline at end of file diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs index 20189617a769..5befe96fa2c9 100644 --- a/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs +++ b/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs @@ -7,7 +7,7 @@ namespace Google.ProtocolBuffers.Compatibility { /// /// This abstract base implements several tests to ensure that well-known messages can be written - /// and read to/from various formats without loosing data. Implementations overload the two serailization + /// and read to/from various formats without losing data. Implementations overload the two serailization /// methods to provide the tests with the means to read and write for a given format. /// public abstract class CompatibilityTests diff --git a/csharp/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs b/csharp/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs deleted file mode 100644 index 79033e6e404b..000000000000 --- a/csharp/src/ProtocolBuffers.Test/Descriptors/MessageDescriptorTest.cs +++ /dev/null @@ -1,72 +0,0 @@ -#region Copyright notice and license - -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// http://github.com/jskeet/dotnet-protobufs/ -// Original C++/Java/Python code: -// 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. - -#endregion - -using Microsoft.VisualStudio.TestTools.UnitTesting; -using Google.ProtocolBuffers.TestProtos; - -namespace Google.ProtocolBuffers.Descriptors -{ - [TestClass] - public class MessageDescriptorTest - { - [TestMethod] - public void FindPropertyWithDefaultName() - { - Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.NormalFieldNumber), - OptionsMessage.Descriptor.FindFieldByPropertyName("Normal")); - } - - [TestMethod] - public void FindPropertyWithAutoModifiedName() - { - Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.OptionsMessage_FieldNumber), - OptionsMessage.Descriptor.FindFieldByPropertyName("OptionsMessage_")); - } - - [TestMethod] - public void FindPropertyWithCustomizedName() - { - Assert.AreSame(OptionsMessage.Descriptor.FindFieldByNumber(OptionsMessage.CustomNameFieldNumber), - OptionsMessage.Descriptor.FindFieldByPropertyName("CustomName")); - } - - [TestMethod] - public void FindPropertyWithInvalidName() - { - Assert.IsNull(OptionsMessage.Descriptor.FindFieldByPropertyName("Bogus")); - } - } -} \ No newline at end of file diff --git a/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs index ca10c6216282..e74236fb9506 100644 --- a/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs +++ b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs @@ -51,7 +51,7 @@ public class DescriptorsTest [TestMethod] public void FileDescriptor() { - FileDescriptor file = UnitTestProtoFile.Descriptor; + FileDescriptor file = Unittest.Descriptor; Assert.AreEqual("google/protobuf/unittest.proto", file.Name); Assert.AreEqual("protobuf_unittest", file.Package); @@ -59,9 +59,13 @@ public void FileDescriptor() Assert.AreEqual("UnittestProto", file.Options.JavaOuterClassname); Assert.AreEqual("google/protobuf/unittest.proto", file.Proto.Name); -// TODO(jonskeet): Either change to expect 2 dependencies, or don't emit them. -// Assert.AreEqual(2, file.Dependencies.Count); - Assert.AreEqual(UnitTestImportProtoFile.Descriptor, file.Dependencies[1]); + // unittest.proto doesn't have any public imports, but unittest_import.proto does. + Assert.AreEqual(0, file.PublicDependencies.Count); + Assert.AreEqual(1, UnittestImport.Descriptor.PublicDependencies.Count); + Assert.AreEqual(UnittestImportPublic.Descriptor, UnittestImport.Descriptor.PublicDependencies[0]); + + Assert.AreEqual(1, file.Dependencies.Count); + Assert.AreEqual(UnittestImport.Descriptor, file.Dependencies[0]); MessageDescriptor messageType = TestAllTypes.Descriptor; Assert.AreEqual(messageType, file.MessageTypes[0]); @@ -76,33 +80,19 @@ public void FileDescriptor() Assert.AreEqual(file.EnumTypes[0], file.FindTypeByName("ForeignEnum")); Assert.IsNull(file.FindTypeByName("NoSuchType")); Assert.IsNull(file.FindTypeByName("protobuf_unittest.ForeignEnum")); - Assert.AreEqual(1, UnitTestImportProtoFile.Descriptor.EnumTypes.Count); - Assert.AreEqual("ImportEnum", UnitTestImportProtoFile.Descriptor.EnumTypes[0].Name); + Assert.AreEqual(1, UnittestImport.Descriptor.EnumTypes.Count); + Assert.AreEqual("ImportEnum", UnittestImport.Descriptor.EnumTypes[0].Name); for (int i = 0; i < file.EnumTypes.Count; i++) { Assert.AreEqual(i, file.EnumTypes[i].Index); } - ServiceDescriptor service = TestGenericService.Descriptor; - Assert.AreEqual(service, UnitTestGenericServices.Descriptor.Services[0]); - Assert.AreEqual(service, - UnitTestGenericServices.Descriptor.FindTypeByName("TestGenericService")); - Assert.IsNull(UnitTestGenericServices.Descriptor.FindTypeByName("NoSuchType")); - Assert.IsNull( - UnitTestGenericServices.Descriptor.FindTypeByName( - "protobuf_unittest.TestGenericService")); - Assert.AreEqual(0, UnitTestImportProtoFile.Descriptor.Services.Count); - for (int i = 0; i < file.Services.Count; i++) - { - Assert.AreEqual(i, file.Services[i].Index); - } - - FieldDescriptor extension = UnitTestProtoFile.OptionalInt32Extension.Descriptor; + FieldDescriptor extension = Unittest.OptionalInt32Extension.Descriptor; Assert.AreEqual(extension, file.Extensions[0]); Assert.AreEqual(extension, file.FindTypeByName("optional_int32_extension")); Assert.IsNull(file.FindTypeByName("no_such_ext")); Assert.IsNull(file.FindTypeByName("protobuf_unittest.optional_int32_extension")); - Assert.AreEqual(0, UnitTestImportProtoFile.Descriptor.Extensions.Count); + Assert.AreEqual(0, UnittestImport.Descriptor.Extensions.Count); for (int i = 0; i < file.Extensions.Count; i++) { Assert.AreEqual(i, file.Extensions[i].Index); @@ -117,14 +107,14 @@ public void MessageDescriptor() Assert.AreEqual("TestAllTypes", messageType.Name); Assert.AreEqual("protobuf_unittest.TestAllTypes", messageType.FullName); - Assert.AreEqual(UnitTestProtoFile.Descriptor, messageType.File); + Assert.AreEqual(Unittest.Descriptor, messageType.File); Assert.IsNull(messageType.ContainingType); Assert.AreEqual(DescriptorProtos.MessageOptions.DefaultInstance, messageType.Options); Assert.AreEqual("TestAllTypes", messageType.Proto.Name); Assert.AreEqual("NestedMessage", nestedType.Name); Assert.AreEqual("protobuf_unittest.TestAllTypes.NestedMessage", nestedType.FullName); - Assert.AreEqual(UnitTestProtoFile.Descriptor, nestedType.File); + Assert.AreEqual(Unittest.Descriptor, nestedType.File); Assert.AreEqual(messageType, nestedType.ContainingType); FieldDescriptor field = messageType.Fields[0]; @@ -162,7 +152,7 @@ public void FieldDescriptor() FieldDescriptor enumField = messageType.FindDescriptor("optional_nested_enum"); FieldDescriptor messageField = messageType.FindDescriptor("optional_foreign_message"); FieldDescriptor cordField = messageType.FindDescriptor("optional_cord"); - FieldDescriptor extension = UnitTestProtoFile.OptionalInt32Extension.Descriptor; + FieldDescriptor extension = Unittest.OptionalInt32Extension.Descriptor; FieldDescriptor nestedExtension = TestRequired.Single.Descriptor; Assert.AreEqual("optional_int32", primitiveField.Name); @@ -170,7 +160,7 @@ public void FieldDescriptor() primitiveField.FullName); Assert.AreEqual(1, primitiveField.FieldNumber); Assert.AreEqual(messageType, primitiveField.ContainingType); - Assert.AreEqual(UnitTestProtoFile.Descriptor, primitiveField.File); + Assert.AreEqual(Unittest.Descriptor, primitiveField.File); Assert.AreEqual(FieldType.Int32, primitiveField.FieldType); Assert.AreEqual(MappedType.Int32, primitiveField.MappedType); Assert.AreEqual(DescriptorProtos.FieldOptions.DefaultInstance, primitiveField.Options); @@ -180,7 +170,7 @@ public void FieldDescriptor() Assert.AreEqual("optional_nested_enum", enumField.Name); Assert.AreEqual(FieldType.Enum, enumField.FieldType); Assert.AreEqual(MappedType.Enum, enumField.MappedType); - // Assert.AreEqual(TestAllTypes.Types.NestedEnum.Descriptor, enumField.EnumType); + // Assert.AreEqual(TestAllTypes.Types.NestedEnum.DescriptorProtoFile, enumField.EnumType); Assert.AreEqual("optional_foreign_message", messageField.Name); Assert.AreEqual(FieldType.Message, messageField.FieldType); @@ -196,7 +186,7 @@ public void FieldDescriptor() Assert.AreEqual("protobuf_unittest.optional_int32_extension", extension.FullName); Assert.AreEqual(1, extension.FieldNumber); Assert.AreEqual(TestAllExtensions.Descriptor, extension.ContainingType); - Assert.AreEqual(UnitTestProtoFile.Descriptor, extension.File); + Assert.AreEqual(Unittest.Descriptor, extension.File); Assert.AreEqual(FieldType.Int32, extension.FieldType); Assert.AreEqual(MappedType.Int32, extension.MappedType); Assert.AreEqual(DescriptorProtos.FieldOptions.DefaultInstance, @@ -249,12 +239,12 @@ public void FieldDescriptorDefault() public void EnumDescriptor() { // Note: this test is a bit different to the Java version because there's no static way of getting to the descriptor - EnumDescriptor enumType = UnitTestProtoFile.Descriptor.FindTypeByName("ForeignEnum"); + EnumDescriptor enumType = Unittest.Descriptor.FindTypeByName("ForeignEnum"); EnumDescriptor nestedType = TestAllTypes.Descriptor.FindDescriptor("NestedEnum"); Assert.AreEqual("ForeignEnum", enumType.Name); Assert.AreEqual("protobuf_unittest.ForeignEnum", enumType.FullName); - Assert.AreEqual(UnitTestProtoFile.Descriptor, enumType.File); + Assert.AreEqual(Unittest.Descriptor, enumType.File); Assert.IsNull(enumType.ContainingType); Assert.AreEqual(DescriptorProtos.EnumOptions.DefaultInstance, enumType.Options); @@ -262,7 +252,7 @@ public void EnumDescriptor() Assert.AreEqual("NestedEnum", nestedType.Name); Assert.AreEqual("protobuf_unittest.TestAllTypes.NestedEnum", nestedType.FullName); - Assert.AreEqual(UnitTestProtoFile.Descriptor, nestedType.File); + Assert.AreEqual(Unittest.Descriptor, nestedType.File); Assert.AreEqual(TestAllTypes.Descriptor, nestedType.ContainingType); EnumValueDescriptor value = enumType.FindValueByName("FOREIGN_FOO"); @@ -277,74 +267,22 @@ public void EnumDescriptor() Assert.AreEqual(i, enumType.Values[i].Index); } } - - [TestMethod] - public void ServiceDescriptor() - { - ServiceDescriptor service = TestGenericService.Descriptor; - - Assert.AreEqual("TestGenericService", service.Name); - Assert.AreEqual("protobuf_unittest.TestGenericService", service.FullName); - Assert.AreEqual(UnitTestGenericServices.Descriptor, service.File); - - Assert.AreEqual(2, service.Methods.Count); - - MethodDescriptor fooMethod = service.Methods[0]; - Assert.AreEqual("Foo", fooMethod.Name); - Assert.AreEqual(FooRequest.Descriptor, fooMethod.InputType); - Assert.AreEqual(FooResponse.Descriptor, fooMethod.OutputType); - Assert.AreEqual(fooMethod, service.FindMethodByName("Foo")); - - MethodDescriptor barMethod = service.Methods[1]; - Assert.AreEqual("Bar", barMethod.Name); - Assert.AreEqual(BarRequest.Descriptor, barMethod.InputType); - Assert.AreEqual(BarResponse.Descriptor, barMethod.OutputType); - Assert.AreEqual(barMethod, service.FindMethodByName("Bar")); - - Assert.IsNull(service.FindMethodByName("NoSuchMethod")); - - for (int i = 0; i < service.Methods.Count; i++) - { - Assert.AreEqual(i, service.Methods[i].Index); - } - } + [TestMethod] public void CustomOptions() { MessageDescriptor descriptor = TestMessageWithCustomOptions.Descriptor; - Assert.IsTrue(descriptor.Options.HasExtension(UnitTestCustomOptionsProtoFile.MessageOpt1)); - Assert.AreEqual(-56, descriptor.Options.GetExtension(UnitTestCustomOptionsProtoFile.MessageOpt1)); + Assert.IsTrue(descriptor.Options.HasExtension(UnittestCustomOptions.MessageOpt1)); + Assert.AreEqual(-56, descriptor.Options.GetExtension(UnittestCustomOptions.MessageOpt1)); FieldDescriptor field = descriptor.FindFieldByName("field1"); Assert.IsNotNull(field); - Assert.IsTrue(field.Options.HasExtension(UnitTestCustomOptionsProtoFile.FieldOpt1)); - Assert.AreEqual(8765432109uL, field.Options.GetExtension(UnitTestCustomOptionsProtoFile.FieldOpt1)); - - // TODO: Write out enum descriptors - /* - EnumDescriptor enumType = TestMessageWithCustomOptions.Types. - UnittestCustomOptions.TestMessageWithCustomOptions.AnEnum.getDescriptor(); - - Assert.IsTrue( - enumType.getOptions().hasExtension(UnittestCustomOptions.enumOpt1)); - Assert.AreEqual(Integer.valueOf(-789), - enumType.getOptions().getExtension(UnittestCustomOptions.enumOpt1)); - */ - - ServiceDescriptor service = TestGenericServiceWithCustomOptions.Descriptor; - - Assert.IsTrue(service.Options.HasExtension(UnitTestCustomOptionsProtoFile.ServiceOpt1)); - Assert.AreEqual(-9876543210L, service.Options.GetExtension(UnitTestCustomOptionsProtoFile.ServiceOpt1)); - - MethodDescriptor method = service.FindMethodByName("Foo"); - Assert.IsNotNull(method); - - Assert.IsTrue(method.Options.HasExtension(UnitTestCustomOptionsProtoFile.MethodOpt1)); - Assert.AreEqual(MethodOpt1.METHODOPT1_VAL2, - method.Options.GetExtension(UnitTestCustomOptionsProtoFile.MethodOpt1)); + Assert.IsTrue(field.Options.HasExtension(UnittestCustomOptions.FieldOpt1)); + Assert.AreEqual(8765432109uL, field.Options.GetExtension(UnittestCustomOptions.FieldOpt1)); + } } } \ No newline at end of file diff --git a/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs b/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs index 68f37c3ccd7e..4e0bf8e66860 100644 --- a/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs @@ -48,7 +48,7 @@ public class ExtendableMessageTest [TestMethod, ExpectedException(typeof(ArgumentException))] public void ExtensionWriterInvalidExtension() { - TestPackedExtensions.CreateBuilder()[UnitTestProtoFile.OptionalForeignMessageExtension.Descriptor] = + TestPackedExtensions.CreateBuilder()[Unittest.OptionalForeignMessageExtension.Descriptor] = ForeignMessage.DefaultInstance; } @@ -56,73 +56,73 @@ public void ExtensionWriterInvalidExtension() public void ExtensionWriterTest() { TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder() - .SetExtension(UnitTestProtoFile.DefaultBoolExtension, true) - .SetExtension(UnitTestProtoFile.DefaultBytesExtension, ByteString.CopyFromUtf8("123")) - .SetExtension(UnitTestProtoFile.DefaultCordExtension, "123") - .SetExtension(UnitTestProtoFile.DefaultDoubleExtension, 123) - .SetExtension(UnitTestProtoFile.DefaultFixed32Extension, 123u) - .SetExtension(UnitTestProtoFile.DefaultFixed64Extension, 123u) - .SetExtension(UnitTestProtoFile.DefaultFloatExtension, 123) - .SetExtension(UnitTestProtoFile.DefaultForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) - .SetExtension(UnitTestProtoFile.DefaultImportEnumExtension, ImportEnum.IMPORT_BAZ) - .SetExtension(UnitTestProtoFile.DefaultInt32Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultInt64Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) - .SetExtension(UnitTestProtoFile.DefaultSfixed32Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultSfixed64Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultSint32Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultSint64Extension, 123) - .SetExtension(UnitTestProtoFile.DefaultStringExtension, "123") - .SetExtension(UnitTestProtoFile.DefaultStringPieceExtension, "123") - .SetExtension(UnitTestProtoFile.DefaultUint32Extension, 123u) - .SetExtension(UnitTestProtoFile.DefaultUint64Extension, 123u) + .SetExtension(Unittest.DefaultBoolExtension, true) + .SetExtension(Unittest.DefaultBytesExtension, ByteString.CopyFromUtf8("123")) + .SetExtension(Unittest.DefaultCordExtension, "123") + .SetExtension(Unittest.DefaultDoubleExtension, 123) + .SetExtension(Unittest.DefaultFixed32Extension, 123u) + .SetExtension(Unittest.DefaultFixed64Extension, 123u) + .SetExtension(Unittest.DefaultFloatExtension, 123) + .SetExtension(Unittest.DefaultForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) + .SetExtension(Unittest.DefaultImportEnumExtension, ImportEnum.IMPORT_BAZ) + .SetExtension(Unittest.DefaultInt32Extension, 123) + .SetExtension(Unittest.DefaultInt64Extension, 123) + .SetExtension(Unittest.DefaultNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) + .SetExtension(Unittest.DefaultSfixed32Extension, 123) + .SetExtension(Unittest.DefaultSfixed64Extension, 123) + .SetExtension(Unittest.DefaultSint32Extension, 123) + .SetExtension(Unittest.DefaultSint64Extension, 123) + .SetExtension(Unittest.DefaultStringExtension, "123") + .SetExtension(Unittest.DefaultStringPieceExtension, "123") + .SetExtension(Unittest.DefaultUint32Extension, 123u) + .SetExtension(Unittest.DefaultUint64Extension, 123u) //Optional - .SetExtension(UnitTestProtoFile.OptionalBoolExtension, true) - .SetExtension(UnitTestProtoFile.OptionalBytesExtension, ByteString.CopyFromUtf8("123")) - .SetExtension(UnitTestProtoFile.OptionalCordExtension, "123") - .SetExtension(UnitTestProtoFile.OptionalDoubleExtension, 123) - .SetExtension(UnitTestProtoFile.OptionalFixed32Extension, 123u) - .SetExtension(UnitTestProtoFile.OptionalFixed64Extension, 123u) - .SetExtension(UnitTestProtoFile.OptionalFloatExtension, 123) - .SetExtension(UnitTestProtoFile.OptionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) - .SetExtension(UnitTestProtoFile.OptionalImportEnumExtension, ImportEnum.IMPORT_BAZ) - .SetExtension(UnitTestProtoFile.OptionalInt32Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalInt64Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) - .SetExtension(UnitTestProtoFile.OptionalSfixed32Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalSfixed64Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalSint32Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalSint64Extension, 123) - .SetExtension(UnitTestProtoFile.OptionalStringExtension, "123") - .SetExtension(UnitTestProtoFile.OptionalStringPieceExtension, "123") - .SetExtension(UnitTestProtoFile.OptionalUint32Extension, 123u) - .SetExtension(UnitTestProtoFile.OptionalUint64Extension, 123u) + .SetExtension(Unittest.OptionalBoolExtension, true) + .SetExtension(Unittest.OptionalBytesExtension, ByteString.CopyFromUtf8("123")) + .SetExtension(Unittest.OptionalCordExtension, "123") + .SetExtension(Unittest.OptionalDoubleExtension, 123) + .SetExtension(Unittest.OptionalFixed32Extension, 123u) + .SetExtension(Unittest.OptionalFixed64Extension, 123u) + .SetExtension(Unittest.OptionalFloatExtension, 123) + .SetExtension(Unittest.OptionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) + .SetExtension(Unittest.OptionalImportEnumExtension, ImportEnum.IMPORT_BAZ) + .SetExtension(Unittest.OptionalInt32Extension, 123) + .SetExtension(Unittest.OptionalInt64Extension, 123) + .SetExtension(Unittest.OptionalNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) + .SetExtension(Unittest.OptionalSfixed32Extension, 123) + .SetExtension(Unittest.OptionalSfixed64Extension, 123) + .SetExtension(Unittest.OptionalSint32Extension, 123) + .SetExtension(Unittest.OptionalSint64Extension, 123) + .SetExtension(Unittest.OptionalStringExtension, "123") + .SetExtension(Unittest.OptionalStringPieceExtension, "123") + .SetExtension(Unittest.OptionalUint32Extension, 123u) + .SetExtension(Unittest.OptionalUint64Extension, 123u) //Repeated - .AddExtension(UnitTestProtoFile.RepeatedBoolExtension, true) - .AddExtension(UnitTestProtoFile.RepeatedBytesExtension, ByteString.CopyFromUtf8("123")) - .AddExtension(UnitTestProtoFile.RepeatedCordExtension, "123") - .AddExtension(UnitTestProtoFile.RepeatedDoubleExtension, 123) - .AddExtension(UnitTestProtoFile.RepeatedFixed32Extension, 123u) - .AddExtension(UnitTestProtoFile.RepeatedFixed64Extension, 123u) - .AddExtension(UnitTestProtoFile.RepeatedFloatExtension, 123) - .AddExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) - .AddExtension(UnitTestProtoFile.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAZ) - .AddExtension(UnitTestProtoFile.RepeatedInt32Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedInt64Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) - .AddExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedSint32Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedSint64Extension, 123) - .AddExtension(UnitTestProtoFile.RepeatedStringExtension, "123") - .AddExtension(UnitTestProtoFile.RepeatedStringPieceExtension, "123") - .AddExtension(UnitTestProtoFile.RepeatedUint32Extension, 123u) - .AddExtension(UnitTestProtoFile.RepeatedUint64Extension, 123u) + .AddExtension(Unittest.RepeatedBoolExtension, true) + .AddExtension(Unittest.RepeatedBytesExtension, ByteString.CopyFromUtf8("123")) + .AddExtension(Unittest.RepeatedCordExtension, "123") + .AddExtension(Unittest.RepeatedDoubleExtension, 123) + .AddExtension(Unittest.RepeatedFixed32Extension, 123u) + .AddExtension(Unittest.RepeatedFixed64Extension, 123u) + .AddExtension(Unittest.RepeatedFloatExtension, 123) + .AddExtension(Unittest.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ) + .AddExtension(Unittest.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAZ) + .AddExtension(Unittest.RepeatedInt32Extension, 123) + .AddExtension(Unittest.RepeatedInt64Extension, 123) + .AddExtension(Unittest.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO) + .AddExtension(Unittest.RepeatedSfixed32Extension, 123) + .AddExtension(Unittest.RepeatedSfixed64Extension, 123) + .AddExtension(Unittest.RepeatedSint32Extension, 123) + .AddExtension(Unittest.RepeatedSint64Extension, 123) + .AddExtension(Unittest.RepeatedStringExtension, "123") + .AddExtension(Unittest.RepeatedStringPieceExtension, "123") + .AddExtension(Unittest.RepeatedUint32Extension, 123u) + .AddExtension(Unittest.RepeatedUint64Extension, 123u) ; TestAllExtensions msg = builder.Build(); ExtensionRegistry registry = ExtensionRegistry.CreateInstance(); - UnitTestProtoFile.RegisterAllExtensions(registry); + Unittest.RegisterAllExtensions(registry); TestAllExtensions.Builder copyBuilder = TestAllExtensions.CreateBuilder().MergeFrom(msg.ToByteArray(), registry); @@ -130,73 +130,73 @@ public void ExtensionWriterTest() TestUtil.AssertBytesEqual(msg.ToByteArray(), copy.ToByteArray()); - Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.DefaultBoolExtension)); - Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestProtoFile.DefaultBytesExtension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultCordExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultDoubleExtension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultFixed32Extension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultFixed64Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultFloatExtension)); - Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(UnitTestProtoFile.DefaultForeignEnumExtension)); - Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.DefaultImportEnumExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultInt32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultInt64Extension)); + Assert.AreEqual(true, copy.GetExtension(Unittest.DefaultBoolExtension)); + Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(Unittest.DefaultBytesExtension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultCordExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultDoubleExtension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultFixed32Extension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultFixed64Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultFloatExtension)); + Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(Unittest.DefaultForeignEnumExtension)); + Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.DefaultImportEnumExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultInt32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultInt64Extension)); Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, - copy.GetExtension(UnitTestProtoFile.DefaultNestedEnumExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSfixed32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSfixed64Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSint32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSint64Extension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultStringExtension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultStringPieceExtension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultUint32Extension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultUint64Extension)); + copy.GetExtension(Unittest.DefaultNestedEnumExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSfixed32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSfixed64Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSint32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSint64Extension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultStringExtension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultStringPieceExtension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultUint32Extension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultUint64Extension)); - Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.OptionalBoolExtension)); - Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestProtoFile.OptionalBytesExtension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalCordExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalDoubleExtension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalFixed32Extension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalFixed64Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalFloatExtension)); - Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(UnitTestProtoFile.OptionalForeignEnumExtension)); - Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.OptionalImportEnumExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalInt32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalInt64Extension)); + Assert.AreEqual(true, copy.GetExtension(Unittest.OptionalBoolExtension)); + Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(Unittest.OptionalBytesExtension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalCordExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalDoubleExtension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalFixed32Extension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalFixed64Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalFloatExtension)); + Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(Unittest.OptionalForeignEnumExtension)); + Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.OptionalImportEnumExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalInt32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalInt64Extension)); Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, - copy.GetExtension(UnitTestProtoFile.OptionalNestedEnumExtension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSfixed32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSfixed64Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSint32Extension)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSint64Extension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalStringExtension)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalStringPieceExtension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalUint32Extension)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalUint64Extension)); + copy.GetExtension(Unittest.OptionalNestedEnumExtension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSfixed32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSfixed64Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSint32Extension)); + Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSint64Extension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalStringExtension)); + Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalStringPieceExtension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalUint32Extension)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalUint64Extension)); - Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.RepeatedBoolExtension, 0)); + Assert.AreEqual(true, copy.GetExtension(Unittest.RepeatedBoolExtension, 0)); Assert.AreEqual(ByteString.CopyFromUtf8("123"), - copy.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 0)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension, 0)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension, 0)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedFloatExtension, 0)); + copy.GetExtension(Unittest.RepeatedBytesExtension, 0)); + Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedCordExtension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedDoubleExtension, 0)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedFixed32Extension, 0)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedFixed64Extension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedFloatExtension, 0)); Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, - copy.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 0)); - Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedInt32Extension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedInt64Extension, 0)); + copy.GetExtension(Unittest.RepeatedForeignEnumExtension, 0)); + Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.RepeatedImportEnumExtension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedInt32Extension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedInt64Extension, 0)); Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, - copy.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSint32Extension, 0)); - Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSint64Extension, 0)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedStringExtension, 0)); - Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 0)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedUint32Extension, 0)); - Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedUint64Extension, 0)); + copy.GetExtension(Unittest.RepeatedNestedEnumExtension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSfixed32Extension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSfixed64Extension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSint32Extension, 0)); + Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSint64Extension, 0)); + Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedStringExtension, 0)); + Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedStringPieceExtension, 0)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedUint32Extension, 0)); + Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedUint64Extension, 0)); } } } \ No newline at end of file diff --git a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs index b04fb399d938..0e8b98075e09 100644 --- a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs @@ -398,24 +398,24 @@ public void ClearExtension() { // ClearExtension() is not actually used in TestUtil, so try it manually. Assert.IsFalse(TestAllExtensions.CreateBuilder() - .SetExtension(UnitTestProtoFile.OptionalInt32Extension, 1) - .ClearExtension(UnitTestProtoFile.OptionalInt32Extension) - .HasExtension(UnitTestProtoFile.OptionalInt32Extension)); + .SetExtension(Unittest.OptionalInt32Extension, 1) + .ClearExtension(Unittest.OptionalInt32Extension) + .HasExtension(Unittest.OptionalInt32Extension)); Assert.AreEqual(0, TestAllExtensions.CreateBuilder() - .AddExtension(UnitTestProtoFile.RepeatedInt32Extension, 1) - .ClearExtension(UnitTestProtoFile.RepeatedInt32Extension) - .GetExtensionCount(UnitTestProtoFile.RepeatedInt32Extension)); + .AddExtension(Unittest.RepeatedInt32Extension, 1) + .ClearExtension(Unittest.RepeatedInt32Extension) + .GetExtensionCount(Unittest.RepeatedInt32Extension)); } [TestMethod] public void ExtensionMergeFrom() { TestAllExtensions original = TestAllExtensions.CreateBuilder() - .SetExtension(UnitTestProtoFile.OptionalInt32Extension, 1).Build(); + .SetExtension(Unittest.OptionalInt32Extension, 1).Build(); TestAllExtensions merged = TestAllExtensions.CreateBuilder().MergeFrom(original).Build(); - Assert.IsTrue((merged.HasExtension(UnitTestProtoFile.OptionalInt32Extension))); - Assert.AreEqual(1, (int) merged.GetExtension(UnitTestProtoFile.OptionalInt32Extension)); + Assert.IsTrue((merged.HasExtension(Unittest.OptionalInt32Extension))); + Assert.AreEqual(1, (int) merged.GetExtension(Unittest.OptionalInt32Extension)); } /* Removed multiple files option for the moment @@ -430,13 +430,13 @@ public void MultipleFilesOption() { .Build(); Assert.AreEqual(message, MessageWithNoOuter.ParseFrom(message.ToByteString())); - Assert.AreEqual(MultiFileProto.Descriptor, MessageWithNoOuter.Descriptor.File); + Assert.AreEqual(MultiFileProto.DescriptorProtoFile, MessageWithNoOuter.DescriptorProtoFile.File); - FieldDescriptor field = MessageWithNoOuter.Descriptor.FindDescriptor("foreign_enum"); - Assert.AreEqual(MultiFileProto.Descriptor.FindTypeByName("EnumWithNoOuter") + FieldDescriptor field = MessageWithNoOuter.DescriptorProtoFile.FindDescriptor("foreign_enum"); + Assert.AreEqual(MultiFileProto.DescriptorProtoFile.FindTypeByName("EnumWithNoOuter") .FindValueByNumber((int)EnumWithNoOuter.BAR), message[field]); - Assert.AreEqual(MultiFileProto.Descriptor, ServiceWithNoOuter.Descriptor.File); + Assert.AreEqual(MultiFileProto.DescriptorProtoFile, ServiceWithNoOuter.DescriptorProtoFile.File); Assert.IsFalse(TestAllExtensions.DefaultInstance.HasExtension(MultiFileProto.ExtensionWithOuter)); }*/ @@ -512,14 +512,14 @@ public void ExtensionConstantValues() { Assert.AreEqual(TestRequired.SingleFieldNumber, 1000); Assert.AreEqual(TestRequired.MultiFieldNumber, 1001); - Assert.AreEqual(UnitTestProtoFile.OptionalInt32ExtensionFieldNumber, 1); - Assert.AreEqual(UnitTestProtoFile.OptionalGroupExtensionFieldNumber, 16); - Assert.AreEqual(UnitTestProtoFile.OptionalNestedMessageExtensionFieldNumber, 18); - Assert.AreEqual(UnitTestProtoFile.OptionalNestedEnumExtensionFieldNumber, 21); - Assert.AreEqual(UnitTestProtoFile.RepeatedInt32ExtensionFieldNumber, 31); - Assert.AreEqual(UnitTestProtoFile.RepeatedGroupExtensionFieldNumber, 46); - Assert.AreEqual(UnitTestProtoFile.RepeatedNestedMessageExtensionFieldNumber, 48); - Assert.AreEqual(UnitTestProtoFile.RepeatedNestedEnumExtensionFieldNumber, 51); + Assert.AreEqual(Unittest.OptionalInt32ExtensionFieldNumber, 1); + Assert.AreEqual(Unittest.OptionalGroupExtensionFieldNumber, 16); + Assert.AreEqual(Unittest.OptionalNestedMessageExtensionFieldNumber, 18); + Assert.AreEqual(Unittest.OptionalNestedEnumExtensionFieldNumber, 21); + Assert.AreEqual(Unittest.RepeatedInt32ExtensionFieldNumber, 31); + Assert.AreEqual(Unittest.RepeatedGroupExtensionFieldNumber, 46); + Assert.AreEqual(Unittest.RepeatedNestedMessageExtensionFieldNumber, 48); + Assert.AreEqual(Unittest.RepeatedNestedEnumExtensionFieldNumber, 51); } [TestMethod] diff --git a/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs b/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs index cea5da589af9..b443ea3a1631 100644 --- a/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs +++ b/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ // We don't really need CLSCompliance, but if the assembly builds with no warnings, // that means the generator is okay. -[assembly: CLSCompliant(true)] \ No newline at end of file +[assembly: CLSCompliant(false)] \ No newline at end of file diff --git a/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj index 267fedc092fe..b11b1ad8e1d2 100644 --- a/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj +++ b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj @@ -82,14 +82,23 @@ - + + + + + + + + + + + + + - - - @@ -104,26 +113,8 @@ - - - - - - - - - - - - - - - - - - @@ -162,6 +153,7 @@ +