123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using NUnit.Framework;
- using Google.ProtocolBuffers.TestProtos;
- namespace Google.ProtocolBuffers {
- [TestFixture]
- public class GeneratedMessageTest {
- ReflectionTester reflectionTester;
- ReflectionTester extensionsReflectionTester;
-
- [SetUp]
- public void SetUp() {
- reflectionTester = ReflectionTester.CreateTestAllTypesInstance();
- extensionsReflectionTester = ReflectionTester.CreateTestAllExtensionsInstance();
- }
-
- [Test]
- public void DefaultInstance() {
- Assert.AreSame(TestAllTypes.DefaultInstance, TestAllTypes.DefaultInstance.DefaultInstanceForType);
- Assert.AreSame(TestAllTypes.DefaultInstance, TestAllTypes.CreateBuilder().DefaultInstanceForType);
- }
- [Test]
- public void Accessors() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- TestUtil.SetAllFields(builder);
- TestAllTypes message = builder.Build();
- TestUtil.AssertAllFieldsSet(message);
- }
-
- [Test]
- public void RepeatedSetters() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- TestUtil.SetAllFields(builder);
- TestUtil.ModifyRepeatedFields(builder);
- TestAllTypes message = builder.Build();
- TestUtil.AssertRepeatedFieldsModified(message);
- }
- [Test]
- public void RepeatedAppend() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- builder.AddRangeRepeatedInt32(new int[]{1, 2, 3, 4});
- builder.AddRangeRepeatedForeignEnum((new ForeignEnum[] { ForeignEnum.FOREIGN_BAZ }));
- ForeignMessage foreignMessage = ForeignMessage.CreateBuilder().SetC(12).Build();
- builder.AddRangeRepeatedForeignMessage(new ForeignMessage[] {foreignMessage});
- TestAllTypes message = builder.Build();
- TestUtil.AssertEqual(message.RepeatedInt32List, new int[]{1, 2, 3, 4});
- TestUtil.AssertEqual(message.RepeatedForeignEnumList, new ForeignEnum[] {ForeignEnum.FOREIGN_BAZ});
- Assert.AreEqual(1, message.RepeatedForeignMessageCount);
- Assert.AreEqual(12, message.GetRepeatedForeignMessage(0).C);
- }
- [Test]
- public void SettingForeignMessageUsingBuilder() {
- TestAllTypes message = TestAllTypes.CreateBuilder()
- // Pass builder for foreign message instance.
- .SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(123))
- .Build();
- TestAllTypes expectedMessage = TestAllTypes.CreateBuilder()
- // Create expected version passing foreign message instance explicitly.
- .SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(123).Build())
- .Build();
- Assert.AreEqual(expectedMessage, message);
- }
- [Test]
- public void SettingRepeatedForeignMessageUsingBuilder() {
- TestAllTypes message = TestAllTypes.CreateBuilder()
- // Pass builder for foreign message instance.
- .AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(456))
- .Build();
- TestAllTypes expectedMessage = TestAllTypes.CreateBuilder()
- // Create expected version passing foreign message instance explicitly.
- .AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(456).Build())
- .Build();
- Assert.AreEqual(expectedMessage, message);
- }
-
- [Test]
- public void Defaults() {
- TestUtil.AssertClear(TestAllTypes.DefaultInstance);
- TestUtil.AssertClear(TestAllTypes.CreateBuilder().Build());
- Assert.AreEqual("\u1234", TestExtremeDefaultValues.DefaultInstance.Utf8String);
- }
- [Test]
- public void ReflectionGetters() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- TestUtil.SetAllFields(builder);
- TestAllTypes message = builder.Build();
- reflectionTester.AssertAllFieldsSetViaReflection(message);
- }
- [Test]
- public void ReflectionSetters() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- reflectionTester.SetAllFieldsViaReflection(builder);
- TestAllTypes message = builder.Build();
- TestUtil.AssertAllFieldsSet(message);
- }
- [Test]
- public void ReflectionRepeatedSetters() {
- TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
- reflectionTester.SetAllFieldsViaReflection(builder);
- reflectionTester.ModifyRepeatedFieldsViaReflection(builder);
- TestAllTypes message = builder.Build();
- TestUtil.AssertRepeatedFieldsModified(message);
- }
- [Test]
- public void ReflectionDefaults() {
- reflectionTester.AssertClearViaReflection(TestAllTypes.DefaultInstance);
- reflectionTester.AssertClearViaReflection(TestAllTypes.CreateBuilder().Build());
- }
- // =================================================================
- // Extensions.
- [Test]
- public void ExtensionAccessors() {
- TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
- TestUtil.SetAllExtensions(builder);
- TestAllExtensions message = builder.Build();
- TestUtil.AssertAllExtensionsSet(message);
- }
- [Test]
- public void ExtensionRepeatedSetters() {
- TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
- TestUtil.SetAllExtensions(builder);
- TestUtil.ModifyRepeatedExtensions(builder);
- TestAllExtensions message = builder.Build();
- TestUtil.AssertRepeatedExtensionsModified(message);
- }
- [Test]
- public void ExtensionDefaults() {
- TestUtil.AssertExtensionsClear(TestAllExtensions.DefaultInstance);
- TestUtil.AssertExtensionsClear(TestAllExtensions.CreateBuilder().Build());
- }
- [Test]
- public void ExtensionReflectionGetters() {
- TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
- TestUtil.SetAllExtensions(builder);
- TestAllExtensions message = builder.Build();
- extensionsReflectionTester.AssertAllFieldsSetViaReflection(message);
- }
- [Test]
- public void ExtensionReflectionSetters() {
- TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
- extensionsReflectionTester.SetAllFieldsViaReflection(builder);
- TestAllExtensions message = builder.Build();
- TestUtil.AssertAllExtensionsSet(message);
- }
- [Test]
- public void ExtensionReflectionRepeatedSetters() {
- TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
- extensionsReflectionTester.SetAllFieldsViaReflection(builder);
- extensionsReflectionTester.ModifyRepeatedFieldsViaReflection(builder);
- TestAllExtensions message = builder.Build();
- TestUtil.AssertRepeatedExtensionsModified(message);
- }
- [Test]
- public void ExtensionReflectionDefaults() {
- extensionsReflectionTester.AssertClearViaReflection(TestAllExtensions.DefaultInstance);
- extensionsReflectionTester.AssertClearViaReflection(TestAllExtensions.CreateBuilder().Build());
- }
- public void testClearExtension() {
- // 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));
- Assert.AreEqual(0,
- TestAllExtensions.CreateBuilder()
- .AddExtension(UnitTestProtoFile.RepeatedInt32Extension, 1)
- .ClearExtension(UnitTestProtoFile.RepeatedInt32Extension)
- .GetExtensionCount(UnitTestProtoFile.RepeatedInt32Extension));
- }
- // =================================================================
- // multiple_files_test
- /* FIXME: Find this proto!
- public void MultipleFilesOption() {
- // We mostly just want to check that things compile.
- MessageWithNoOuter message = MessageWithNoOuter.CreateBuilder()
- .setNested(MessageWithNoOuter.NestedMessage.CreateBuilder().setI(1))
- .addForeign(TestAllTypes.CreateBuilder().setOptionalInt32(1))
- .setNestedEnum(MessageWithNoOuter.NestedEnum.BAZ)
- .setForeignEnum(EnumWithNoOuter.BAR)
- .Build();
- Assert.AreEqual(message, MessageWithNoOuter.parseFrom(message.toByteString()));
- Assert.AreEqual(MultipleFilesTestProto.getDescriptor(),
- MessageWithNoOuter.getDescriptor().getFile());
- Descriptors.FieldDescriptor field =
- MessageWithNoOuter.getDescriptor().findFieldByName("foreign_enum");
- Assert.AreEqual(EnumWithNoOuter.BAR.getValueDescriptor(),
- message.getField(field));
- Assert.AreEqual(MultipleFilesTestProto.getDescriptor(),
- ServiceWithNoOuter.getDescriptor().getFile());
- assertFalse(
- TestAllExtensions.getDefaultInstance().hasExtension(
- MultipleFilesTestProto.extensionWithOuter));
- }
- */
- }
- }
|