blob: 05ad064eff5211bee6c03973ef14c8db722f6b7f [file] [log] [blame]
csharptestd965c662011-05-20 13:57:07 -05001#region Copyright notice and license
2// Protocol Buffers - Google's data interchange format
3// Copyright 2008 Google Inc. All rights reserved.
4// http://github.com/jskeet/dotnet-protobufs/
5// Original C++/Java/Python code:
6// http://code.google.com/p/protobuf/
7//
8// Redistribution and use in source and binary forms, with or without
9// modification, are permitted provided that the following conditions are
10// met:
11//
12// * Redistributions of source code must retain the above copyright
13// notice, this list of conditions and the following disclaimer.
14// * Redistributions in binary form must reproduce the above
15// copyright notice, this list of conditions and the following disclaimer
16// in the documentation and/or other materials provided with the
17// distribution.
18// * Neither the name of Google Inc. nor the names of its
19// contributors may be used to endorse or promote products derived from
20// this software without specific prior written permission.
21//
22// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33#endregion
34
35using System;
36using System.Collections.Generic;
37using System.Text;
38using Google.ProtocolBuffers;
39using Google.ProtocolBuffers.TestProtos;
40using NUnit.Framework;
41
42namespace Google.ProtocolBuffers {
43 [TestFixture]
44 public class ExtendableMessageLiteTest {
45
46 [Test, Ignore("Not implemented, no assertion made"), ExpectedException(typeof(ArgumentException))]
47 public void ExtensionWriterInvalidExtension() {
48 TestPackedExtensionsLite.CreateBuilder()[UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite.Descriptor] =
49 ForeignMessageLite.DefaultInstance;
50 }
51
52 [Test]
53 public void ExtensionWriterTestMessages() {
54 TestAllExtensionsLite.Builder b = TestAllExtensionsLite.CreateBuilder().SetExtension(
55 UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.CreateBuilder().SetC(123).Build());
56 TestAllExtensionsLite copy, msg = b.Build();
57
58 ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
59 UnitTestLiteProtoFile.RegisterAllExtensions(registry);
60
61 copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
62 Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
63 }
64
65 [Test]
66 public void ExtensionWriterIsInitialized() {
67 Assert.IsTrue(ForeignMessageLite.DefaultInstance.IsInitialized);
68 Assert.IsTrue(TestPackedExtensionsLite.CreateBuilder().IsInitialized);
69 Assert.IsTrue(TestAllExtensionsLite.CreateBuilder().SetExtension(
70 UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.DefaultInstance)
71 .IsInitialized);
72 }
73
74 [Test]
75 public void ExtensionWriterTestSetExtensionLists() {
76 TestAllExtensionsLite msg, copy;
77 TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
78 .SetExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, new[] { true, false })
79 .SetExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, new[] { "123", "456" })
80 .SetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, new[] { ForeignEnumLite.FOREIGN_LITE_BAZ, ForeignEnumLite.FOREIGN_LITE_FOO })
81 ;
82
83 msg = builder.Build();
84 ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
85 UnitTestLiteProtoFile.RegisterAllExtensions(registry);
86
87 copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
88 Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
89
90 Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_FOO, copy.GetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, 1));
91 }
92
93 [Test]
94 public void ExtensionWriterTest() {
95 TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
96 .SetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite, true)
97 .SetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite, ByteString.CopyFromUtf8("123"))
98 .SetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite, "123")
99 .SetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite, 123)
100 .SetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite, 123u)
101 .SetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite, 123u)
102 .SetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite, 123)
103 .SetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
104 .SetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
105 .SetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite, 123)
106 .SetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite, 123)
107 .SetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
108 .SetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite, 123)
109 .SetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite, 123)
110 .SetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite, 123)
111 .SetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite, 123)
112 .SetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite, "123")
113 .SetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite, "123")
114 .SetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite, 123u)
115 .SetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite, 123u)
116 //Optional
117 .SetExtension(UnitTestLiteProtoFile.OptionalBoolExtensionLite, true)
118 .SetExtension(UnitTestLiteProtoFile.OptionalBytesExtensionLite, ByteString.CopyFromUtf8("123"))
119 .SetExtension(UnitTestLiteProtoFile.OptionalCordExtensionLite, "123")
120 .SetExtension(UnitTestLiteProtoFile.OptionalDoubleExtensionLite, 123)
121 .SetExtension(UnitTestLiteProtoFile.OptionalFixed32ExtensionLite, 123u)
122 .SetExtension(UnitTestLiteProtoFile.OptionalFixed64ExtensionLite, 123u)
123 .SetExtension(UnitTestLiteProtoFile.OptionalFloatExtensionLite, 123)
124 .SetExtension(UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
125 .SetExtension(UnitTestLiteProtoFile.OptionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
126 .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 123)
127 .SetExtension(UnitTestLiteProtoFile.OptionalInt64ExtensionLite, 123)
128 .SetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
129 .SetExtension(UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite, 123)
130 .SetExtension(UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite, 123)
131 .SetExtension(UnitTestLiteProtoFile.OptionalSint32ExtensionLite, 123)
132 .SetExtension(UnitTestLiteProtoFile.OptionalSint64ExtensionLite, 123)
133 .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "123")
134 .SetExtension(UnitTestLiteProtoFile.OptionalStringPieceExtensionLite, "123")
135 .SetExtension(UnitTestLiteProtoFile.OptionalUint32ExtensionLite, 123u)
136 .SetExtension(UnitTestLiteProtoFile.OptionalUint64ExtensionLite, 123u)
137 //Repeated
138 .AddExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, true)
139 .AddExtension(UnitTestLiteProtoFile.RepeatedBytesExtensionLite, ByteString.CopyFromUtf8("123"))
140 .AddExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, "123")
141 .AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 123)
142 .AddExtension(UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite, 123u)
143 .AddExtension(UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite, 123u)
144 .AddExtension(UnitTestLiteProtoFile.RepeatedFloatExtensionLite, 123)
145 .AddExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
146 .AddExtension(UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
147 .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 123)
148 .AddExtension(UnitTestLiteProtoFile.RepeatedInt64ExtensionLite, 123)
149 .AddExtension(UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
150 .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite, 123)
151 .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite, 123)
152 .AddExtension(UnitTestLiteProtoFile.RepeatedSint32ExtensionLite, 123)
153 .AddExtension(UnitTestLiteProtoFile.RepeatedSint64ExtensionLite, 123)
154 .AddExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, "123")
155 .AddExtension(UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite, "123")
156 .AddExtension(UnitTestLiteProtoFile.RepeatedUint32ExtensionLite, 123u)
157 .AddExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 123u)
158 ;
159 TestAllExtensionsLite msg = builder.Build();
160
161 ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
162 UnitTestLiteProtoFile.RegisterAllExtensions(registry);
163
164 TestAllExtensionsLite.Builder copyBuilder = TestAllExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
165 TestAllExtensionsLite copy = copyBuilder.Build();
166
167 Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
168
169 Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite));
170 Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite));
171 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite));
172 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite));
173 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite));
174 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite));
175 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite));
176 Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite));
177 Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite));
178 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite));
179 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite));
180 Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite));
181 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite));
182 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite));
183 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite));
184 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite));
185 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite));
186 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite));
187 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite));
188 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite));
189
190 Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.OptionalBoolExtensionLite));
191 Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.OptionalBytesExtensionLite));
192 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalCordExtensionLite));
193 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalDoubleExtensionLite));
194 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalFixed32ExtensionLite));
195 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalFixed64ExtensionLite));
196 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalFloatExtensionLite));
197 Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite));
198 Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.OptionalImportEnumExtensionLite));
199 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
200 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalInt64ExtensionLite));
201 Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite));
202 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite));
203 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite));
204 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSint32ExtensionLite));
205 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSint64ExtensionLite));
206 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite));
207 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringPieceExtensionLite));
208 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalUint32ExtensionLite));
209 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalUint64ExtensionLite));
210
211 Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, 0));
212 Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.RepeatedBytesExtensionLite, 0));
213 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, 0));
214 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 0));
215 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite, 0));
216 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite, 0));
217 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFloatExtensionLite, 0));
218 Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, 0));
219 Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite, 0));
220 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0));
221 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedInt64ExtensionLite, 0));
222 Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite, 0));
223 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite, 0));
224 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite, 0));
225 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSint32ExtensionLite, 0));
226 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSint64ExtensionLite, 0));
227 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, 0));
228 Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite, 0));
229 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedUint32ExtensionLite, 0));
230 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 0));
231 }
232
233 [Test]
234 public void ExtensionWriterTestPacked() {
235
236 TestPackedExtensionsLite.Builder builder = TestPackedExtensionsLite.CreateBuilder()
237 .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true)
238 .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123)
239 .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u)
240 .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u)
241 .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123)
242 .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123)
243 .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123)
244 .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123)
245 .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123)
246 .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123)
247 .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123)
248 .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u)
249 .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u)
250 .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true)
251 .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123)
252 .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u)
253 .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u)
254 .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123)
255 .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123)
256 .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123)
257 .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123)
258 .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123)
259 .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123)
260 .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123)
261 .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u)
262 .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u);
263
264 TestPackedExtensionsLite msg = builder.Build();
265
266 ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
267 UnitTestLiteProtoFile.RegisterAllExtensions(registry);
268
269 TestPackedExtensionsLite.Builder copyBuilder = TestPackedExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
270 TestPackedExtensionsLite copy = copyBuilder.Build();
271
272 Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
273
274 Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 0));
275 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 0));
276 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 0));
277 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 0));
278 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 0));
279 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 0));
280 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 0));
281 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 0));
282 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 0));
283 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 0));
284 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 0));
285 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 0));
286 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 0));
287
288 Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 1));
289 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 1));
290 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 1));
291 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 1));
292 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 1));
293 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 1));
294 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 1));
295 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 1));
296 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 1));
297 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 1));
298 Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 1));
299 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 1));
300 Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 1));
301
302 }
303 }
304}