aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test/WireFormatTest.cs')
-rw-r--r--csharp/src/ProtocolBuffers.Test/WireFormatTest.cs255
1 files changed, 2 insertions, 253 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs b/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
index e728a176..dc112565 100644
--- a/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
+++ b/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
@@ -34,13 +34,11 @@
#endregion
-using System.IO;
using System.Reflection;
-using Google.ProtocolBuffers.Descriptors;
-using Google.ProtocolBuffers.TestProtos;
+using Google.Protobuf.Descriptors;
using NUnit.Framework;
-namespace Google.ProtocolBuffers
+namespace Google.Protobuf
{
public class WireFormatTest
{
@@ -58,254 +56,5 @@ namespace Google.ProtocolBuffers
Assert.AreEqual(mapping.WireType, WireFormat.GetWireType(fieldType));
}
}
-
- [Test]
- public void Serialization()
- {
- TestAllTypes message = TestUtil.GetAllSet();
-
- ByteString rawBytes = message.ToByteString();
- Assert.AreEqual(rawBytes.Length, message.SerializedSize);
-
- TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
-
- TestUtil.AssertAllFieldsSet(message2);
- }
-
- [Test]
- public void SerializationPacked()
- {
- TestPackedTypes message = TestUtil.GetPackedSet();
- ByteString rawBytes = message.ToByteString();
- Assert.AreEqual(rawBytes.Length, message.SerializedSize);
- TestPackedTypes message2 = TestPackedTypes.ParseFrom(rawBytes);
- TestUtil.AssertPackedFieldsSet(message2);
- }
-
- [Test]
- public void SerializeExtensions()
- {
- // TestAllTypes and TestAllExtensions should have compatible wire formats,
- // so if we serialize a TestAllExtensions then parse it as TestAllTypes
- // it should work.
- TestAllExtensions message = TestUtil.GetAllExtensionsSet();
- ByteString rawBytes = message.ToByteString();
- Assert.AreEqual(rawBytes.Length, message.SerializedSize);
-
- TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
-
- TestUtil.AssertAllFieldsSet(message2);
- }
-
- [Test]
- public void SerializePackedExtensions()
- {
- // TestPackedTypes and TestPackedExtensions should have compatible wire
- // formats; check that they serialize to the same string.
- TestPackedExtensions message = TestUtil.GetPackedExtensionsSet();
- ByteString rawBytes = message.ToByteString();
-
- TestPackedTypes message2 = TestUtil.GetPackedSet();
- ByteString rawBytes2 = message2.ToByteString();
-
- Assert.AreEqual(rawBytes, rawBytes2);
- }
-
- [Test]
- public void SerializeDelimited()
- {
- MemoryStream stream = new MemoryStream();
- TestUtil.GetAllSet().WriteDelimitedTo(stream);
- stream.WriteByte(12);
- TestUtil.GetPackedSet().WriteDelimitedTo(stream);
- stream.WriteByte(34);
-
- stream.Position = 0;
-
- TestUtil.AssertAllFieldsSet(TestAllTypes.ParseDelimitedFrom(stream));
- Assert.AreEqual(12, stream.ReadByte());
- TestUtil.AssertPackedFieldsSet(TestPackedTypes.ParseDelimitedFrom(stream));
- Assert.AreEqual(34, stream.ReadByte());
- Assert.AreEqual(-1, stream.ReadByte());
- }
-
- [Test]
- public void ParseExtensions()
- {
- // TestAllTypes and TestAllExtensions should have compatible wire formats,
- // so if we serealize a TestAllTypes then parse it as TestAllExtensions
- // it should work.
-
- TestAllTypes message = TestUtil.GetAllSet();
- ByteString rawBytes = message.ToByteString();
-
- ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
- TestUtil.RegisterAllExtensions(registry);
- registry = registry.AsReadOnly();
-
- TestAllExtensions message2 = TestAllExtensions.ParseFrom(rawBytes, registry);
-
- TestUtil.AssertAllExtensionsSet(message2);
- }
-
- [Test]
- public void ParsePackedExtensions()
- {
- // Ensure that packed extensions can be properly parsed.
- TestPackedExtensions message = TestUtil.GetPackedExtensionsSet();
- ByteString rawBytes = message.ToByteString();
-
- ExtensionRegistry registry = TestUtil.CreateExtensionRegistry();
-
- TestPackedExtensions message2 = TestPackedExtensions.ParseFrom(rawBytes, registry);
- TestUtil.AssertPackedExtensionsSet(message2);
- }
-
- [Test]
- public void ExtensionsSerializedSize()
- {
- Assert.IsTrue(TestUtil.GetAllSet().SerializedSize < TestUtil.GetAllExtensionsSet().SerializedSize);
- }
-
- private static void AssertFieldsInOrder(ByteString data)
- {
- CodedInputStream input = data.CreateCodedInput();
- uint previousTag = 0;
-
- uint tag;
- string name;
- while (input.ReadTag(out tag, out name))
- {
- Assert.IsTrue(tag > previousTag);
- previousTag = tag;
- input.SkipField();
- }
- }
-
- [Test]
- public void InterleavedFieldsAndExtensions()
- {
- // Tests that fields are written in order even when extension ranges
- // are interleaved with field numbers.
- ByteString data =
- TestFieldOrderings.CreateBuilder()
- .SetMyInt(1)
- .SetMyString("foo")
- .SetMyFloat(1.0F)
- .SetExtension(Unittest.MyExtensionInt, 23)
- .SetExtension(Unittest.MyExtensionString, "bar")
- .Build().ToByteString();
- AssertFieldsInOrder(data);
-
- MessageDescriptor descriptor = TestFieldOrderings.Descriptor;
- ByteString dynamic_data =
- DynamicMessage.CreateBuilder(TestFieldOrderings.Descriptor)
- .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_int"), 1L)
- .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_string"), "foo")
- .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_float"), 1.0F)
- .SetField(Unittest.MyExtensionInt.Descriptor, 23)
- .SetField(Unittest.MyExtensionString.Descriptor, "bar")
- .WeakBuild().ToByteString();
- AssertFieldsInOrder(dynamic_data);
- }
-
- private const int UnknownTypeId = 1550055;
- private static readonly int TypeId1 = TestMessageSetExtension1.Descriptor.Extensions[0].FieldNumber;
- private static readonly int TypeId2 = TestMessageSetExtension2.Descriptor.Extensions[0].FieldNumber;
-
- [Test]
- public void SerializeMessageSet()
- {
- // Set up a TestMessageSet with two known messages and an unknown one.
- TestMessageSet messageSet =
- TestMessageSet.CreateBuilder()
- .SetExtension(
- TestMessageSetExtension1.MessageSetExtension,
- TestMessageSetExtension1.CreateBuilder().SetI(123).Build())
- .SetExtension(
- TestMessageSetExtension2.MessageSetExtension,
- TestMessageSetExtension2.CreateBuilder().SetStr("foo").Build())
- .SetUnknownFields(
- UnknownFieldSet.CreateBuilder()
- .AddField(UnknownTypeId,
- UnknownField.CreateBuilder()
- .AddLengthDelimited(ByteString.CopyFromUtf8("bar"))
- .Build())
- .Build())
- .Build();
-
- ByteString data = messageSet.ToByteString();
-
- // Parse back using RawMessageSet and check the contents.
- RawMessageSet raw = RawMessageSet.ParseFrom(data);
-
- Assert.AreEqual(0, raw.UnknownFields.FieldDictionary.Count);
-
- Assert.AreEqual(3, raw.ItemCount);
- Assert.AreEqual(TypeId1, raw.ItemList[0].TypeId);
- Assert.AreEqual(TypeId2, raw.ItemList[1].TypeId);
- Assert.AreEqual(UnknownTypeId, raw.ItemList[2].TypeId);
-
- TestMessageSetExtension1 message1 = TestMessageSetExtension1.ParseFrom(raw.GetItem(0).Message.ToByteArray());
- Assert.AreEqual(123, message1.I);
-
- TestMessageSetExtension2 message2 = TestMessageSetExtension2.ParseFrom(raw.GetItem(1).Message.ToByteArray());
- Assert.AreEqual("foo", message2.Str);
-
- Assert.AreEqual("bar", raw.GetItem(2).Message.ToStringUtf8());
- }
-
- [Test]
- public void ParseMessageSet()
- {
- ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance();
- extensionRegistry.Add(TestMessageSetExtension1.MessageSetExtension);
- extensionRegistry.Add(TestMessageSetExtension2.MessageSetExtension);
-
- // Set up a RawMessageSet with two known messages and an unknown one.
- RawMessageSet raw =
- RawMessageSet.CreateBuilder()
- .AddItem(
- RawMessageSet.Types.Item.CreateBuilder()
- .SetTypeId(TypeId1)
- .SetMessage(
- TestMessageSetExtension1.CreateBuilder()
- .SetI(123)
- .Build().ToByteString())
- .Build())
- .AddItem(
- RawMessageSet.Types.Item.CreateBuilder()
- .SetTypeId(TypeId2)
- .SetMessage(
- TestMessageSetExtension2.CreateBuilder()
- .SetStr("foo")
- .Build().ToByteString())
- .Build())
- .AddItem(
- RawMessageSet.Types.Item.CreateBuilder()
- .SetTypeId(UnknownTypeId)
- .SetMessage(ByteString.CopyFromUtf8("bar"))
- .Build())
- .Build();
-
- ByteString data = raw.ToByteString();
-
- // Parse as a TestMessageSet and check the contents.
- TestMessageSet messageSet =
- TestMessageSet.ParseFrom(data, extensionRegistry);
-
- Assert.AreEqual(123, messageSet.GetExtension(TestMessageSetExtension1.MessageSetExtension).I);
- Assert.AreEqual("foo", messageSet.GetExtension(TestMessageSetExtension2.MessageSetExtension).Str);
-
- // Check for unknown field with type LENGTH_DELIMITED,
- // number UNKNOWN_TYPE_ID, and contents "bar".
- UnknownFieldSet unknownFields = messageSet.UnknownFields;
- Assert.AreEqual(1, unknownFields.FieldDictionary.Count);
- Assert.IsTrue(unknownFields.HasField(UnknownTypeId));
-
- UnknownField field = unknownFields[UnknownTypeId];
- Assert.AreEqual(1, field.LengthDelimitedList.Count);
- Assert.AreEqual("bar", field.LengthDelimitedList[0].ToStringUtf8());
- }
}
} \ No newline at end of file