Fix to constructor access for nested types, and first pass at streaming.
This commit is contained in:
parent
f09fed217f
commit
ad6903fe33
20 changed files with 479 additions and 242 deletions
|
@ -21,10 +21,6 @@ namespace Google.ProtocolBuffers {
|
|||
[TestFixture]
|
||||
public class CodedOutputStreamTest {
|
||||
|
||||
private static void AssertEqualBytes(byte[] a, byte[] b) {
|
||||
Assert.AreEqual(ByteString.CopyFrom(a), ByteString.CopyFrom(b));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes the given value using WriteRawVarint32() and WriteRawVarint64() and
|
||||
/// checks that the result matches the given bytes
|
||||
|
@ -171,7 +167,7 @@ namespace Google.ProtocolBuffers {
|
|||
TestAllTypes message = TestUtil.GetAllSet();
|
||||
|
||||
byte[] rawBytes = message.ToByteArray();
|
||||
AssertEqualBytes(TestUtil.GoldenMessage.ToByteArray(), rawBytes);
|
||||
TestUtil.AssertEqualBytes(TestUtil.GoldenMessage.ToByteArray(), rawBytes);
|
||||
|
||||
// Try different block sizes.
|
||||
for (int blockSize = 1; blockSize < 256; blockSize *= 2) {
|
||||
|
@ -180,7 +176,7 @@ namespace Google.ProtocolBuffers {
|
|||
CodedOutputStream.CreateInstance(rawOutput, blockSize);
|
||||
message.WriteTo(output);
|
||||
output.Flush();
|
||||
AssertEqualBytes(rawBytes, rawOutput.ToArray());
|
||||
TestUtil.AssertEqualBytes(rawBytes, rawOutput.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
23
csharp/ProtocolBuffers.Test/MessageStreamIteratorTest.cs
Normal file
23
csharp/ProtocolBuffers.Test/MessageStreamIteratorTest.cs
Normal file
|
@ -0,0 +1,23 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage;
|
||||
|
||||
namespace Google.ProtocolBuffers {
|
||||
[TestFixture]
|
||||
public class MessageStreamIteratorTest {
|
||||
|
||||
[Test]
|
||||
public void ThreeMessagesInMemory() {
|
||||
MemoryStream stream = new MemoryStream(MessageStreamWriterTest.ThreeMessageData);
|
||||
IEnumerable<NestedMessage> iterator = MessageStreamIterator.FromStreamProvider<NestedMessage>(() => stream);
|
||||
List<NestedMessage> messages = new List<NestedMessage>(iterator);
|
||||
|
||||
Assert.AreEqual(3, messages.Count);
|
||||
Assert.AreEqual(5, messages[0].Bb);
|
||||
Assert.AreEqual(1500, messages[1].Bb);
|
||||
Assert.IsFalse(messages[2].HasBb);
|
||||
}
|
||||
}
|
||||
}
|
36
csharp/ProtocolBuffers.Test/MessageStreamWriterTest.cs
Normal file
36
csharp/ProtocolBuffers.Test/MessageStreamWriterTest.cs
Normal file
|
@ -0,0 +1,36 @@
|
|||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage;
|
||||
|
||||
namespace Google.ProtocolBuffers {
|
||||
[TestFixture]
|
||||
public class MessageStreamWriterTest {
|
||||
|
||||
internal static readonly byte[] ThreeMessageData = new byte[] {
|
||||
(1 << 3) | 2, 2, // Field 1, 2 bytes long (first message)
|
||||
(1 << 3) | 0, 5, // Field 1, value 5
|
||||
(1 << 3) | 2, 3, // Field 1, 3 bytes long (second message)
|
||||
(1 << 3) | 0, (1500 & 0x7f) | 0x80, 1500 >> 7, // Field 1, value 1500
|
||||
(1 << 3) | 2, 0, // Field 1, no data (third message)
|
||||
};
|
||||
|
||||
[Test]
|
||||
public void ThreeMessages() {
|
||||
NestedMessage message1 = new NestedMessage.Builder { Bb = 5 }.Build();
|
||||
NestedMessage message2 = new NestedMessage.Builder { Bb = 1500 }.Build();
|
||||
NestedMessage message3 = new NestedMessage.Builder().Build();
|
||||
|
||||
byte[] data;
|
||||
using (MemoryStream stream = new MemoryStream()) {
|
||||
MessageStreamWriter<NestedMessage> writer = new MessageStreamWriter<NestedMessage>(stream);
|
||||
writer.Write(message1);
|
||||
writer.Write(message2);
|
||||
writer.Write(message3);
|
||||
writer.Flush();
|
||||
data = stream.ToArray();
|
||||
}
|
||||
|
||||
TestUtil.AssertEqualBytes(ThreeMessageData, data);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{DD01ED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
|
@ -42,6 +42,8 @@
|
|||
<HintPath>lib\Rhino.Mocks.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AbstractMessageTest.cs" />
|
||||
|
@ -51,6 +53,8 @@
|
|||
<Compile Include="DescriptorsTest.cs" />
|
||||
<Compile Include="DynamicMessageTest.cs" />
|
||||
<Compile Include="GeneratedMessageTest.cs" />
|
||||
<Compile Include="MessageStreamIteratorTest.cs" />
|
||||
<Compile Include="MessageStreamWriterTest.cs" />
|
||||
<Compile Include="MessageTest.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ReflectionTester.cs" />
|
||||
|
|
|
@ -112,7 +112,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter.Types.NestedMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter.Types.NestedMessage result = new global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter.Types.NestedMessage();
|
||||
|
||||
|
@ -252,7 +252,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter result = new global::Google.ProtocolBuffers.TestProtos.MessageWithNoOuter();
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestEmbedOptimizedForSize.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestEmbedOptimizedForSize result = new global::Google.ProtocolBuffers.TestProtos.TestEmbedOptimizedForSize();
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.ImportMessage result = new global::Google.ProtocolBuffers.TestProtos.ImportMessage();
|
||||
|
||||
|
|
|
@ -189,7 +189,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMessageSet result = new global::Google.ProtocolBuffers.TestProtos.TestMessageSet();
|
||||
|
||||
|
@ -373,7 +373,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer result = new global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer();
|
||||
|
||||
|
@ -608,7 +608,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1 result = new global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1();
|
||||
|
||||
|
@ -822,7 +822,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2 result = new global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2();
|
||||
|
||||
|
@ -1071,7 +1071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item result = new global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item();
|
||||
|
||||
|
@ -1290,7 +1290,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.RawMessageSet.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.RawMessageSet result = new global::Google.ProtocolBuffers.TestProtos.RawMessageSet();
|
||||
|
||||
|
|
|
@ -148,7 +148,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize result = new global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize();
|
||||
|
||||
|
|
|
@ -1111,7 +1111,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage result = new global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage();
|
||||
|
||||
|
@ -1318,7 +1318,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup result = new global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup();
|
||||
|
||||
|
@ -1525,7 +1525,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup result = new global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup();
|
||||
|
||||
|
@ -2847,7 +2847,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestAllTypes result = new global::Google.ProtocolBuffers.TestProtos.TestAllTypes();
|
||||
|
||||
|
@ -5420,7 +5420,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.ForeignMessage result = new global::Google.ProtocolBuffers.TestProtos.ForeignMessage();
|
||||
|
||||
|
@ -5615,7 +5615,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestAllExtensions result = new global::Google.ProtocolBuffers.TestProtos.TestAllExtensions();
|
||||
|
||||
|
@ -5796,7 +5796,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension result = new global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension();
|
||||
|
||||
|
@ -6003,7 +6003,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension result = new global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension();
|
||||
|
||||
|
@ -6735,7 +6735,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestRequired result = new global::Google.ProtocolBuffers.TestProtos.TestRequired();
|
||||
|
||||
|
@ -7814,7 +7814,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign result = new global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign();
|
||||
|
||||
|
@ -8127,7 +8127,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestForeignNested.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestForeignNested result = new global::Google.ProtocolBuffers.TestProtos.TestForeignNested();
|
||||
|
||||
|
@ -8339,7 +8339,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage result = new global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage();
|
||||
|
||||
|
@ -8508,7 +8508,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions result = new global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions();
|
||||
|
||||
|
@ -8705,7 +8705,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber result = new global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber();
|
||||
|
||||
|
@ -8954,7 +8954,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage result = new global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage();
|
||||
|
||||
|
@ -9208,7 +9208,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA result = new global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA();
|
||||
|
||||
|
@ -9452,7 +9452,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB result = new global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB();
|
||||
|
||||
|
@ -9730,7 +9730,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo result = new global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo();
|
||||
|
||||
|
@ -9937,7 +9937,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar result = new global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar();
|
||||
|
||||
|
@ -10157,7 +10157,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber result = new global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber();
|
||||
|
||||
|
@ -10503,7 +10503,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage result = new global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage();
|
||||
|
||||
|
@ -10768,7 +10768,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits result = new global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits();
|
||||
|
||||
|
@ -11188,7 +11188,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames result = new global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames();
|
||||
|
||||
|
@ -11873,7 +11873,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings result = new global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings();
|
||||
|
||||
|
@ -12212,7 +12212,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues result = new global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues();
|
||||
|
||||
|
@ -12533,7 +12533,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.FooRequest.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.FooRequest result = new global::Google.ProtocolBuffers.TestProtos.FooRequest();
|
||||
|
||||
|
@ -12698,7 +12698,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.FooResponse.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.FooResponse result = new global::Google.ProtocolBuffers.TestProtos.FooResponse();
|
||||
|
||||
|
@ -12863,7 +12863,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.BarRequest.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.BarRequest result = new global::Google.ProtocolBuffers.TestProtos.BarRequest();
|
||||
|
||||
|
@ -13028,7 +13028,7 @@ namespace Google.ProtocolBuffers.TestProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.TestProtos.BarResponse.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.TestProtos.BarResponse result = new global::Google.ProtocolBuffers.TestProtos.BarResponse();
|
||||
|
||||
|
|
|
@ -755,7 +755,7 @@ namespace Google.ProtocolBuffers {
|
|||
message.SetExtension(UnitTestProtoFile.DefaultCordExtension, "425");
|
||||
}
|
||||
|
||||
public static void ModifyRepeatedFields(TestAllTypes.Builder message) {
|
||||
internal static void ModifyRepeatedFields(TestAllTypes.Builder message) {
|
||||
message.SetRepeatedInt32(1, 501);
|
||||
message.SetRepeatedInt64(1, 502);
|
||||
message.SetRepeatedUint32(1, 503);
|
||||
|
@ -785,7 +785,7 @@ namespace Google.ProtocolBuffers {
|
|||
message.SetRepeatedCord(1, "525");
|
||||
}
|
||||
|
||||
public static void AssertRepeatedFieldsModified(TestAllTypes message) {
|
||||
internal static void AssertRepeatedFieldsModified(TestAllTypes message) {
|
||||
// ModifyRepeatedFields only sets the second repeated element of each
|
||||
// field. In addition to verifying this, we also verify that the first
|
||||
// element and size were *not* modified.
|
||||
|
@ -877,7 +877,7 @@ namespace Google.ProtocolBuffers {
|
|||
/// <summary>
|
||||
/// Helper to assert that sequences are equal.
|
||||
/// </summary>
|
||||
public static void AssertEqual<T>(IEnumerable<T> first, IEnumerable<T> second) {
|
||||
internal static void AssertEqual<T>(IEnumerable<T> first, IEnumerable<T> second) {
|
||||
using (IEnumerator<T> firstEnumerator = first.GetEnumerator()) {
|
||||
foreach (T secondElement in second) {
|
||||
Assert.IsTrue(firstEnumerator.MoveNext(), "First enumerator ran out of elements too early.");
|
||||
|
@ -887,207 +887,211 @@ namespace Google.ProtocolBuffers {
|
|||
}
|
||||
}
|
||||
|
||||
public static void AssertAllExtensionsSet(TestAllExtensions message) {
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalInt32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalInt64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalUint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalUint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFixed32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFixed64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSfixed32Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSfixed64Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFloatExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalDoubleExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalBoolExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalStringExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalBytesExtension ));
|
||||
internal static void AssertEqualBytes(byte[] expected, byte[] actual) {
|
||||
Assert.AreEqual(ByteString.CopyFrom(expected), ByteString.CopyFrom(actual));
|
||||
}
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalGroupExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalNestedMessageExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalForeignMessageExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalImportMessageExtension ));
|
||||
internal static void AssertAllExtensionsSet(TestAllExtensions message) {
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalInt32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalInt64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalUint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalUint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFixed32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFixed64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSfixed32Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalSfixed64Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalFloatExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalDoubleExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalBoolExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalStringExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalBytesExtension ));
|
||||
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalGroupExtension ).HasA);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalNestedMessageExtension ).HasBb);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalForeignMessageExtension).HasC);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalImportMessageExtension ).HasD);
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalGroupExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalNestedMessageExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalForeignMessageExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalImportMessageExtension ));
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalNestedEnumExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalForeignEnumExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalImportEnumExtension ));
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalGroupExtension ).HasA);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalNestedMessageExtension ).HasBb);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalForeignMessageExtension).HasC);
|
||||
Assert.IsTrue(message.GetExtension(UnitTestProtoFile.OptionalImportMessageExtension ).HasD);
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalStringPieceExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalCordExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalNestedEnumExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalForeignEnumExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalImportEnumExtension ));
|
||||
|
||||
Assert.AreEqual(101 , message.GetExtension(UnitTestProtoFile.OptionalInt32Extension ));
|
||||
Assert.AreEqual(102L , message.GetExtension(UnitTestProtoFile.OptionalInt64Extension ));
|
||||
Assert.AreEqual(103U , message.GetExtension(UnitTestProtoFile.OptionalUint32Extension ));
|
||||
Assert.AreEqual(104UL , message.GetExtension(UnitTestProtoFile.OptionalUint64Extension ));
|
||||
Assert.AreEqual(105 , message.GetExtension(UnitTestProtoFile.OptionalSint32Extension ));
|
||||
Assert.AreEqual(106L , message.GetExtension(UnitTestProtoFile.OptionalSint64Extension ));
|
||||
Assert.AreEqual(107U , message.GetExtension(UnitTestProtoFile.OptionalFixed32Extension ));
|
||||
Assert.AreEqual(108UL , message.GetExtension(UnitTestProtoFile.OptionalFixed64Extension ));
|
||||
Assert.AreEqual(109 , message.GetExtension(UnitTestProtoFile.OptionalSfixed32Extension));
|
||||
Assert.AreEqual(110L , message.GetExtension(UnitTestProtoFile.OptionalSfixed64Extension));
|
||||
Assert.AreEqual(111F , message.GetExtension(UnitTestProtoFile.OptionalFloatExtension ));
|
||||
Assert.AreEqual(112D , message.GetExtension(UnitTestProtoFile.OptionalDoubleExtension ));
|
||||
Assert.AreEqual(true , message.GetExtension(UnitTestProtoFile.OptionalBoolExtension ));
|
||||
Assert.AreEqual("115", message.GetExtension(UnitTestProtoFile.OptionalStringExtension ));
|
||||
Assert.AreEqual(ToBytes("116"), message.GetExtension(UnitTestProtoFile.OptionalBytesExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalStringPieceExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.OptionalCordExtension));
|
||||
|
||||
Assert.AreEqual(117, message.GetExtension(UnitTestProtoFile.OptionalGroupExtension ).A);
|
||||
Assert.AreEqual(118, message.GetExtension(UnitTestProtoFile.OptionalNestedMessageExtension ).Bb);
|
||||
Assert.AreEqual(119, message.GetExtension(UnitTestProtoFile.OptionalForeignMessageExtension).C);
|
||||
Assert.AreEqual(120, message.GetExtension(UnitTestProtoFile.OptionalImportMessageExtension ).D);
|
||||
Assert.AreEqual(101 , message.GetExtension(UnitTestProtoFile.OptionalInt32Extension ));
|
||||
Assert.AreEqual(102L , message.GetExtension(UnitTestProtoFile.OptionalInt64Extension ));
|
||||
Assert.AreEqual(103U , message.GetExtension(UnitTestProtoFile.OptionalUint32Extension ));
|
||||
Assert.AreEqual(104UL , message.GetExtension(UnitTestProtoFile.OptionalUint64Extension ));
|
||||
Assert.AreEqual(105 , message.GetExtension(UnitTestProtoFile.OptionalSint32Extension ));
|
||||
Assert.AreEqual(106L , message.GetExtension(UnitTestProtoFile.OptionalSint64Extension ));
|
||||
Assert.AreEqual(107U , message.GetExtension(UnitTestProtoFile.OptionalFixed32Extension ));
|
||||
Assert.AreEqual(108UL , message.GetExtension(UnitTestProtoFile.OptionalFixed64Extension ));
|
||||
Assert.AreEqual(109 , message.GetExtension(UnitTestProtoFile.OptionalSfixed32Extension));
|
||||
Assert.AreEqual(110L , message.GetExtension(UnitTestProtoFile.OptionalSfixed64Extension));
|
||||
Assert.AreEqual(111F , message.GetExtension(UnitTestProtoFile.OptionalFloatExtension ));
|
||||
Assert.AreEqual(112D , message.GetExtension(UnitTestProtoFile.OptionalDoubleExtension ));
|
||||
Assert.AreEqual(true , message.GetExtension(UnitTestProtoFile.OptionalBoolExtension ));
|
||||
Assert.AreEqual("115", message.GetExtension(UnitTestProtoFile.OptionalStringExtension ));
|
||||
Assert.AreEqual(ToBytes("116"), message.GetExtension(UnitTestProtoFile.OptionalBytesExtension));
|
||||
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.GetExtension(UnitTestProtoFile.OptionalNestedEnumExtension));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(UnitTestProtoFile.OptionalForeignEnumExtension));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetExtension(UnitTestProtoFile.OptionalImportEnumExtension));
|
||||
Assert.AreEqual(117, message.GetExtension(UnitTestProtoFile.OptionalGroupExtension ).A);
|
||||
Assert.AreEqual(118, message.GetExtension(UnitTestProtoFile.OptionalNestedMessageExtension ).Bb);
|
||||
Assert.AreEqual(119, message.GetExtension(UnitTestProtoFile.OptionalForeignMessageExtension).C);
|
||||
Assert.AreEqual(120, message.GetExtension(UnitTestProtoFile.OptionalImportMessageExtension ).D);
|
||||
|
||||
Assert.AreEqual("124", message.GetExtension(UnitTestProtoFile.OptionalStringPieceExtension));
|
||||
Assert.AreEqual("125", message.GetExtension(UnitTestProtoFile.OptionalCordExtension));
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.GetExtension(UnitTestProtoFile.OptionalNestedEnumExtension));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(UnitTestProtoFile.OptionalForeignEnumExtension));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetExtension(UnitTestProtoFile.OptionalImportEnumExtension));
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
Assert.AreEqual("124", message.GetExtension(UnitTestProtoFile.OptionalStringPieceExtension));
|
||||
Assert.AreEqual("125", message.GetExtension(UnitTestProtoFile.OptionalCordExtension));
|
||||
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedInt32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedInt64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedUint32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedUint64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSint32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSint64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFixed32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFixed64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSfixed32Extension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSfixed64Extension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFloatExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedDoubleExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedBoolExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedStringExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedBytesExtension ));
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedGroupExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedNestedMessageExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedForeignMessageExtension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedImportMessageExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedNestedEnumExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedForeignEnumExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedImportEnumExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedInt32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedInt64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedUint32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedUint64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSint32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSint64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFixed32Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFixed64Extension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSfixed32Extension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedSfixed64Extension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedFloatExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedDoubleExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedBoolExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedStringExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedBytesExtension ));
|
||||
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedStringPieceExtension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedCordExtension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedGroupExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedNestedMessageExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedForeignMessageExtension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedImportMessageExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedNestedEnumExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedForeignEnumExtension ));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedImportEnumExtension ));
|
||||
|
||||
Assert.AreEqual(201 , message.GetExtension(UnitTestProtoFile.RepeatedInt32Extension , 0));
|
||||
Assert.AreEqual(202L , message.GetExtension(UnitTestProtoFile.RepeatedInt64Extension , 0));
|
||||
Assert.AreEqual(203U , message.GetExtension(UnitTestProtoFile.RepeatedUint32Extension , 0));
|
||||
Assert.AreEqual(204UL , message.GetExtension(UnitTestProtoFile.RepeatedUint64Extension , 0));
|
||||
Assert.AreEqual(205 , message.GetExtension(UnitTestProtoFile.RepeatedSint32Extension , 0));
|
||||
Assert.AreEqual(206L , message.GetExtension(UnitTestProtoFile.RepeatedSint64Extension , 0));
|
||||
Assert.AreEqual(207U , message.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension , 0));
|
||||
Assert.AreEqual(208UL , message.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension , 0));
|
||||
Assert.AreEqual(209 , message.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 0));
|
||||
Assert.AreEqual(210L , message.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 0));
|
||||
Assert.AreEqual(211F , message.GetExtension(UnitTestProtoFile.RepeatedFloatExtension , 0));
|
||||
Assert.AreEqual(212D , message.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension , 0));
|
||||
Assert.AreEqual(true , message.GetExtension(UnitTestProtoFile.RepeatedBoolExtension , 0));
|
||||
Assert.AreEqual("215", message.GetExtension(UnitTestProtoFile.RepeatedStringExtension , 0));
|
||||
Assert.AreEqual(ToBytes("216"), message.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 0));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedStringPieceExtension));
|
||||
Assert.AreEqual(2, message.GetExtensionCount(UnitTestProtoFile.RepeatedCordExtension));
|
||||
|
||||
Assert.AreEqual(217, message.GetExtension(UnitTestProtoFile.RepeatedGroupExtension , 0).A);
|
||||
Assert.AreEqual(218, message.GetExtension(UnitTestProtoFile.RepeatedNestedMessageExtension , 0).Bb);
|
||||
Assert.AreEqual(219, message.GetExtension(UnitTestProtoFile.RepeatedForeignMessageExtension, 0).C);
|
||||
Assert.AreEqual(220, message.GetExtension(UnitTestProtoFile.RepeatedImportMessageExtension , 0).D);
|
||||
Assert.AreEqual(201 , message.GetExtension(UnitTestProtoFile.RepeatedInt32Extension , 0));
|
||||
Assert.AreEqual(202L , message.GetExtension(UnitTestProtoFile.RepeatedInt64Extension , 0));
|
||||
Assert.AreEqual(203U , message.GetExtension(UnitTestProtoFile.RepeatedUint32Extension , 0));
|
||||
Assert.AreEqual(204UL , message.GetExtension(UnitTestProtoFile.RepeatedUint64Extension , 0));
|
||||
Assert.AreEqual(205 , message.GetExtension(UnitTestProtoFile.RepeatedSint32Extension , 0));
|
||||
Assert.AreEqual(206L , message.GetExtension(UnitTestProtoFile.RepeatedSint64Extension , 0));
|
||||
Assert.AreEqual(207U , message.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension , 0));
|
||||
Assert.AreEqual(208UL , message.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension , 0));
|
||||
Assert.AreEqual(209 , message.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 0));
|
||||
Assert.AreEqual(210L , message.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 0));
|
||||
Assert.AreEqual(211F , message.GetExtension(UnitTestProtoFile.RepeatedFloatExtension , 0));
|
||||
Assert.AreEqual(212D , message.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension , 0));
|
||||
Assert.AreEqual(true , message.GetExtension(UnitTestProtoFile.RepeatedBoolExtension , 0));
|
||||
Assert.AreEqual("215", message.GetExtension(UnitTestProtoFile.RepeatedStringExtension , 0));
|
||||
Assert.AreEqual(ToBytes("216"), message.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 0));
|
||||
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, message.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 0));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 0));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAR, message.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 0));
|
||||
Assert.AreEqual(217, message.GetExtension(UnitTestProtoFile.RepeatedGroupExtension , 0).A);
|
||||
Assert.AreEqual(218, message.GetExtension(UnitTestProtoFile.RepeatedNestedMessageExtension , 0).Bb);
|
||||
Assert.AreEqual(219, message.GetExtension(UnitTestProtoFile.RepeatedForeignMessageExtension, 0).C);
|
||||
Assert.AreEqual(220, message.GetExtension(UnitTestProtoFile.RepeatedImportMessageExtension , 0).D);
|
||||
|
||||
Assert.AreEqual("224", message.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 0));
|
||||
Assert.AreEqual("225", message.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 0));
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, message.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 0));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 0));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAR, message.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 0));
|
||||
|
||||
Assert.AreEqual(301 , message.GetExtension(UnitTestProtoFile.RepeatedInt32Extension , 1));
|
||||
Assert.AreEqual(302L , message.GetExtension(UnitTestProtoFile.RepeatedInt64Extension , 1));
|
||||
Assert.AreEqual(303U , message.GetExtension(UnitTestProtoFile.RepeatedUint32Extension , 1));
|
||||
Assert.AreEqual(304UL , message.GetExtension(UnitTestProtoFile.RepeatedUint64Extension , 1));
|
||||
Assert.AreEqual(305 , message.GetExtension(UnitTestProtoFile.RepeatedSint32Extension , 1));
|
||||
Assert.AreEqual(306L , message.GetExtension(UnitTestProtoFile.RepeatedSint64Extension , 1));
|
||||
Assert.AreEqual(307U , message.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension , 1));
|
||||
Assert.AreEqual(308UL , message.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension , 1));
|
||||
Assert.AreEqual(309 , message.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 1));
|
||||
Assert.AreEqual(310L , message.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 1));
|
||||
Assert.AreEqual(311F , message.GetExtension(UnitTestProtoFile.RepeatedFloatExtension , 1));
|
||||
Assert.AreEqual(312D , message.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension , 1));
|
||||
Assert.AreEqual(false, message.GetExtension(UnitTestProtoFile.RepeatedBoolExtension , 1));
|
||||
Assert.AreEqual("315", message.GetExtension(UnitTestProtoFile.RepeatedStringExtension , 1));
|
||||
Assert.AreEqual(ToBytes("316"), message.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 1));
|
||||
Assert.AreEqual("224", message.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 0));
|
||||
Assert.AreEqual("225", message.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 0));
|
||||
|
||||
Assert.AreEqual(317, message.GetExtension(UnitTestProtoFile.RepeatedGroupExtension , 1).A);
|
||||
Assert.AreEqual(318, message.GetExtension(UnitTestProtoFile.RepeatedNestedMessageExtension , 1).Bb);
|
||||
Assert.AreEqual(319, message.GetExtension(UnitTestProtoFile.RepeatedForeignMessageExtension, 1).C);
|
||||
Assert.AreEqual(320, message.GetExtension(UnitTestProtoFile.RepeatedImportMessageExtension , 1).D);
|
||||
Assert.AreEqual(301 , message.GetExtension(UnitTestProtoFile.RepeatedInt32Extension , 1));
|
||||
Assert.AreEqual(302L , message.GetExtension(UnitTestProtoFile.RepeatedInt64Extension , 1));
|
||||
Assert.AreEqual(303U , message.GetExtension(UnitTestProtoFile.RepeatedUint32Extension , 1));
|
||||
Assert.AreEqual(304UL , message.GetExtension(UnitTestProtoFile.RepeatedUint64Extension , 1));
|
||||
Assert.AreEqual(305 , message.GetExtension(UnitTestProtoFile.RepeatedSint32Extension , 1));
|
||||
Assert.AreEqual(306L , message.GetExtension(UnitTestProtoFile.RepeatedSint64Extension , 1));
|
||||
Assert.AreEqual(307U , message.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension , 1));
|
||||
Assert.AreEqual(308UL , message.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension , 1));
|
||||
Assert.AreEqual(309 , message.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 1));
|
||||
Assert.AreEqual(310L , message.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 1));
|
||||
Assert.AreEqual(311F , message.GetExtension(UnitTestProtoFile.RepeatedFloatExtension , 1));
|
||||
Assert.AreEqual(312D , message.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension , 1));
|
||||
Assert.AreEqual(false, message.GetExtension(UnitTestProtoFile.RepeatedBoolExtension , 1));
|
||||
Assert.AreEqual("315", message.GetExtension(UnitTestProtoFile.RepeatedStringExtension , 1));
|
||||
Assert.AreEqual(ToBytes("316"), message.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 1));
|
||||
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 1));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 1));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 1));
|
||||
Assert.AreEqual(317, message.GetExtension(UnitTestProtoFile.RepeatedGroupExtension , 1).A);
|
||||
Assert.AreEqual(318, message.GetExtension(UnitTestProtoFile.RepeatedNestedMessageExtension , 1).Bb);
|
||||
Assert.AreEqual(319, message.GetExtension(UnitTestProtoFile.RepeatedForeignMessageExtension, 1).C);
|
||||
Assert.AreEqual(320, message.GetExtension(UnitTestProtoFile.RepeatedImportMessageExtension , 1).D);
|
||||
|
||||
Assert.AreEqual("324", message.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 1));
|
||||
Assert.AreEqual("325", message.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 1));
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 1));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 1));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 1));
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
Assert.AreEqual("324", message.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 1));
|
||||
Assert.AreEqual("325", message.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 1));
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultInt32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultInt64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultUint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultUint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFixed32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFixed64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSfixed32Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSfixed64Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFloatExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultDoubleExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultBoolExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultStringExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultBytesExtension ));
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultNestedEnumExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultForeignEnumExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultImportEnumExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultInt32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultInt64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultUint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultUint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSint32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSint64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFixed32Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFixed64Extension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSfixed32Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultSfixed64Extension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultFloatExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultDoubleExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultBoolExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultStringExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultBytesExtension ));
|
||||
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultStringPieceExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultCordExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultNestedEnumExtension ));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultForeignEnumExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultImportEnumExtension ));
|
||||
|
||||
Assert.AreEqual(401 , message.GetExtension(UnitTestProtoFile.DefaultInt32Extension ));
|
||||
Assert.AreEqual(402L , message.GetExtension(UnitTestProtoFile.DefaultInt64Extension ));
|
||||
Assert.AreEqual(403U , message.GetExtension(UnitTestProtoFile.DefaultUint32Extension ));
|
||||
Assert.AreEqual(404UL , message.GetExtension(UnitTestProtoFile.DefaultUint64Extension ));
|
||||
Assert.AreEqual(405 , message.GetExtension(UnitTestProtoFile.DefaultSint32Extension ));
|
||||
Assert.AreEqual(406L , message.GetExtension(UnitTestProtoFile.DefaultSint64Extension ));
|
||||
Assert.AreEqual(407U , message.GetExtension(UnitTestProtoFile.DefaultFixed32Extension ));
|
||||
Assert.AreEqual(408UL , message.GetExtension(UnitTestProtoFile.DefaultFixed64Extension ));
|
||||
Assert.AreEqual(409 , message.GetExtension(UnitTestProtoFile.DefaultSfixed32Extension));
|
||||
Assert.AreEqual(410L , message.GetExtension(UnitTestProtoFile.DefaultSfixed64Extension));
|
||||
Assert.AreEqual(411F , message.GetExtension(UnitTestProtoFile.DefaultFloatExtension ));
|
||||
Assert.AreEqual(412D , message.GetExtension(UnitTestProtoFile.DefaultDoubleExtension ));
|
||||
Assert.AreEqual(false, message.GetExtension(UnitTestProtoFile.DefaultBoolExtension ));
|
||||
Assert.AreEqual("415", message.GetExtension(UnitTestProtoFile.DefaultStringExtension ));
|
||||
Assert.AreEqual(ToBytes("416"), message.GetExtension(UnitTestProtoFile.DefaultBytesExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultStringPieceExtension));
|
||||
Assert.IsTrue(message.HasExtension(UnitTestProtoFile.DefaultCordExtension));
|
||||
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.GetExtension(UnitTestProtoFile.DefaultNestedEnumExtension ));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.GetExtension(UnitTestProtoFile.DefaultForeignEnumExtension));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_FOO, message.GetExtension(UnitTestProtoFile.DefaultImportEnumExtension));
|
||||
Assert.AreEqual(401 , message.GetExtension(UnitTestProtoFile.DefaultInt32Extension ));
|
||||
Assert.AreEqual(402L , message.GetExtension(UnitTestProtoFile.DefaultInt64Extension ));
|
||||
Assert.AreEqual(403U , message.GetExtension(UnitTestProtoFile.DefaultUint32Extension ));
|
||||
Assert.AreEqual(404UL , message.GetExtension(UnitTestProtoFile.DefaultUint64Extension ));
|
||||
Assert.AreEqual(405 , message.GetExtension(UnitTestProtoFile.DefaultSint32Extension ));
|
||||
Assert.AreEqual(406L , message.GetExtension(UnitTestProtoFile.DefaultSint64Extension ));
|
||||
Assert.AreEqual(407U , message.GetExtension(UnitTestProtoFile.DefaultFixed32Extension ));
|
||||
Assert.AreEqual(408UL , message.GetExtension(UnitTestProtoFile.DefaultFixed64Extension ));
|
||||
Assert.AreEqual(409 , message.GetExtension(UnitTestProtoFile.DefaultSfixed32Extension));
|
||||
Assert.AreEqual(410L , message.GetExtension(UnitTestProtoFile.DefaultSfixed64Extension));
|
||||
Assert.AreEqual(411F , message.GetExtension(UnitTestProtoFile.DefaultFloatExtension ));
|
||||
Assert.AreEqual(412D , message.GetExtension(UnitTestProtoFile.DefaultDoubleExtension ));
|
||||
Assert.AreEqual(false, message.GetExtension(UnitTestProtoFile.DefaultBoolExtension ));
|
||||
Assert.AreEqual("415", message.GetExtension(UnitTestProtoFile.DefaultStringExtension ));
|
||||
Assert.AreEqual(ToBytes("416"), message.GetExtension(UnitTestProtoFile.DefaultBytesExtension));
|
||||
|
||||
Assert.AreEqual("424", message.GetExtension(UnitTestProtoFile.DefaultStringPieceExtension));
|
||||
Assert.AreEqual("425", message.GetExtension(UnitTestProtoFile.DefaultCordExtension));
|
||||
Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.GetExtension(UnitTestProtoFile.DefaultNestedEnumExtension ));
|
||||
Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.GetExtension(UnitTestProtoFile.DefaultForeignEnumExtension));
|
||||
Assert.AreEqual(ImportEnum.IMPORT_FOO, message.GetExtension(UnitTestProtoFile.DefaultImportEnumExtension));
|
||||
|
||||
Assert.AreEqual("424", message.GetExtension(UnitTestProtoFile.DefaultStringPieceExtension));
|
||||
Assert.AreEqual("425", message.GetExtension(UnitTestProtoFile.DefaultCordExtension));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Modifies the repeated extensions of the given message to contain the values
|
||||
/// expected by AssertRepeatedExtensionsModified.
|
||||
/// </summary>
|
||||
public static void ModifyRepeatedExtensions(TestAllExtensions.Builder message) {
|
||||
internal static void ModifyRepeatedExtensions(TestAllExtensions.Builder message) {
|
||||
message.SetExtension(UnitTestProtoFile.RepeatedInt32Extension, 1, 501);
|
||||
message.SetExtension(UnitTestProtoFile.RepeatedInt64Extension, 1, 502L);
|
||||
message.SetExtension(UnitTestProtoFile.RepeatedUint32Extension, 1, 503U);
|
||||
|
@ -1121,7 +1125,7 @@ namespace Google.ProtocolBuffers {
|
|||
/// Asserts that all repeated extensions are set to the values assigned by
|
||||
/// SetAllExtensions follwed by ModifyRepeatedExtensions.
|
||||
/// </summary>
|
||||
public static void AssertRepeatedExtensionsModified(TestAllExtensions message) {
|
||||
internal static void AssertRepeatedExtensionsModified(TestAllExtensions message) {
|
||||
// ModifyRepeatedFields only sets the second repeated element of each
|
||||
// field. In addition to verifying this, we also verify that the first
|
||||
// element and size were *not* modified.
|
||||
|
@ -1210,7 +1214,7 @@ namespace Google.ProtocolBuffers {
|
|||
Assert.AreEqual("525", message.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 1));
|
||||
}
|
||||
|
||||
public static void AssertExtensionsClear(TestAllExtensions message) {
|
||||
internal static void AssertExtensionsClear(TestAllExtensions message) {
|
||||
// HasBlah() should initially be false for all optional fields.
|
||||
Assert.IsFalse(message.HasExtension(UnitTestProtoFile.OptionalInt32Extension));
|
||||
Assert.IsFalse(message.HasExtension(UnitTestProtoFile.OptionalInt64Extension));
|
||||
|
|
8
csharp/ProtocolBuffers/Delegates.cs
Normal file
8
csharp/ProtocolBuffers/Delegates.cs
Normal file
|
@ -0,0 +1,8 @@
|
|||
using System.IO;
|
||||
namespace Google.ProtocolBuffers {
|
||||
|
||||
/// <summary>
|
||||
/// Delegate to return a stream when asked, used by MessageStreamIterator.
|
||||
/// </summary>
|
||||
public delegate Stream StreamProvider();
|
||||
}
|
|
@ -363,7 +363,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet result = new global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet();
|
||||
|
||||
|
@ -726,7 +726,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto();
|
||||
|
||||
|
@ -1326,7 +1326,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange result = new global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange();
|
||||
|
||||
|
@ -1646,7 +1646,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto();
|
||||
|
||||
|
@ -2337,7 +2337,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto();
|
||||
|
||||
|
@ -2791,7 +2791,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto();
|
||||
|
||||
|
@ -3136,7 +3136,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto();
|
||||
|
||||
|
@ -3450,7 +3450,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto();
|
||||
|
||||
|
@ -3811,7 +3811,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto result = new global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto();
|
||||
|
||||
|
@ -4254,7 +4254,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.FileOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.FileOptions();
|
||||
|
||||
|
@ -4674,7 +4674,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions();
|
||||
|
||||
|
@ -4906,7 +4906,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions();
|
||||
|
||||
|
@ -5128,7 +5128,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions();
|
||||
|
||||
|
@ -5293,7 +5293,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions();
|
||||
|
||||
|
@ -5458,7 +5458,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions();
|
||||
|
||||
|
@ -5623,7 +5623,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
|
|||
}
|
||||
|
||||
// Construct using global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.CreateBuilder()
|
||||
internal Builder() {}
|
||||
public Builder() {}
|
||||
|
||||
global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions result = new global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions();
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Google.ProtocolBuffers.FieldAccess {
|
|||
private readonly Func<IBuilder> createBuilderDelegate;
|
||||
|
||||
internal RepeatedMessageAccessor(string name) : base(name) {
|
||||
MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", new Type[0]);
|
||||
MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", Type.EmptyTypes);
|
||||
if (createBuilderMethod == null) {
|
||||
throw new ArgumentException("No public static CreateBuilder method declared in " + ClrType.Name);
|
||||
}
|
||||
|
|
|
@ -31,8 +31,8 @@ namespace Google.ProtocolBuffers.FieldAccess {
|
|||
/// </summary>
|
||||
private readonly Func<IBuilder> createBuilderDelegate;
|
||||
|
||||
internal SingleMessageAccessor(string name) : base(name) {
|
||||
MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", new Type[0]);
|
||||
internal SingleMessageAccessor(string name) : base(name) {
|
||||
MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", Type.EmptyTypes);
|
||||
if (createBuilderMethod == null) {
|
||||
throw new ArgumentException("No public static CreateBuilder method declared in " + ClrType.Name);
|
||||
}
|
||||
|
|
|
@ -71,5 +71,10 @@ namespace Google.ProtocolBuffers {
|
|||
"Protocol message was too large. May be malicious. " +
|
||||
"Use CodedInputStream.SetSizeLimit() to increase the size limit.");
|
||||
}
|
||||
|
||||
internal static InvalidProtocolBufferException InvalidMessageStreamTag() {
|
||||
return new InvalidProtocolBufferException(
|
||||
"Stream of protocol messages had invalid tag. Expected tag is length-delimited field 1.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
124
csharp/ProtocolBuffers/MessageStreamIterator.cs
Normal file
124
csharp/ProtocolBuffers/MessageStreamIterator.cs
Normal file
|
@ -0,0 +1,124 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Google.ProtocolBuffers {
|
||||
|
||||
/// <summary>
|
||||
/// Helper class to create MessageStreamIterators without explicitly specifying
|
||||
/// the builder type. The concrete builder type is determined by reflection, based
|
||||
/// on the message type. The reflection step looks for a <c>CreateBuilder</c> method
|
||||
/// in the message type which is public and static, and uses the return type of that
|
||||
/// method as the builder type. This will work for all generated messages, whether
|
||||
/// optimised for size or speed. It won't work for dynamic messages.
|
||||
///
|
||||
/// TODO(jonskeet): This also won't work for non-public protos :(
|
||||
/// Pass in delegate to create a builder?
|
||||
/// </summary>
|
||||
public static class MessageStreamIterator {
|
||||
|
||||
public static IEnumerable<TMessage> FromFile<TMessage>(string file)
|
||||
where TMessage : IMessage<TMessage> {
|
||||
return FromStreamProvider<TMessage>(() => File.OpenRead(file));
|
||||
}
|
||||
|
||||
public static IEnumerable<TMessage> FromStreamProvider<TMessage>(StreamProvider streamProvider)
|
||||
where TMessage : IMessage<TMessage> {
|
||||
MethodInfo createBuilderMethod = typeof(TMessage).GetMethod("CreateBuilder", Type.EmptyTypes);
|
||||
if (createBuilderMethod == null) {
|
||||
throw new ArgumentException("Message type " + typeof(TMessage).FullName + " has no CreateBuilder method.");
|
||||
}
|
||||
if (createBuilderMethod.ReturnType == typeof(void)) {
|
||||
throw new ArgumentException("CreateBuilder method in " + typeof(TMessage).FullName + " has void return type");
|
||||
}
|
||||
Type builderType = createBuilderMethod.ReturnType;
|
||||
if (builderType.GetConstructor(Type.EmptyTypes) == null) {
|
||||
throw new ArgumentException("Builder type " + builderType.FullName + " has no public parameterless constructor.");
|
||||
}
|
||||
Type messageInterface = typeof(IMessage<,>).MakeGenericType(typeof(TMessage), builderType);
|
||||
Type builderInterface = typeof(IBuilder<,>).MakeGenericType(typeof(TMessage), builderType);
|
||||
if (Array.IndexOf(typeof (TMessage).GetInterfaces(), messageInterface) == -1) {
|
||||
throw new ArgumentException("Message type " + typeof(TMessage) + " doesn't implement " + messageInterface.FullName);
|
||||
}
|
||||
if (Array.IndexOf(builderType.GetInterfaces(), builderInterface) == -1) {
|
||||
throw new ArgumentException("Builder type " + typeof(TMessage) + " doesn't implement " + builderInterface.FullName);
|
||||
}
|
||||
Type iteratorType = typeof(MessageStreamIterator<,>).MakeGenericType(typeof(TMessage), builderType);
|
||||
MethodInfo factoryMethod = iteratorType.GetMethod("FromStreamProvider", new Type[] { typeof(StreamProvider) });
|
||||
return (IEnumerable<TMessage>) factoryMethod.Invoke(null, new object[] { streamProvider });
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Iterates over data created using a <see cref="MessageStreamWriter{T}" />.
|
||||
/// Unlike MessageStreamWriter, this class is not usually constructed directly with
|
||||
/// a stream; instead it is provided with a way of opening a stream when iteration
|
||||
/// is started. The stream is closed when the iteration is completed or the enumerator
|
||||
/// is disposed. (This occurs naturally when using <c>foreach</c>.)
|
||||
/// This type is generic in both the message type and the builder type; if only the
|
||||
/// iteration is required (i.e. just <see cref="IEnumerable{T}" />) then the static
|
||||
/// generic methods in the nongeneric class are more appropriate.
|
||||
/// </summary>
|
||||
public sealed class MessageStreamIterator<TMessage, TBuilder> : IEnumerable<TMessage>
|
||||
where TMessage : IMessage<TMessage, TBuilder>
|
||||
where TBuilder : IBuilder<TMessage, TBuilder>, new() {
|
||||
|
||||
private readonly StreamProvider streamProvider;
|
||||
private readonly ExtensionRegistry extensionRegistry;
|
||||
private static readonly uint ExpectedTag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
|
||||
|
||||
private MessageStreamIterator(StreamProvider streamProvider, ExtensionRegistry extensionRegistry) {
|
||||
this.streamProvider = streamProvider;
|
||||
this.extensionRegistry = extensionRegistry;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance which opens the specified file when it begins
|
||||
/// iterating. No extension registry is used when reading messages.
|
||||
/// </summary>
|
||||
public static MessageStreamIterator<TMessage, TBuilder> FromFile(string file) {
|
||||
return new MessageStreamIterator<TMessage, TBuilder>(() => File.OpenRead(file), ExtensionRegistry.Empty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance which calls the given delegate when it begins
|
||||
/// iterating. No extension registry is used when reading messages.
|
||||
/// </summary>
|
||||
public static MessageStreamIterator<TMessage, TBuilder> FromStreamProvider(StreamProvider streamProvider) {
|
||||
return new MessageStreamIterator<TMessage, TBuilder>(streamProvider, ExtensionRegistry.Empty);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new instance which uses the same stream provider as this one,
|
||||
/// but the specified extension registry.
|
||||
/// </summary>
|
||||
public MessageStreamIterator<TMessage, TBuilder> WithExtensionRegistry(ExtensionRegistry newRegistry) {
|
||||
return new MessageStreamIterator<TMessage, TBuilder>(streamProvider, newRegistry);
|
||||
}
|
||||
|
||||
public IEnumerator<TMessage> GetEnumerator() {
|
||||
using (Stream stream = streamProvider()) {
|
||||
CodedInputStream input = CodedInputStream.CreateInstance(stream);
|
||||
uint tag;
|
||||
while ((tag = input.ReadTag()) != 0) {
|
||||
if (tag != ExpectedTag) {
|
||||
throw InvalidProtocolBufferException.InvalidMessageStreamTag();
|
||||
}
|
||||
TBuilder builder = new TBuilder();
|
||||
input.ReadMessage(builder, extensionRegistry);
|
||||
yield return builder.Build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Explicit implementation of nongeneric IEnumerable interface.
|
||||
/// </summary>
|
||||
IEnumerator IEnumerable.GetEnumerator() {
|
||||
return GetEnumerator();
|
||||
}
|
||||
}
|
||||
}
|
33
csharp/ProtocolBuffers/MessageStreamWriter.cs
Normal file
33
csharp/ProtocolBuffers/MessageStreamWriter.cs
Normal file
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
|
||||
namespace Google.ProtocolBuffers {
|
||||
/// <summary>
|
||||
/// Writes multiple messages to the same stream. Each message is written
|
||||
/// as if it were an element of a repeated field 1 in a larger protocol buffer.
|
||||
/// This class takes no ownership of the stream it is given; it never closes the
|
||||
/// stream.
|
||||
/// </summary>
|
||||
public sealed class MessageStreamWriter<T> where T : IMessage<T> {
|
||||
|
||||
private readonly CodedOutputStream codedOutput;
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance which writes to the given stream.
|
||||
/// </summary>
|
||||
/// <param name="output">Stream to write messages to.</param>
|
||||
public MessageStreamWriter(Stream output) {
|
||||
codedOutput = CodedOutputStream.CreateInstance(output);
|
||||
}
|
||||
|
||||
public void Write(T message) {
|
||||
codedOutput.WriteMessage(1, message);
|
||||
}
|
||||
|
||||
public void Flush() {
|
||||
codedOutput.Flush();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@
|
|||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.21022</ProductVersion>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
|
@ -41,6 +41,7 @@
|
|||
<Compile Include="AbstractBuilder.cs" />
|
||||
<Compile Include="AbstractMessage.cs" />
|
||||
<Compile Include="ByteString.cs" />
|
||||
<Compile Include="Delegates.cs" />
|
||||
<Compile Include="CodedInputStream.cs" />
|
||||
<Compile Include="CodedOutputStream.cs" />
|
||||
<Compile Include="Collections\Dictionaries.cs" />
|
||||
|
@ -93,6 +94,8 @@
|
|||
<Compile Include="IRpcChannel.cs" />
|
||||
<Compile Include="IRpcController.cs" />
|
||||
<Compile Include="IService.cs" />
|
||||
<Compile Include="MessageStreamIterator.cs" />
|
||||
<Compile Include="MessageStreamWriter.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="RpcUtil.cs" />
|
||||
<Compile Include="TextFormat.cs" />
|
||||
|
|
|
@ -481,7 +481,7 @@ void MessageGenerator::GenerateBuilder(io::Printer* printer) {
|
|||
void MessageGenerator::GenerateCommonBuilderMethods(io::Printer* printer) {
|
||||
printer->Print(
|
||||
"// Construct using $classname$.CreateBuilder()\r\n"
|
||||
"internal Builder() {}\r\n"
|
||||
"$access$ Builder() {}\r\n"
|
||||
"\r\n"
|
||||
"$classname$ result = new $classname$();\r\n"
|
||||
"\r\n"
|
||||
|
@ -506,7 +506,8 @@ void MessageGenerator::GenerateCommonBuilderMethods(io::Printer* printer) {
|
|||
" get { return $classname$.DefaultInstance; }\r\n"
|
||||
"}\r\n"
|
||||
"\r\n",
|
||||
"classname", ClassName(descriptor_));
|
||||
"classname", ClassName(descriptor_),
|
||||
"access", ClassAccessLevel(descriptor_->file()));
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue