aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers.Test
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2015-06-11 21:15:36 +0100
committerJon Skeet <skeet@pobox.com>2015-06-11 21:15:36 +0100
commit39aaf21d5194fdc07c296847def8e7795279e041 (patch)
tree174c362717574e13047c4d590b5f9609405aed84 /csharp/src/ProtocolBuffers.Test
parentce0e348ded9cb7e180588476ebb5a8f3e0460f4e (diff)
downloadprotobuf-39aaf21d5194fdc07c296847def8e7795279e041.tar.gz
protobuf-39aaf21d5194fdc07c296847def8e7795279e041.tar.bz2
protobuf-39aaf21d5194fdc07c296847def8e7795279e041.zip
Reimplement enums as int values, and get rid of EnumHelper.
This makes repeated fields really awkward at the moment - but when we reimplement RepeatedField<T> to be backed by an array, we can cast the array directly...
Diffstat (limited to 'csharp/src/ProtocolBuffers.Test')
-rw-r--r--csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs6
-rw-r--r--csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs10
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportProto3.cs2
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs28
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestProto3.cs65
5 files changed, 59 insertions, 52 deletions
diff --git a/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs b/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
index 57650049..aa2da330 100644
--- a/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
+++ b/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
@@ -466,18 +466,18 @@ namespace Google.Protobuf
}
}
- enum TestNegEnum : long { None = 0, Value = -2 }
+ enum TestNegEnum { None = 0, Value = -2 }
[Test]
public void TestNegativeEnum()
{
byte[] bytes = new byte[10] { 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01 };
CodedInputStream input = CodedInputStream.CreateInstance(bytes);
- TestNegEnum val = TestNegEnum.None;
+ int val = 0;
Assert.IsTrue(input.ReadEnum(ref val));
Assert.IsTrue(input.IsAtEnd);
- Assert.AreEqual(TestNegEnum.Value, val);
+ Assert.AreEqual((int) TestNegEnum.Value, val);
}
[Test]
diff --git a/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs b/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs
index df80b3af..fcbb7f8d 100644
--- a/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs
+++ b/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs
@@ -296,27 +296,27 @@ namespace Google.Protobuf
public void TestNegativeEnumNoTag()
{
Assert.AreEqual(10, CodedOutputStream.ComputeInt32SizeNoTag(-2));
- Assert.AreEqual(10, CodedOutputStream.ComputeEnumSizeNoTag(TestNegEnum.Value));
+ Assert.AreEqual(10, CodedOutputStream.ComputeEnumSizeNoTag((int) TestNegEnum.Value));
byte[] bytes = new byte[10];
CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
- output.WriteEnumNoTag(TestNegEnum.Value);
+ output.WriteEnumNoTag((int) TestNegEnum.Value);
Assert.AreEqual(0, output.SpaceLeft);
Assert.AreEqual("FE-FF-FF-FF-FF-FF-FF-FF-FF-01", BitConverter.ToString(bytes));
}
- enum TestNegEnum : long { None = 0, Value = -2 }
+ enum TestNegEnum { None = 0, Value = -2 }
[Test]
public void TestNegativeEnumWithTag()
{
Assert.AreEqual(11, CodedOutputStream.ComputeInt32Size(8, -2));
- Assert.AreEqual(11, CodedOutputStream.ComputeEnumSize(8, TestNegEnum.Value));
+ Assert.AreEqual(11, CodedOutputStream.ComputeEnumSize(8, (int) TestNegEnum.Value));
byte[] bytes = new byte[11];
CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
- output.WriteEnum(8, "", TestNegEnum.Value);
+ output.WriteEnum(8, "", (int) TestNegEnum.Value);
Assert.AreEqual(0, output.SpaceLeft);
//fyi, 0x40 == 0x08 << 3 + 0, field num + wire format shift
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportProto3.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportProto3.cs
index 1eb87f05..4b62794a 100644
--- a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportProto3.cs
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportProto3.cs
@@ -49,7 +49,7 @@ namespace Google.Protobuf.TestProtos {
}
#region Enums
- public enum ImportEnum : long {
+ public enum ImportEnum {
IMPORT_ENUM_UNSPECIFIED = 0,
IMPORT_FOO = 7,
IMPORT_BAR = 8,
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs
index fc696cf0..14ca78a4 100644
--- a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs
@@ -75,13 +75,13 @@ namespace UnitTest.Issues.TestProtos {
}
#region Enums
- public enum NegativeEnum : long {
+ public enum NegativeEnum {
NEGATIVE_ENUM_ZERO = 0,
FiveBelow = -5,
MinusOne = -1,
}
- public enum DeprecatedEnum : long {
+ public enum DeprecatedEnum {
DEPRECATED_ZERO = 0,
one = 1,
}
@@ -156,7 +156,7 @@ namespace UnitTest.Issues.TestProtos {
public void WriteTo(pb::ICodedOutputStream output) {
string[] fieldNames = _fieldNames;
if (Value != global::UnitTest.Issues.TestProtos.NegativeEnum.NEGATIVE_ENUM_ZERO) {
- output.WriteEnum(1, fieldNames[1], Value);
+ output.WriteEnum(1, fieldNames[1], (int) Value);
}
output.WriteEnumArray(2, fieldNames[2], values_);
output.WritePackedEnumArray(3, fieldNames[0], packedValues_);
@@ -165,13 +165,13 @@ namespace UnitTest.Issues.TestProtos {
public int CalculateSize() {
int size = 0;
if (Value != global::UnitTest.Issues.TestProtos.NegativeEnum.NEGATIVE_ENUM_ZERO) {
- size += pb::CodedOutputStream.ComputeEnumSize(1, Value);
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Value);
}
{
int dataSize = 0;
if (values_.Count > 0) {
foreach (global::UnitTest.Issues.TestProtos.NegativeEnum element in values_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 1 * values_.Count;
@@ -181,7 +181,7 @@ namespace UnitTest.Issues.TestProtos {
int dataSize = 0;
if (packedValues_.Count > 0) {
foreach (global::UnitTest.Issues.TestProtos.NegativeEnum element in packedValues_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 1;
@@ -220,8 +220,9 @@ namespace UnitTest.Issues.TestProtos {
}
break;
case 8: {
- input.ReadEnum(ref value_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ value_ = (global::UnitTest.Issues.TestProtos.NegativeEnum) tmp;break;
}
case 18:
case 16: {
@@ -422,7 +423,7 @@ namespace UnitTest.Issues.TestProtos {
}
output.WriteMessageArray(4, fieldNames[2], messageArray_);
if (EnumValue != global::UnitTest.Issues.TestProtos.DeprecatedEnum.DEPRECATED_ZERO) {
- output.WriteEnum(5, fieldNames[1], EnumValue);
+ output.WriteEnum(5, fieldNames[1], (int) EnumValue);
}
output.WritePackedEnumArray(6, fieldNames[0], enumArray_);
}
@@ -449,13 +450,13 @@ namespace UnitTest.Issues.TestProtos {
size += pb::CodedOutputStream.ComputeMessageSize(4, element);
}
if (EnumValue != global::UnitTest.Issues.TestProtos.DeprecatedEnum.DEPRECATED_ZERO) {
- size += pb::CodedOutputStream.ComputeEnumSize(5, EnumValue);
+ size += pb::CodedOutputStream.ComputeEnumSize(5, (int) EnumValue);
}
{
int dataSize = 0;
if (enumArray_.Count > 0) {
foreach (global::UnitTest.Issues.TestProtos.DeprecatedEnum element in enumArray_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 1;
@@ -524,8 +525,9 @@ namespace UnitTest.Issues.TestProtos {
break;
}
case 40: {
- input.ReadEnum(ref enumValue_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ enumValue_ = (global::UnitTest.Issues.TestProtos.DeprecatedEnum) tmp;break;
}
case 50:
case 48: {
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestProto3.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestProto3.cs
index e231bb95..3e5bb8b6 100644
--- a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestProto3.cs
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestProto3.cs
@@ -372,14 +372,14 @@ namespace Google.Protobuf.TestProtos {
}
#region Enums
- public enum ForeignEnum : long {
+ public enum ForeignEnum {
FOREIGN_UNSPECIFIED = 0,
FOREIGN_FOO = 4,
FOREIGN_BAR = 5,
FOREIGN_BAZ = 6,
}
- public enum TestEnumWithDupValue : long {
+ public enum TestEnumWithDupValue {
TEST_ENUM_WITH_DUP_VALUE_UNSPECIFIED = 0,
FOO1 = 1,
BAR1 = 2,
@@ -388,7 +388,7 @@ namespace Google.Protobuf.TestProtos {
BAR2 = 2,
}
- public enum TestSparseEnum : long {
+ public enum TestSparseEnum {
TEST_SPARSE_ENUM_UNSPECIFIED = 0,
SPARSE_A = 123,
SPARSE_B = 62374,
@@ -945,13 +945,13 @@ namespace Google.Protobuf.TestProtos {
output.WriteMessage(20, fieldNames[35], SingleImportMessage);
}
if (SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {
- output.WriteEnum(21, fieldNames[38], SingleNestedEnum);
+ output.WriteEnum(21, fieldNames[38], (int) SingleNestedEnum);
}
if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
- output.WriteEnum(22, fieldNames[32], SingleForeignEnum);
+ output.WriteEnum(22, fieldNames[32], (int) SingleForeignEnum);
}
if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {
- output.WriteEnum(23, fieldNames[34], SingleImportEnum);
+ output.WriteEnum(23, fieldNames[34], (int) SingleImportEnum);
}
if (singlePublicImportMessage_ != null) {
output.WriteMessage(26, fieldNames[40], SinglePublicImportMessage);
@@ -1049,13 +1049,13 @@ namespace Google.Protobuf.TestProtos {
size += pb::CodedOutputStream.ComputeMessageSize(20, SingleImportMessage);
}
if (SingleNestedEnum != global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum.NESTED_ENUM_UNSPECIFIED) {
- size += pb::CodedOutputStream.ComputeEnumSize(21, SingleNestedEnum);
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) SingleNestedEnum);
}
if (SingleForeignEnum != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
- size += pb::CodedOutputStream.ComputeEnumSize(22, SingleForeignEnum);
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) SingleForeignEnum);
}
if (SingleImportEnum != global::Google.Protobuf.TestProtos.ImportEnum.IMPORT_ENUM_UNSPECIFIED) {
- size += pb::CodedOutputStream.ComputeEnumSize(23, SingleImportEnum);
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) SingleImportEnum);
}
if (singlePublicImportMessage_ != null) {
size += pb::CodedOutputStream.ComputeMessageSize(26, SinglePublicImportMessage);
@@ -1205,7 +1205,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (repeatedNestedEnum_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 2;
@@ -1216,7 +1216,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (repeatedForeignEnum_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 2;
@@ -1227,7 +1227,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (repeatedImportEnum_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.ImportEnum element in repeatedImportEnum_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 2;
@@ -1472,16 +1472,19 @@ namespace Google.Protobuf.TestProtos {
break;
}
case 168: {
- input.ReadEnum(ref singleNestedEnum_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ singleNestedEnum_ = (global::Google.Protobuf.TestProtos.TestAllTypes.Types.NestedEnum) tmp;break;
}
case 176: {
- input.ReadEnum(ref singleForeignEnum_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ singleForeignEnum_ = (global::Google.Protobuf.TestProtos.ForeignEnum) tmp;break;
}
case 184: {
- input.ReadEnum(ref singleImportEnum_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ singleImportEnum_ = (global::Google.Protobuf.TestProtos.ImportEnum) tmp;break;
}
case 210: {
if (singlePublicImportMessage_ == null) {
@@ -1634,7 +1637,7 @@ namespace Google.Protobuf.TestProtos {
#region Nested types
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static partial class Types {
- public enum NestedEnum : long {
+ public enum NestedEnum {
NESTED_ENUM_UNSPECIFIED = 0,
FOO = 1,
BAR = 2,
@@ -2865,7 +2868,7 @@ namespace Google.Protobuf.TestProtos {
output.WriteString(2, fieldNames[7], StringField);
}
if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
- output.WriteEnum(3, fieldNames[0], EnumField);
+ output.WriteEnum(3, fieldNames[0], (int) EnumField);
}
if (messageField_ != null) {
output.WriteMessage(4, fieldNames[1], MessageField);
@@ -2885,7 +2888,7 @@ namespace Google.Protobuf.TestProtos {
size += pb::CodedOutputStream.ComputeStringSize(2, StringField);
}
if (EnumField != global::Google.Protobuf.TestProtos.ForeignEnum.FOREIGN_UNSPECIFIED) {
- size += pb::CodedOutputStream.ComputeEnumSize(3, EnumField);
+ size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);
}
if (messageField_ != null) {
size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);
@@ -2912,7 +2915,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (repeatedEnumField_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in repeatedEnumField_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 1;
@@ -2976,8 +2979,9 @@ namespace Google.Protobuf.TestProtos {
break;
}
case 24: {
- input.ReadEnum(ref enumField_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ enumField_ = (global::Google.Protobuf.TestProtos.ForeignEnum) tmp;break;
}
case 34: {
if (messageField_ == null) {
@@ -3361,14 +3365,14 @@ namespace Google.Protobuf.TestProtos {
public void WriteTo(pb::ICodedOutputStream output) {
string[] fieldNames = _fieldNames;
if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {
- output.WriteEnum(1, fieldNames[0], SparseEnum);
+ output.WriteEnum(1, fieldNames[0], (int) SparseEnum);
}
}
public int CalculateSize() {
int size = 0;
if (SparseEnum != global::Google.Protobuf.TestProtos.TestSparseEnum.TEST_SPARSE_ENUM_UNSPECIFIED) {
- size += pb::CodedOutputStream.ComputeEnumSize(1, SparseEnum);
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) SparseEnum);
}
return size;
}
@@ -3400,8 +3404,9 @@ namespace Google.Protobuf.TestProtos {
}
break;
case 8: {
- input.ReadEnum(ref sparseEnum_);
- break;
+ int tmp = 0;
+ input.ReadEnum(ref tmp);
+ sparseEnum_ = (global::Google.Protobuf.TestProtos.TestSparseEnum) tmp;break;
}
}
}
@@ -4769,7 +4774,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (packedEnum_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in packedEnum_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 2;
@@ -5156,7 +5161,7 @@ namespace Google.Protobuf.TestProtos {
int dataSize = 0;
if (unpackedEnum_.Count > 0) {
foreach (global::Google.Protobuf.TestProtos.ForeignEnum element in unpackedEnum_) {
- dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag(element);
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
}
size += dataSize;
size += 2 * unpackedEnum_.Count;