using UnitTest.Issues.TestProtos; | |
using NUnit.Framework; | |
namespace Google.ProtocolBuffers | |
{ | |
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); | |
} | |
} | |
} |