aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers.Test/TestCornerCases.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2011-09-09 13:39:54 -0500
committerrogerk <devnull@localhost>2011-09-09 13:39:54 -0500
commita105eac521b6a810b9c40db2febba412e316d0b2 (patch)
treeadbc078b2c5c8131a392c8ea54c26c5e2a55b5e4 /src/ProtocolBuffers.Test/TestCornerCases.cs
parent8f0dcf3df1548a1eff0bed54a9b992f55b8f72d5 (diff)
downloadprotobuf-a105eac521b6a810b9c40db2febba412e316d0b2.tar.gz
protobuf-a105eac521b6a810b9c40db2febba412e316d0b2.tar.bz2
protobuf-a105eac521b6a810b9c40db2febba412e316d0b2.zip
Added support for negative enum values and tests
Diffstat (limited to 'src/ProtocolBuffers.Test/TestCornerCases.cs')
-rw-r--r--src/ProtocolBuffers.Test/TestCornerCases.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/ProtocolBuffers.Test/TestCornerCases.cs b/src/ProtocolBuffers.Test/TestCornerCases.cs
new file mode 100644
index 00000000..8a3fe051
--- /dev/null
+++ b/src/ProtocolBuffers.Test/TestCornerCases.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+using UnitTest.Issues.TestProtos;
+
+namespace Google.ProtocolBuffers
+{
+ [TestFixture]
+ public class TestCornerCases
+ {
+ [Test]
+ public void TestRoundTripNegativeEnums()
+ {
+ NegativeEnumMessage msg = NegativeEnumMessage.CreateBuilder()
+ .SetValue(NegativeEnum.MinusOne) //11
+ .AddValues(NegativeEnum.Zero) //2
+ .AddValues(NegativeEnum.MinusOne) //11
+ .AddValues(NegativeEnum.FiveBelow) //11
+ //2
+ .AddPackedValues(NegativeEnum.Zero) //1
+ .AddPackedValues(NegativeEnum.MinusOne) //10
+ .AddPackedValues(NegativeEnum.FiveBelow) //10
+ .Build();
+
+ Assert.AreEqual(58, msg.SerializedSize);
+
+ byte[] bytes = new byte[58];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+
+ msg.WriteTo(output);
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ NegativeEnumMessage copy = NegativeEnumMessage.ParseFrom(bytes);
+ Assert.AreEqual(msg, copy);
+ }
+ }
+}