| #region Copyright notice and license |
| // Protocol Buffers - Google's data interchange format |
| // Copyright 2008 Google Inc. All rights reserved. |
| // |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file or at |
| // https://developers.google.com/open-source/licenses/bsd |
| #endregion |
| |
| 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.Zero, NegativeEnum.MinusOne, NegativeEnum.FiveBelow }, |
| PackedValues = { NegativeEnum.Zero, NegativeEnum.MinusOne, NegativeEnum.FiveBelow } |
| }; |
| |
| Assert.AreEqual(58, msg.CalculateSize()); |
| |
| byte[] bytes = new byte[58]; |
| CodedOutputStream output = new CodedOutputStream(bytes); |
| |
| msg.WriteTo(output); |
| Assert.AreEqual(0, output.SpaceLeft); |
| |
| NegativeEnumMessage copy = NegativeEnumMessage.Parser.ParseFrom(bytes); |
| Assert.AreEqual(msg, copy); |
| } |
| } |
| } |