using UnitTest.Issues.TestProtos; using NUnit.Framework; namespace Google.Protobuf { public class TestCornerCases { [Test] public void TestRoundTripNegativeEnums() { NegativeEnumMessage msg = new NegativeEnumMessage { Value = NegativeEnum.MinusOne, Values = { NegativeEnum.NEGATIVE_ENUM_ZERO, NegativeEnum.MinusOne, NegativeEnum.FiveBelow }, PackedValues = { NegativeEnum.NEGATIVE_ENUM_ZERO, NegativeEnum.MinusOne, NegativeEnum.FiveBelow } }; Assert.AreEqual(58, msg.CalculateSize()); byte[] bytes = new byte[58]; CodedOutputStream output = CodedOutputStream.CreateInstance(bytes); msg.WriteTo(output); Assert.AreEqual(0, output.SpaceLeft); NegativeEnumMessage copy = NegativeEnumMessage.Parser.ParseFrom(bytes); Assert.AreEqual(msg, copy); } } }