From ce66c5f1b99fe36b5b91e8b59cc75ce8a4e9cba5 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Tue, 28 Apr 2015 15:06:59 +0100 Subject: Updated set of unit tests and unit test protos. This commit includes changes to the C#-specific protos, and rebuilt versions of the "stock" protos. The stock protos have been locally updated to have a specific C# namespace, but this is expected to change soon, so hasn't been committed. Four areas are currently not tested: 1) Serialization - we may restore this at some point, possibly optionally. 2) Services - currently nothing is generated for this; will need to see how it interacts with GRPC 3) Fields beginning with _{digit} - see https://github.com/google/protobuf/issues/308 4) Fields with names which conflict with the declaring type in nasty ways - see https://github.com/google/protobuf/issues/309 --- csharp/protos/extest/unittest_extras.proto | 37 - csharp/protos/extest/unittest_extras_full.proto | 13 +- csharp/protos/extest/unittest_extras_lite.proto | 14 +- csharp/protos/extest/unittest_extras_xmltest.proto | 7 +- .../protos/extest/unittest_generic_services.proto | 35 +- csharp/protos/extest/unittest_issues.proto | 36 +- .../ProtocolBuffers.Test/AbstractMessageTest.cs | 8 +- .../Compatibility/CompatibilityTests.cs | 2 +- csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs | 116 +- .../ProtocolBuffers.Test/ExtendableMessageTest.cs | 244 +- .../ProtocolBuffers.Test/GeneratedMessageTest.cs | 42 +- .../ProtocolBuffers.Test.csproj | 34 +- .../src/ProtocolBuffers.Test/ReflectionTester.cs | 6 +- .../src/ProtocolBuffers.Test/SerializableTest.cs | 33 +- csharp/src/ProtocolBuffers.Test/ServiceTest.cs | 262 - .../ProtocolBuffers.Test/TestProtos/GoogleSize.cs | 4569 +++ .../ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs | 6634 ++++ .../TestProtos/UnitTestCSharpOptionsProtoFile.cs | 426 - .../TestProtos/UnitTestCustomOptionsProtoFile.cs | 6411 ---- .../UnitTestEmbedOptimizeForProtoFile.cs | 442 - .../TestProtos/UnitTestEmptyProtoFile.cs | 50 - .../TestProtos/UnitTestExtrasIssuesProtoFile.cs | 3443 -- .../TestProtos/UnitTestExtrasProtoFile.cs | 401 - .../TestProtos/UnitTestGenericServices.cs | 260 - .../TestProtos/UnitTestGoogleSizeProtoFile.cs | 4573 --- .../TestProtos/UnitTestGoogleSpeedProtoFile.cs | 6638 ---- .../TestProtos/UnitTestImportLiteProtoFile.cs | 308 - .../TestProtos/UnitTestImportProtoFile.cs | 346 - .../TestProtos/UnitTestMessageSetProtoFile.cs | 1826 - .../UnitTestNoGenericServicesProtoFile.cs | 368 - .../TestProtos/UnitTestOptimizeForProtoFile.cs | 659 - .../TestProtos/UnitTestProtoFile.cs | 21602 ----------- .../TestProtos/UnitTestRpcInterop.cs | 1467 - .../UnitTestXmlSerializerTestProtoFile.cs | 2292 -- .../ProtocolBuffers.Test/TestProtos/Unittest.cs | 33513 +++++++++++++++++ .../TestProtos/UnittestCustomOptions.cs | 7549 ++++ .../TestProtos/UnittestDropUnknownFields.cs | 791 + .../TestProtos/UnittestEnormousDescriptor.cs | 36189 +++++++++++++++++++ .../TestProtos/UnittestExtrasXmltest.cs | 2277 ++ .../TestProtos/UnittestImport.cs | 347 + .../TestProtos/UnittestImportPublic.cs | 333 + .../TestProtos/UnittestIssues.cs | 2311 ++ .../TestProtos/UnittestMset.cs | 1824 + .../TestProtos/UnittestNoFieldPresence.cs | 4065 +++ .../TestProtos/UnittestOptimizeFor.cs | 719 + .../TestProtos/UnittestPreserveUnknownEnum.cs | 1320 + .../TestProtos/UnittestPreserveUnknownEnum2.cs | 684 + .../TestProtos/UnknownEnumTest.cs | 809 + .../ProtocolBuffers.Test/TestRpcForMimeTypes.cs | 386 - .../src/ProtocolBuffers.Test/TestRpcGenerator.cs | 171 - csharp/src/ProtocolBuffers.Test/TestUtil.cs | 1399 +- .../ProtocolBuffers.Test/TestWriterFormatJson.cs | 46 +- .../ProtocolBuffers.Test/TestWriterFormatXml.cs | 20 +- .../ProtocolBuffers.Test/UnknownFieldSetTest.cs | 4 +- csharp/src/ProtocolBuffers.Test/WireFormatTest.cs | 8 +- .../AbstractBuilderLiteTest.cs | 18 +- .../ExtendableBuilderLiteTest.cs | 132 +- .../ExtendableMessageLiteTest.cs | 378 +- .../ProtocolBuffersLite.Test/InteropLiteTest.cs | 18 +- csharp/src/ProtocolBuffersLite.Test/LiteTest.cs | 20 +- .../MissingFieldAndExtensionTest.cs | 28 +- .../ProtocolBuffersLite.Test.csproj | 15 +- .../ProtocolBuffersLiteMixed.Test.csproj | 17 +- .../SerializableLiteTest.cs | 2 + .../src/ProtocolBuffersLite.Test/TestLiteByApi.cs | 4 +- .../TestProtos/UnitTestExtrasFullProtoFile.cs | 2144 -- .../TestProtos/UnitTestExtrasLiteProtoFile.cs | 4226 --- .../TestProtos/UnitTestImportLiteProtoFile.cs | 308 - .../TestProtos/UnitTestImportProtoFile.cs | 346 - .../UnitTestLiteImportNonLiteProtoFile.cs | 324 - .../TestProtos/UnitTestLiteProtoFile.cs | 8948 ----- .../TestProtos/UnitTestProtoFile.cs | 21602 ----------- .../TestProtos/UnitTestRpcInteropLite.cs | 1395 - .../TestProtos/Unittest.cs | 33513 +++++++++++++++++ .../TestProtos/UnittestExtrasFull.cs | 2141 ++ .../TestProtos/UnittestExtrasLite.cs | 4209 +++ .../TestProtos/UnittestExtrasXmltest.cs | 2277 ++ .../TestProtos/UnittestImport.cs | 347 + .../TestProtos/UnittestImportLite.cs | 309 + .../TestProtos/UnittestImportPublic.cs | 333 + .../TestProtos/UnittestImportPublicLite.cs | 300 + .../TestProtos/UnittestIssues.cs | 3437 ++ .../TestProtos/UnittestLite.cs | 12460 +++++++ .../TestProtos/UnittestLiteImportsNonlite.cs | 325 + 84 files changed, 164903 insertions(+), 93042 deletions(-) delete mode 100644 csharp/protos/extest/unittest_extras.proto delete mode 100644 csharp/src/ProtocolBuffers.Test/ServiceTest.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestGenericServices.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestPreserveUnknownEnum.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnittestPreserveUnknownEnum2.cs create mode 100644 csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestRpcForMimeTypes.cs delete mode 100644 csharp/src/ProtocolBuffers.Test/TestRpcGenerator.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs delete mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnitTestRpcInteropLite.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasXmltest.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestIssues.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs create mode 100644 csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs (limited to 'csharp') diff --git a/csharp/protos/extest/unittest_extras.proto b/csharp/protos/extest/unittest_extras.proto deleted file mode 100644 index 91f10fbd..00000000 --- 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 a334bbf1..1b546053 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 ea1bcd25..0c242d2f 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 ab8088a7..fae36165 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 3fe2e8eb..4e68ff0f 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 cb803791..97249dff 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 02793aeb..54f400c3 100644 --- a/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs @@ -132,8 +132,8 @@ namespace Google.ProtocolBuffers { 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 @@ namespace Google.ProtocolBuffers { 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 @@ namespace Google.ProtocolBuffers 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/Compatibility/CompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs index 20189617..5befe96f 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/DescriptorsTest.cs b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs index ca10c621..e74236fb 100644 --- a/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs +++ b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs @@ -51,7 +51,7 @@ namespace Google.ProtocolBuffers [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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 68f37c3c..4e0bf8e6 100644 --- a/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs @@ -48,7 +48,7 @@ namespace Google.ProtocolBuffers [TestMethod, ExpectedException(typeof(ArgumentException))] public void ExtensionWriterInvalidExtension() { - TestPackedExtensions.CreateBuilder()[UnitTestProtoFile.OptionalForeignMessageExtension.Descriptor] = + TestPackedExtensions.CreateBuilder()[Unittest.OptionalForeignMessageExtension.Descriptor] = ForeignMessage.DefaultInstance; } @@ -56,73 +56,73 @@ namespace Google.ProtocolBuffers 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 @@ namespace Google.ProtocolBuffers 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 b04fb399..0e8b9807 100644 --- a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs +++ b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs @@ -398,24 +398,24 @@ namespace Google.ProtocolBuffers { // 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 @@ namespace Google.ProtocolBuffers .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 @@ namespace Google.ProtocolBuffers { 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/ProtocolBuffers.Test.csproj b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj index 0dcdd1e6..b11b1ad8 100644 --- a/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj +++ b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj @@ -82,9 +82,20 @@ - + + + + + + + + + + + + + - @@ -102,26 +113,8 @@ - - - - - - - - - - - - - - - - - - @@ -160,6 +153,7 @@ +