Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: third_party/protobuf/java/compatibility_tests/v2.5.0/tests/src/main/java/com/google/protobuf/test/TestUtil.java

Issue 2590803003: Revert "third_party/protobuf: Update to HEAD (83d681ee2c)" (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // http://code.google.com/p/protobuf/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
31 package com.google.protobuf.test;
32 import com.google.protobuf.*;
33
34 import protobuf_unittest.UnittestProto;
35
36 // The static imports are to avoid 100+ char lines. The following is roughly eq uivalent to
37 // import static protobuf_unittest.UnittestProto.*;
38 import static protobuf_unittest.UnittestProto.defaultInt32Extension;
39 import static protobuf_unittest.UnittestProto.defaultInt64Extension;
40 import static protobuf_unittest.UnittestProto.defaultUint32Extension;
41 import static protobuf_unittest.UnittestProto.defaultUint64Extension;
42 import static protobuf_unittest.UnittestProto.defaultSint32Extension;
43 import static protobuf_unittest.UnittestProto.defaultSint64Extension;
44 import static protobuf_unittest.UnittestProto.defaultFixed32Extension;
45 import static protobuf_unittest.UnittestProto.defaultFixed64Extension;
46 import static protobuf_unittest.UnittestProto.defaultSfixed32Extension;
47 import static protobuf_unittest.UnittestProto.defaultSfixed64Extension;
48 import static protobuf_unittest.UnittestProto.defaultFloatExtension;
49 import static protobuf_unittest.UnittestProto.defaultDoubleExtension;
50 import static protobuf_unittest.UnittestProto.defaultBoolExtension;
51 import static protobuf_unittest.UnittestProto.defaultStringExtension;
52 import static protobuf_unittest.UnittestProto.defaultBytesExtension;
53 import static protobuf_unittest.UnittestProto.defaultNestedEnumExtension;
54 import static protobuf_unittest.UnittestProto.defaultForeignEnumExtension;
55 import static protobuf_unittest.UnittestProto.defaultImportEnumExtension;
56 import static protobuf_unittest.UnittestProto.defaultStringPieceExtension;
57 import static protobuf_unittest.UnittestProto.defaultCordExtension;
58
59 import static protobuf_unittest.UnittestProto.optionalInt32Extension;
60 import static protobuf_unittest.UnittestProto.optionalInt64Extension;
61 import static protobuf_unittest.UnittestProto.optionalUint32Extension;
62 import static protobuf_unittest.UnittestProto.optionalUint64Extension;
63 import static protobuf_unittest.UnittestProto.optionalSint32Extension;
64 import static protobuf_unittest.UnittestProto.optionalSint64Extension;
65 import static protobuf_unittest.UnittestProto.optionalFixed32Extension;
66 import static protobuf_unittest.UnittestProto.optionalFixed64Extension;
67 import static protobuf_unittest.UnittestProto.optionalSfixed32Extension;
68 import static protobuf_unittest.UnittestProto.optionalSfixed64Extension;
69 import static protobuf_unittest.UnittestProto.optionalFloatExtension;
70 import static protobuf_unittest.UnittestProto.optionalDoubleExtension;
71 import static protobuf_unittest.UnittestProto.optionalBoolExtension;
72 import static protobuf_unittest.UnittestProto.optionalStringExtension;
73 import static protobuf_unittest.UnittestProto.optionalBytesExtension;
74 import static protobuf_unittest.UnittestProto.optionalGroupExtension;
75 import static protobuf_unittest.UnittestProto.optionalCordExtension;
76 import static protobuf_unittest.UnittestProto.optionalForeignEnumExtension;
77 import static protobuf_unittest.UnittestProto.optionalForeignMessageExtension;
78 import static protobuf_unittest.UnittestProto.optionalImportEnumExtension;
79 import static protobuf_unittest.UnittestProto.optionalImportMessageExtension;
80 import static protobuf_unittest.UnittestProto.optionalNestedEnumExtension;
81 import static protobuf_unittest.UnittestProto.optionalNestedMessageExtension;
82 import static protobuf_unittest.UnittestProto.optionalPublicImportMessageExtensi on;
83 import static protobuf_unittest.UnittestProto.optionalLazyMessageExtension;
84 import static protobuf_unittest.UnittestProto.optionalStringPieceExtension;
85
86 import static protobuf_unittest.UnittestProto.repeatedInt32Extension;
87 import static protobuf_unittest.UnittestProto.repeatedInt64Extension;
88 import static protobuf_unittest.UnittestProto.repeatedUint32Extension;
89 import static protobuf_unittest.UnittestProto.repeatedUint64Extension;
90 import static protobuf_unittest.UnittestProto.repeatedSint32Extension;
91 import static protobuf_unittest.UnittestProto.repeatedSint64Extension;
92 import static protobuf_unittest.UnittestProto.repeatedFixed32Extension;
93 import static protobuf_unittest.UnittestProto.repeatedFixed64Extension;
94 import static protobuf_unittest.UnittestProto.repeatedSfixed32Extension;
95 import static protobuf_unittest.UnittestProto.repeatedSfixed64Extension;
96 import static protobuf_unittest.UnittestProto.repeatedFloatExtension;
97 import static protobuf_unittest.UnittestProto.repeatedDoubleExtension;
98 import static protobuf_unittest.UnittestProto.repeatedBoolExtension;
99 import static protobuf_unittest.UnittestProto.repeatedStringExtension;
100 import static protobuf_unittest.UnittestProto.repeatedBytesExtension;
101 import static protobuf_unittest.UnittestProto.repeatedGroupExtension;
102 import static protobuf_unittest.UnittestProto.repeatedNestedMessageExtension;
103 import static protobuf_unittest.UnittestProto.repeatedForeignMessageExtension;
104 import static protobuf_unittest.UnittestProto.repeatedImportMessageExtension;
105 import static protobuf_unittest.UnittestProto.repeatedLazyMessageExtension;
106 import static protobuf_unittest.UnittestProto.repeatedNestedEnumExtension;
107 import static protobuf_unittest.UnittestProto.repeatedForeignEnumExtension;
108 import static protobuf_unittest.UnittestProto.repeatedImportEnumExtension;
109 import static protobuf_unittest.UnittestProto.repeatedStringPieceExtension;
110 import static protobuf_unittest.UnittestProto.repeatedCordExtension;
111
112 import static protobuf_unittest.UnittestProto.OptionalGroup_extension;
113 import static protobuf_unittest.UnittestProto.RepeatedGroup_extension;
114
115 import static protobuf_unittest.UnittestProto.packedInt32Extension;
116 import static protobuf_unittest.UnittestProto.packedInt64Extension;
117 import static protobuf_unittest.UnittestProto.packedUint32Extension;
118 import static protobuf_unittest.UnittestProto.packedUint64Extension;
119 import static protobuf_unittest.UnittestProto.packedSint32Extension;
120 import static protobuf_unittest.UnittestProto.packedSint64Extension;
121 import static protobuf_unittest.UnittestProto.packedFixed32Extension;
122 import static protobuf_unittest.UnittestProto.packedFixed64Extension;
123 import static protobuf_unittest.UnittestProto.packedSfixed32Extension;
124 import static protobuf_unittest.UnittestProto.packedSfixed64Extension;
125 import static protobuf_unittest.UnittestProto.packedFloatExtension;
126 import static protobuf_unittest.UnittestProto.packedDoubleExtension;
127 import static protobuf_unittest.UnittestProto.packedBoolExtension;
128 import static protobuf_unittest.UnittestProto.packedEnumExtension;
129
130
131 import protobuf_unittest.UnittestProto.TestAllExtensions;
132 import protobuf_unittest.UnittestProto.TestAllExtensionsOrBuilder;
133 import protobuf_unittest.UnittestProto.TestAllTypes;
134 import protobuf_unittest.UnittestProto.TestAllTypesOrBuilder;
135 import protobuf_unittest.UnittestProto.TestPackedExtensions;
136 import protobuf_unittest.UnittestProto.TestPackedTypes;
137 import protobuf_unittest.UnittestProto.TestUnpackedTypes;
138 import protobuf_unittest.UnittestProto.ForeignMessage;
139 import protobuf_unittest.UnittestProto.ForeignEnum;
140 import com.google.protobuf.test.UnittestImport.ImportEnum;
141 import com.google.protobuf.test.UnittestImport.ImportMessage;
142 import com.google.protobuf.test.UnittestImportPublic.PublicImportMessage;
143
144 import junit.framework.Assert;
145
146 import java.io.File;
147 import java.io.IOException;
148 import java.io.RandomAccessFile;
149
150 /**
151 * Contains methods for setting all fields of {@code TestAllTypes} to
152 * some values as well as checking that all the fields are set to those values.
153 * These are useful for testing various protocol message features, e.g.
154 * set all fields of a message, serialize it, parse it, and check that all
155 * fields are set.
156 *
157 * <p>This code is not to be used outside of {@code com.google.protobuf} and
158 * subpackages.
159 *
160 * @author kenton@google.com Kenton Varda
161 */
162 public final class TestUtil {
163 private TestUtil() {}
164
165 /** Helper to convert a String to ByteString. */
166 static ByteString toBytes(String str) {
167 try {
168 return ByteString.copyFrom(str.getBytes("UTF-8"));
169 } catch(java.io.UnsupportedEncodingException e) {
170 throw new RuntimeException("UTF-8 not supported.", e);
171 }
172 }
173
174 /**
175 * Get a {@code TestAllTypes} with all fields set as they would be by
176 * {@link #setAllFields(TestAllTypes.Builder)}.
177 */
178 public static TestAllTypes getAllSet() {
179 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
180 setAllFields(builder);
181 return builder.build();
182 }
183
184 /**
185 * Get a {@code TestAllTypes.Builder} with all fields set as they would be by
186 * {@link #setAllFields(TestAllTypes.Builder)}.
187 */
188 public static TestAllTypes.Builder getAllSetBuilder() {
189 TestAllTypes.Builder builder = TestAllTypes.newBuilder();
190 setAllFields(builder);
191 return builder;
192 }
193
194 /**
195 * Get a {@code TestAllExtensions} with all fields set as they would be by
196 * {@link #setAllExtensions(TestAllExtensions.Builder)}.
197 */
198 public static TestAllExtensions getAllExtensionsSet() {
199 TestAllExtensions.Builder builder = TestAllExtensions.newBuilder();
200 setAllExtensions(builder);
201 return builder.build();
202 }
203
204 public static TestPackedTypes getPackedSet() {
205 TestPackedTypes.Builder builder = TestPackedTypes.newBuilder();
206 setPackedFields(builder);
207 return builder.build();
208 }
209
210 public static TestUnpackedTypes getUnpackedSet() {
211 TestUnpackedTypes.Builder builder = TestUnpackedTypes.newBuilder();
212 setUnpackedFields(builder);
213 return builder.build();
214 }
215
216 public static TestPackedExtensions getPackedExtensionsSet() {
217 TestPackedExtensions.Builder builder = TestPackedExtensions.newBuilder();
218 setPackedExtensions(builder);
219 return builder.build();
220 }
221
222 /**
223 * Set every field of {@code message} to the values expected by
224 * {@code assertAllFieldsSet()}.
225 */
226 public static void setAllFields(TestAllTypes.Builder message) {
227 message.setOptionalInt32 (101);
228 message.setOptionalInt64 (102);
229 message.setOptionalUint32 (103);
230 message.setOptionalUint64 (104);
231 message.setOptionalSint32 (105);
232 message.setOptionalSint64 (106);
233 message.setOptionalFixed32 (107);
234 message.setOptionalFixed64 (108);
235 message.setOptionalSfixed32(109);
236 message.setOptionalSfixed64(110);
237 message.setOptionalFloat (111);
238 message.setOptionalDouble (112);
239 message.setOptionalBool (true);
240 message.setOptionalString ("115");
241 message.setOptionalBytes (toBytes("116"));
242
243 message.setOptionalGroup(
244 TestAllTypes.OptionalGroup.newBuilder().setA(117).build());
245 message.setOptionalNestedMessage(
246 TestAllTypes.NestedMessage.newBuilder().setBb(118).build());
247 message.setOptionalForeignMessage(
248 ForeignMessage.newBuilder().setC(119).build());
249 message.setOptionalImportMessage(
250 ImportMessage.newBuilder().setD(120).build());
251 message.setOptionalPublicImportMessage(
252 PublicImportMessage.newBuilder().setE(126).build());
253 message.setOptionalLazyMessage(
254 TestAllTypes.NestedMessage.newBuilder().setBb(127).build());
255
256 message.setOptionalNestedEnum (TestAllTypes.NestedEnum.BAZ);
257 message.setOptionalForeignEnum(ForeignEnum.FOREIGN_BAZ);
258 message.setOptionalImportEnum (ImportEnum.IMPORT_BAZ);
259
260 message.setOptionalStringPiece("124");
261 message.setOptionalCord("125");
262
263 // -----------------------------------------------------------------
264
265 message.addRepeatedInt32 (201);
266 message.addRepeatedInt64 (202);
267 message.addRepeatedUint32 (203);
268 message.addRepeatedUint64 (204);
269 message.addRepeatedSint32 (205);
270 message.addRepeatedSint64 (206);
271 message.addRepeatedFixed32 (207);
272 message.addRepeatedFixed64 (208);
273 message.addRepeatedSfixed32(209);
274 message.addRepeatedSfixed64(210);
275 message.addRepeatedFloat (211);
276 message.addRepeatedDouble (212);
277 message.addRepeatedBool (true);
278 message.addRepeatedString ("215");
279 message.addRepeatedBytes (toBytes("216"));
280
281 message.addRepeatedGroup(
282 TestAllTypes.RepeatedGroup.newBuilder().setA(217).build());
283 message.addRepeatedNestedMessage(
284 TestAllTypes.NestedMessage.newBuilder().setBb(218).build());
285 message.addRepeatedForeignMessage(
286 ForeignMessage.newBuilder().setC(219).build());
287 message.addRepeatedImportMessage(
288 ImportMessage.newBuilder().setD(220).build());
289 message.addRepeatedLazyMessage(
290 TestAllTypes.NestedMessage.newBuilder().setBb(227).build());
291
292 message.addRepeatedNestedEnum (TestAllTypes.NestedEnum.BAR);
293 message.addRepeatedForeignEnum(ForeignEnum.FOREIGN_BAR);
294 message.addRepeatedImportEnum (ImportEnum.IMPORT_BAR);
295
296 message.addRepeatedStringPiece("224");
297 message.addRepeatedCord("225");
298
299 // Add a second one of each field.
300 message.addRepeatedInt32 (301);
301 message.addRepeatedInt64 (302);
302 message.addRepeatedUint32 (303);
303 message.addRepeatedUint64 (304);
304 message.addRepeatedSint32 (305);
305 message.addRepeatedSint64 (306);
306 message.addRepeatedFixed32 (307);
307 message.addRepeatedFixed64 (308);
308 message.addRepeatedSfixed32(309);
309 message.addRepeatedSfixed64(310);
310 message.addRepeatedFloat (311);
311 message.addRepeatedDouble (312);
312 message.addRepeatedBool (false);
313 message.addRepeatedString ("315");
314 message.addRepeatedBytes (toBytes("316"));
315
316 message.addRepeatedGroup(
317 TestAllTypes.RepeatedGroup.newBuilder().setA(317).build());
318 message.addRepeatedNestedMessage(
319 TestAllTypes.NestedMessage.newBuilder().setBb(318).build());
320 message.addRepeatedForeignMessage(
321 ForeignMessage.newBuilder().setC(319).build());
322 message.addRepeatedImportMessage(
323 ImportMessage.newBuilder().setD(320).build());
324 message.addRepeatedLazyMessage(
325 TestAllTypes.NestedMessage.newBuilder().setBb(327).build());
326
327 message.addRepeatedNestedEnum (TestAllTypes.NestedEnum.BAZ);
328 message.addRepeatedForeignEnum(ForeignEnum.FOREIGN_BAZ);
329 message.addRepeatedImportEnum (ImportEnum.IMPORT_BAZ);
330
331 message.addRepeatedStringPiece("324");
332 message.addRepeatedCord("325");
333
334 // -----------------------------------------------------------------
335
336 message.setDefaultInt32 (401);
337 message.setDefaultInt64 (402);
338 message.setDefaultUint32 (403);
339 message.setDefaultUint64 (404);
340 message.setDefaultSint32 (405);
341 message.setDefaultSint64 (406);
342 message.setDefaultFixed32 (407);
343 message.setDefaultFixed64 (408);
344 message.setDefaultSfixed32(409);
345 message.setDefaultSfixed64(410);
346 message.setDefaultFloat (411);
347 message.setDefaultDouble (412);
348 message.setDefaultBool (false);
349 message.setDefaultString ("415");
350 message.setDefaultBytes (toBytes("416"));
351
352 message.setDefaultNestedEnum (TestAllTypes.NestedEnum.FOO);
353 message.setDefaultForeignEnum(ForeignEnum.FOREIGN_FOO);
354 message.setDefaultImportEnum (ImportEnum.IMPORT_FOO);
355
356 message.setDefaultStringPiece("424");
357 message.setDefaultCord("425");
358 }
359
360 // -------------------------------------------------------------------
361
362 /**
363 * Modify the repeated fields of {@code message} to contain the values
364 * expected by {@code assertRepeatedFieldsModified()}.
365 */
366 public static void modifyRepeatedFields(TestAllTypes.Builder message) {
367 message.setRepeatedInt32 (1, 501);
368 message.setRepeatedInt64 (1, 502);
369 message.setRepeatedUint32 (1, 503);
370 message.setRepeatedUint64 (1, 504);
371 message.setRepeatedSint32 (1, 505);
372 message.setRepeatedSint64 (1, 506);
373 message.setRepeatedFixed32 (1, 507);
374 message.setRepeatedFixed64 (1, 508);
375 message.setRepeatedSfixed32(1, 509);
376 message.setRepeatedSfixed64(1, 510);
377 message.setRepeatedFloat (1, 511);
378 message.setRepeatedDouble (1, 512);
379 message.setRepeatedBool (1, true);
380 message.setRepeatedString (1, "515");
381 message.setRepeatedBytes (1, toBytes("516"));
382
383 message.setRepeatedGroup(1,
384 TestAllTypes.RepeatedGroup.newBuilder().setA(517).build());
385 message.setRepeatedNestedMessage(1,
386 TestAllTypes.NestedMessage.newBuilder().setBb(518).build());
387 message.setRepeatedForeignMessage(1,
388 ForeignMessage.newBuilder().setC(519).build());
389 message.setRepeatedImportMessage(1,
390 ImportMessage.newBuilder().setD(520).build());
391 message.setRepeatedLazyMessage(1,
392 TestAllTypes.NestedMessage.newBuilder().setBb(527).build());
393
394 message.setRepeatedNestedEnum (1, TestAllTypes.NestedEnum.FOO);
395 message.setRepeatedForeignEnum(1, ForeignEnum.FOREIGN_FOO);
396 message.setRepeatedImportEnum (1, ImportEnum.IMPORT_FOO);
397
398 message.setRepeatedStringPiece(1, "524");
399 message.setRepeatedCord(1, "525");
400 }
401
402 // -------------------------------------------------------------------
403
404 /**
405 * Assert (using {@code junit.framework.Assert}} that all fields of
406 * {@code message} are set to the values assigned by {@code setAllFields}.
407 */
408 public static void assertAllFieldsSet(TestAllTypesOrBuilder message) {
409 Assert.assertTrue(message.hasOptionalInt32 ());
410 Assert.assertTrue(message.hasOptionalInt64 ());
411 Assert.assertTrue(message.hasOptionalUint32 ());
412 Assert.assertTrue(message.hasOptionalUint64 ());
413 Assert.assertTrue(message.hasOptionalSint32 ());
414 Assert.assertTrue(message.hasOptionalSint64 ());
415 Assert.assertTrue(message.hasOptionalFixed32 ());
416 Assert.assertTrue(message.hasOptionalFixed64 ());
417 Assert.assertTrue(message.hasOptionalSfixed32());
418 Assert.assertTrue(message.hasOptionalSfixed64());
419 Assert.assertTrue(message.hasOptionalFloat ());
420 Assert.assertTrue(message.hasOptionalDouble ());
421 Assert.assertTrue(message.hasOptionalBool ());
422 Assert.assertTrue(message.hasOptionalString ());
423 Assert.assertTrue(message.hasOptionalBytes ());
424
425 Assert.assertTrue(message.hasOptionalGroup ());
426 Assert.assertTrue(message.hasOptionalNestedMessage ());
427 Assert.assertTrue(message.hasOptionalForeignMessage());
428 Assert.assertTrue(message.hasOptionalImportMessage ());
429
430 Assert.assertTrue(message.getOptionalGroup ().hasA());
431 Assert.assertTrue(message.getOptionalNestedMessage ().hasBb());
432 Assert.assertTrue(message.getOptionalForeignMessage().hasC());
433 Assert.assertTrue(message.getOptionalImportMessage ().hasD());
434
435 Assert.assertTrue(message.hasOptionalNestedEnum ());
436 Assert.assertTrue(message.hasOptionalForeignEnum());
437 Assert.assertTrue(message.hasOptionalImportEnum ());
438
439 Assert.assertTrue(message.hasOptionalStringPiece());
440 Assert.assertTrue(message.hasOptionalCord());
441
442 Assert.assertEquals(101 , message.getOptionalInt32 ());
443 Assert.assertEquals(102 , message.getOptionalInt64 ());
444 Assert.assertEquals(103 , message.getOptionalUint32 ());
445 Assert.assertEquals(104 , message.getOptionalUint64 ());
446 Assert.assertEquals(105 , message.getOptionalSint32 ());
447 Assert.assertEquals(106 , message.getOptionalSint64 ());
448 Assert.assertEquals(107 , message.getOptionalFixed32 ());
449 Assert.assertEquals(108 , message.getOptionalFixed64 ());
450 Assert.assertEquals(109 , message.getOptionalSfixed32());
451 Assert.assertEquals(110 , message.getOptionalSfixed64());
452 Assert.assertEquals(111 , message.getOptionalFloat (), 0.0);
453 Assert.assertEquals(112 , message.getOptionalDouble (), 0.0);
454 Assert.assertEquals(true , message.getOptionalBool ());
455 Assert.assertEquals("115", message.getOptionalString ());
456 Assert.assertEquals(toBytes("116"), message.getOptionalBytes());
457
458 Assert.assertEquals(117, message.getOptionalGroup ().getA());
459 Assert.assertEquals(118, message.getOptionalNestedMessage ().getBb());
460 Assert.assertEquals(119, message.getOptionalForeignMessage ().getC());
461 Assert.assertEquals(120, message.getOptionalImportMessage ().getD());
462 Assert.assertEquals(126, message.getOptionalPublicImportMessage().getE());
463 Assert.assertEquals(127, message.getOptionalLazyMessage ().getBb());
464
465 Assert.assertEquals(TestAllTypes.NestedEnum.BAZ, message.getOptionalNestedEn um());
466 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getOptionalForeignEnum( ));
467 Assert.assertEquals(ImportEnum.IMPORT_BAZ, message.getOptionalImportEnum());
468
469 Assert.assertEquals("124", message.getOptionalStringPiece());
470 Assert.assertEquals("125", message.getOptionalCord());
471
472 // -----------------------------------------------------------------
473
474 Assert.assertEquals(2, message.getRepeatedInt32Count ());
475 Assert.assertEquals(2, message.getRepeatedInt64Count ());
476 Assert.assertEquals(2, message.getRepeatedUint32Count ());
477 Assert.assertEquals(2, message.getRepeatedUint64Count ());
478 Assert.assertEquals(2, message.getRepeatedSint32Count ());
479 Assert.assertEquals(2, message.getRepeatedSint64Count ());
480 Assert.assertEquals(2, message.getRepeatedFixed32Count ());
481 Assert.assertEquals(2, message.getRepeatedFixed64Count ());
482 Assert.assertEquals(2, message.getRepeatedSfixed32Count());
483 Assert.assertEquals(2, message.getRepeatedSfixed64Count());
484 Assert.assertEquals(2, message.getRepeatedFloatCount ());
485 Assert.assertEquals(2, message.getRepeatedDoubleCount ());
486 Assert.assertEquals(2, message.getRepeatedBoolCount ());
487 Assert.assertEquals(2, message.getRepeatedStringCount ());
488 Assert.assertEquals(2, message.getRepeatedBytesCount ());
489
490 Assert.assertEquals(2, message.getRepeatedGroupCount ());
491 Assert.assertEquals(2, message.getRepeatedNestedMessageCount ());
492 Assert.assertEquals(2, message.getRepeatedForeignMessageCount());
493 Assert.assertEquals(2, message.getRepeatedImportMessageCount ());
494 Assert.assertEquals(2, message.getRepeatedLazyMessageCount ());
495 Assert.assertEquals(2, message.getRepeatedNestedEnumCount ());
496 Assert.assertEquals(2, message.getRepeatedForeignEnumCount ());
497 Assert.assertEquals(2, message.getRepeatedImportEnumCount ());
498
499 Assert.assertEquals(2, message.getRepeatedStringPieceCount());
500 Assert.assertEquals(2, message.getRepeatedCordCount());
501
502 Assert.assertEquals(201 , message.getRepeatedInt32 (0));
503 Assert.assertEquals(202 , message.getRepeatedInt64 (0));
504 Assert.assertEquals(203 , message.getRepeatedUint32 (0));
505 Assert.assertEquals(204 , message.getRepeatedUint64 (0));
506 Assert.assertEquals(205 , message.getRepeatedSint32 (0));
507 Assert.assertEquals(206 , message.getRepeatedSint64 (0));
508 Assert.assertEquals(207 , message.getRepeatedFixed32 (0));
509 Assert.assertEquals(208 , message.getRepeatedFixed64 (0));
510 Assert.assertEquals(209 , message.getRepeatedSfixed32(0));
511 Assert.assertEquals(210 , message.getRepeatedSfixed64(0));
512 Assert.assertEquals(211 , message.getRepeatedFloat (0), 0.0);
513 Assert.assertEquals(212 , message.getRepeatedDouble (0), 0.0);
514 Assert.assertEquals(true , message.getRepeatedBool (0));
515 Assert.assertEquals("215", message.getRepeatedString (0));
516 Assert.assertEquals(toBytes("216"), message.getRepeatedBytes(0));
517
518 Assert.assertEquals(217, message.getRepeatedGroup (0).getA());
519 Assert.assertEquals(218, message.getRepeatedNestedMessage (0).getBb());
520 Assert.assertEquals(219, message.getRepeatedForeignMessage(0).getC());
521 Assert.assertEquals(220, message.getRepeatedImportMessage (0).getD());
522 Assert.assertEquals(227, message.getRepeatedLazyMessage (0).getBb());
523
524 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getRepeatedNestedEn um (0));
525 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getRepeatedForeignEnum( 0));
526 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getRepeatedImportEnum(0)) ;
527
528 Assert.assertEquals("224", message.getRepeatedStringPiece(0));
529 Assert.assertEquals("225", message.getRepeatedCord(0));
530
531 Assert.assertEquals(301 , message.getRepeatedInt32 (1));
532 Assert.assertEquals(302 , message.getRepeatedInt64 (1));
533 Assert.assertEquals(303 , message.getRepeatedUint32 (1));
534 Assert.assertEquals(304 , message.getRepeatedUint64 (1));
535 Assert.assertEquals(305 , message.getRepeatedSint32 (1));
536 Assert.assertEquals(306 , message.getRepeatedSint64 (1));
537 Assert.assertEquals(307 , message.getRepeatedFixed32 (1));
538 Assert.assertEquals(308 , message.getRepeatedFixed64 (1));
539 Assert.assertEquals(309 , message.getRepeatedSfixed32(1));
540 Assert.assertEquals(310 , message.getRepeatedSfixed64(1));
541 Assert.assertEquals(311 , message.getRepeatedFloat (1), 0.0);
542 Assert.assertEquals(312 , message.getRepeatedDouble (1), 0.0);
543 Assert.assertEquals(false, message.getRepeatedBool (1));
544 Assert.assertEquals("315", message.getRepeatedString (1));
545 Assert.assertEquals(toBytes("316"), message.getRepeatedBytes(1));
546
547 Assert.assertEquals(317, message.getRepeatedGroup (1).getA());
548 Assert.assertEquals(318, message.getRepeatedNestedMessage (1).getBb());
549 Assert.assertEquals(319, message.getRepeatedForeignMessage(1).getC());
550 Assert.assertEquals(320, message.getRepeatedImportMessage (1).getD());
551 Assert.assertEquals(327, message.getRepeatedLazyMessage (1).getBb());
552
553 Assert.assertEquals(TestAllTypes.NestedEnum.BAZ, message.getRepeatedNestedEn um (1));
554 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getRepeatedForeignEnum( 1));
555 Assert.assertEquals(ImportEnum.IMPORT_BAZ, message.getRepeatedImportEnum(1)) ;
556
557 Assert.assertEquals("324", message.getRepeatedStringPiece(1));
558 Assert.assertEquals("325", message.getRepeatedCord(1));
559
560 // -----------------------------------------------------------------
561
562 Assert.assertTrue(message.hasDefaultInt32 ());
563 Assert.assertTrue(message.hasDefaultInt64 ());
564 Assert.assertTrue(message.hasDefaultUint32 ());
565 Assert.assertTrue(message.hasDefaultUint64 ());
566 Assert.assertTrue(message.hasDefaultSint32 ());
567 Assert.assertTrue(message.hasDefaultSint64 ());
568 Assert.assertTrue(message.hasDefaultFixed32 ());
569 Assert.assertTrue(message.hasDefaultFixed64 ());
570 Assert.assertTrue(message.hasDefaultSfixed32());
571 Assert.assertTrue(message.hasDefaultSfixed64());
572 Assert.assertTrue(message.hasDefaultFloat ());
573 Assert.assertTrue(message.hasDefaultDouble ());
574 Assert.assertTrue(message.hasDefaultBool ());
575 Assert.assertTrue(message.hasDefaultString ());
576 Assert.assertTrue(message.hasDefaultBytes ());
577
578 Assert.assertTrue(message.hasDefaultNestedEnum ());
579 Assert.assertTrue(message.hasDefaultForeignEnum());
580 Assert.assertTrue(message.hasDefaultImportEnum ());
581
582 Assert.assertTrue(message.hasDefaultStringPiece());
583 Assert.assertTrue(message.hasDefaultCord());
584
585 Assert.assertEquals(401 , message.getDefaultInt32 ());
586 Assert.assertEquals(402 , message.getDefaultInt64 ());
587 Assert.assertEquals(403 , message.getDefaultUint32 ());
588 Assert.assertEquals(404 , message.getDefaultUint64 ());
589 Assert.assertEquals(405 , message.getDefaultSint32 ());
590 Assert.assertEquals(406 , message.getDefaultSint64 ());
591 Assert.assertEquals(407 , message.getDefaultFixed32 ());
592 Assert.assertEquals(408 , message.getDefaultFixed64 ());
593 Assert.assertEquals(409 , message.getDefaultSfixed32());
594 Assert.assertEquals(410 , message.getDefaultSfixed64());
595 Assert.assertEquals(411 , message.getDefaultFloat (), 0.0);
596 Assert.assertEquals(412 , message.getDefaultDouble (), 0.0);
597 Assert.assertEquals(false, message.getDefaultBool ());
598 Assert.assertEquals("415", message.getDefaultString ());
599 Assert.assertEquals(toBytes("416"), message.getDefaultBytes());
600
601 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getDefaultNestedEnu m ());
602 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getDefaultForeignEnum() );
603 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getDefaultImportEnum());
604
605 Assert.assertEquals("424", message.getDefaultStringPiece());
606 Assert.assertEquals("425", message.getDefaultCord());
607 }
608
609 // -------------------------------------------------------------------
610 /**
611 * Assert (using {@code junit.framework.Assert}} that all fields of
612 * {@code message} are cleared, and that getting the fields returns their
613 * default values.
614 */
615 public static void assertClear(TestAllTypesOrBuilder message) {
616 // hasBlah() should initially be false for all optional fields.
617 Assert.assertFalse(message.hasOptionalInt32 ());
618 Assert.assertFalse(message.hasOptionalInt64 ());
619 Assert.assertFalse(message.hasOptionalUint32 ());
620 Assert.assertFalse(message.hasOptionalUint64 ());
621 Assert.assertFalse(message.hasOptionalSint32 ());
622 Assert.assertFalse(message.hasOptionalSint64 ());
623 Assert.assertFalse(message.hasOptionalFixed32 ());
624 Assert.assertFalse(message.hasOptionalFixed64 ());
625 Assert.assertFalse(message.hasOptionalSfixed32());
626 Assert.assertFalse(message.hasOptionalSfixed64());
627 Assert.assertFalse(message.hasOptionalFloat ());
628 Assert.assertFalse(message.hasOptionalDouble ());
629 Assert.assertFalse(message.hasOptionalBool ());
630 Assert.assertFalse(message.hasOptionalString ());
631 Assert.assertFalse(message.hasOptionalBytes ());
632
633 Assert.assertFalse(message.hasOptionalGroup ());
634 Assert.assertFalse(message.hasOptionalNestedMessage ());
635 Assert.assertFalse(message.hasOptionalForeignMessage());
636 Assert.assertFalse(message.hasOptionalImportMessage ());
637
638 Assert.assertFalse(message.hasOptionalNestedEnum ());
639 Assert.assertFalse(message.hasOptionalForeignEnum());
640 Assert.assertFalse(message.hasOptionalImportEnum ());
641
642 Assert.assertFalse(message.hasOptionalStringPiece());
643 Assert.assertFalse(message.hasOptionalCord());
644
645 // Optional fields without defaults are set to zero or something like it.
646 Assert.assertEquals(0 , message.getOptionalInt32 ());
647 Assert.assertEquals(0 , message.getOptionalInt64 ());
648 Assert.assertEquals(0 , message.getOptionalUint32 ());
649 Assert.assertEquals(0 , message.getOptionalUint64 ());
650 Assert.assertEquals(0 , message.getOptionalSint32 ());
651 Assert.assertEquals(0 , message.getOptionalSint64 ());
652 Assert.assertEquals(0 , message.getOptionalFixed32 ());
653 Assert.assertEquals(0 , message.getOptionalFixed64 ());
654 Assert.assertEquals(0 , message.getOptionalSfixed32());
655 Assert.assertEquals(0 , message.getOptionalSfixed64());
656 Assert.assertEquals(0 , message.getOptionalFloat (), 0.0);
657 Assert.assertEquals(0 , message.getOptionalDouble (), 0.0);
658 Assert.assertEquals(false, message.getOptionalBool ());
659 Assert.assertEquals("" , message.getOptionalString ());
660 Assert.assertEquals(ByteString.EMPTY, message.getOptionalBytes());
661
662 // Embedded messages should also be clear.
663 Assert.assertFalse(message.getOptionalGroup ().hasA());
664 Assert.assertFalse(message.getOptionalNestedMessage ().hasBb());
665 Assert.assertFalse(message.getOptionalForeignMessage ().hasC());
666 Assert.assertFalse(message.getOptionalImportMessage ().hasD());
667 Assert.assertFalse(message.getOptionalPublicImportMessage().hasE());
668 Assert.assertFalse(message.getOptionalLazyMessage ().hasBb());
669
670 Assert.assertEquals(0, message.getOptionalGroup ().getA());
671 Assert.assertEquals(0, message.getOptionalNestedMessage ().getBb());
672 Assert.assertEquals(0, message.getOptionalForeignMessage ().getC());
673 Assert.assertEquals(0, message.getOptionalImportMessage ().getD());
674 Assert.assertEquals(0, message.getOptionalPublicImportMessage().getE());
675 Assert.assertEquals(0, message.getOptionalLazyMessage ().getBb());
676
677 // Enums without defaults are set to the first value in the enum.
678 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getOptionalNestedEn um ());
679 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getOptionalForeignEnum( ));
680 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getOptionalImportEnum());
681
682 Assert.assertEquals("", message.getOptionalStringPiece());
683 Assert.assertEquals("", message.getOptionalCord());
684
685 // Repeated fields are empty.
686 Assert.assertEquals(0, message.getRepeatedInt32Count ());
687 Assert.assertEquals(0, message.getRepeatedInt64Count ());
688 Assert.assertEquals(0, message.getRepeatedUint32Count ());
689 Assert.assertEquals(0, message.getRepeatedUint64Count ());
690 Assert.assertEquals(0, message.getRepeatedSint32Count ());
691 Assert.assertEquals(0, message.getRepeatedSint64Count ());
692 Assert.assertEquals(0, message.getRepeatedFixed32Count ());
693 Assert.assertEquals(0, message.getRepeatedFixed64Count ());
694 Assert.assertEquals(0, message.getRepeatedSfixed32Count());
695 Assert.assertEquals(0, message.getRepeatedSfixed64Count());
696 Assert.assertEquals(0, message.getRepeatedFloatCount ());
697 Assert.assertEquals(0, message.getRepeatedDoubleCount ());
698 Assert.assertEquals(0, message.getRepeatedBoolCount ());
699 Assert.assertEquals(0, message.getRepeatedStringCount ());
700 Assert.assertEquals(0, message.getRepeatedBytesCount ());
701
702 Assert.assertEquals(0, message.getRepeatedGroupCount ());
703 Assert.assertEquals(0, message.getRepeatedNestedMessageCount ());
704 Assert.assertEquals(0, message.getRepeatedForeignMessageCount());
705 Assert.assertEquals(0, message.getRepeatedImportMessageCount ());
706 Assert.assertEquals(0, message.getRepeatedLazyMessageCount ());
707 Assert.assertEquals(0, message.getRepeatedNestedEnumCount ());
708 Assert.assertEquals(0, message.getRepeatedForeignEnumCount ());
709 Assert.assertEquals(0, message.getRepeatedImportEnumCount ());
710
711 Assert.assertEquals(0, message.getRepeatedStringPieceCount());
712 Assert.assertEquals(0, message.getRepeatedCordCount());
713
714 // hasBlah() should also be false for all default fields.
715 Assert.assertFalse(message.hasDefaultInt32 ());
716 Assert.assertFalse(message.hasDefaultInt64 ());
717 Assert.assertFalse(message.hasDefaultUint32 ());
718 Assert.assertFalse(message.hasDefaultUint64 ());
719 Assert.assertFalse(message.hasDefaultSint32 ());
720 Assert.assertFalse(message.hasDefaultSint64 ());
721 Assert.assertFalse(message.hasDefaultFixed32 ());
722 Assert.assertFalse(message.hasDefaultFixed64 ());
723 Assert.assertFalse(message.hasDefaultSfixed32());
724 Assert.assertFalse(message.hasDefaultSfixed64());
725 Assert.assertFalse(message.hasDefaultFloat ());
726 Assert.assertFalse(message.hasDefaultDouble ());
727 Assert.assertFalse(message.hasDefaultBool ());
728 Assert.assertFalse(message.hasDefaultString ());
729 Assert.assertFalse(message.hasDefaultBytes ());
730
731 Assert.assertFalse(message.hasDefaultNestedEnum ());
732 Assert.assertFalse(message.hasDefaultForeignEnum());
733 Assert.assertFalse(message.hasDefaultImportEnum ());
734
735 Assert.assertFalse(message.hasDefaultStringPiece());
736 Assert.assertFalse(message.hasDefaultCord());
737
738 // Fields with defaults have their default values (duh).
739 Assert.assertEquals( 41 , message.getDefaultInt32 ());
740 Assert.assertEquals( 42 , message.getDefaultInt64 ());
741 Assert.assertEquals( 43 , message.getDefaultUint32 ());
742 Assert.assertEquals( 44 , message.getDefaultUint64 ());
743 Assert.assertEquals(-45 , message.getDefaultSint32 ());
744 Assert.assertEquals( 46 , message.getDefaultSint64 ());
745 Assert.assertEquals( 47 , message.getDefaultFixed32 ());
746 Assert.assertEquals( 48 , message.getDefaultFixed64 ());
747 Assert.assertEquals( 49 , message.getDefaultSfixed32());
748 Assert.assertEquals(-50 , message.getDefaultSfixed64());
749 Assert.assertEquals( 51.5 , message.getDefaultFloat (), 0.0);
750 Assert.assertEquals( 52e3 , message.getDefaultDouble (), 0.0);
751 Assert.assertEquals(true , message.getDefaultBool ());
752 Assert.assertEquals("hello", message.getDefaultString ());
753 Assert.assertEquals(toBytes("world"), message.getDefaultBytes());
754
755 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getDefaultNestedEnu m ());
756 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getDefaultForeignEnum() );
757 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getDefaultImportEnum());
758
759 Assert.assertEquals("abc", message.getDefaultStringPiece());
760 Assert.assertEquals("123", message.getDefaultCord());
761 }
762
763 // -------------------------------------------------------------------
764
765 /**
766 * Assert (using {@code junit.framework.Assert}} that all fields of
767 * {@code message} are set to the values assigned by {@code setAllFields}
768 * followed by {@code modifyRepeatedFields}.
769 */
770 public static void assertRepeatedFieldsModified(
771 TestAllTypesOrBuilder message) {
772 // ModifyRepeatedFields only sets the second repeated element of each
773 // field. In addition to verifying this, we also verify that the first
774 // element and size were *not* modified.
775 Assert.assertEquals(2, message.getRepeatedInt32Count ());
776 Assert.assertEquals(2, message.getRepeatedInt64Count ());
777 Assert.assertEquals(2, message.getRepeatedUint32Count ());
778 Assert.assertEquals(2, message.getRepeatedUint64Count ());
779 Assert.assertEquals(2, message.getRepeatedSint32Count ());
780 Assert.assertEquals(2, message.getRepeatedSint64Count ());
781 Assert.assertEquals(2, message.getRepeatedFixed32Count ());
782 Assert.assertEquals(2, message.getRepeatedFixed64Count ());
783 Assert.assertEquals(2, message.getRepeatedSfixed32Count());
784 Assert.assertEquals(2, message.getRepeatedSfixed64Count());
785 Assert.assertEquals(2, message.getRepeatedFloatCount ());
786 Assert.assertEquals(2, message.getRepeatedDoubleCount ());
787 Assert.assertEquals(2, message.getRepeatedBoolCount ());
788 Assert.assertEquals(2, message.getRepeatedStringCount ());
789 Assert.assertEquals(2, message.getRepeatedBytesCount ());
790
791 Assert.assertEquals(2, message.getRepeatedGroupCount ());
792 Assert.assertEquals(2, message.getRepeatedNestedMessageCount ());
793 Assert.assertEquals(2, message.getRepeatedForeignMessageCount());
794 Assert.assertEquals(2, message.getRepeatedImportMessageCount ());
795 Assert.assertEquals(2, message.getRepeatedLazyMessageCount ());
796 Assert.assertEquals(2, message.getRepeatedNestedEnumCount ());
797 Assert.assertEquals(2, message.getRepeatedForeignEnumCount ());
798 Assert.assertEquals(2, message.getRepeatedImportEnumCount ());
799
800 Assert.assertEquals(2, message.getRepeatedStringPieceCount());
801 Assert.assertEquals(2, message.getRepeatedCordCount());
802
803 Assert.assertEquals(201 , message.getRepeatedInt32 (0));
804 Assert.assertEquals(202L , message.getRepeatedInt64 (0));
805 Assert.assertEquals(203 , message.getRepeatedUint32 (0));
806 Assert.assertEquals(204L , message.getRepeatedUint64 (0));
807 Assert.assertEquals(205 , message.getRepeatedSint32 (0));
808 Assert.assertEquals(206L , message.getRepeatedSint64 (0));
809 Assert.assertEquals(207 , message.getRepeatedFixed32 (0));
810 Assert.assertEquals(208L , message.getRepeatedFixed64 (0));
811 Assert.assertEquals(209 , message.getRepeatedSfixed32(0));
812 Assert.assertEquals(210L , message.getRepeatedSfixed64(0));
813 Assert.assertEquals(211F , message.getRepeatedFloat (0));
814 Assert.assertEquals(212D , message.getRepeatedDouble (0));
815 Assert.assertEquals(true , message.getRepeatedBool (0));
816 Assert.assertEquals("215", message.getRepeatedString (0));
817 Assert.assertEquals(toBytes("216"), message.getRepeatedBytes(0));
818
819 Assert.assertEquals(217, message.getRepeatedGroup (0).getA());
820 Assert.assertEquals(218, message.getRepeatedNestedMessage (0).getBb());
821 Assert.assertEquals(219, message.getRepeatedForeignMessage(0).getC());
822 Assert.assertEquals(220, message.getRepeatedImportMessage (0).getD());
823 Assert.assertEquals(227, message.getRepeatedLazyMessage (0).getBb());
824
825 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getRepeatedNestedEn um (0));
826 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getRepeatedForeignEnum( 0));
827 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getRepeatedImportEnum(0)) ;
828
829 Assert.assertEquals("224", message.getRepeatedStringPiece(0));
830 Assert.assertEquals("225", message.getRepeatedCord(0));
831
832 // Actually verify the second (modified) elements now.
833 Assert.assertEquals(501 , message.getRepeatedInt32 (1));
834 Assert.assertEquals(502L , message.getRepeatedInt64 (1));
835 Assert.assertEquals(503 , message.getRepeatedUint32 (1));
836 Assert.assertEquals(504L , message.getRepeatedUint64 (1));
837 Assert.assertEquals(505 , message.getRepeatedSint32 (1));
838 Assert.assertEquals(506L , message.getRepeatedSint64 (1));
839 Assert.assertEquals(507 , message.getRepeatedFixed32 (1));
840 Assert.assertEquals(508L , message.getRepeatedFixed64 (1));
841 Assert.assertEquals(509 , message.getRepeatedSfixed32(1));
842 Assert.assertEquals(510L , message.getRepeatedSfixed64(1));
843 Assert.assertEquals(511F , message.getRepeatedFloat (1));
844 Assert.assertEquals(512D , message.getRepeatedDouble (1));
845 Assert.assertEquals(true , message.getRepeatedBool (1));
846 Assert.assertEquals("515", message.getRepeatedString (1));
847 Assert.assertEquals(toBytes("516"), message.getRepeatedBytes(1));
848
849 Assert.assertEquals(517, message.getRepeatedGroup (1).getA());
850 Assert.assertEquals(518, message.getRepeatedNestedMessage (1).getBb());
851 Assert.assertEquals(519, message.getRepeatedForeignMessage(1).getC());
852 Assert.assertEquals(520, message.getRepeatedImportMessage (1).getD());
853 Assert.assertEquals(527, message.getRepeatedLazyMessage (1).getBb());
854
855 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getRepeatedNestedEn um (1));
856 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getRepeatedForeignEnum( 1));
857 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getRepeatedImportEnum(1)) ;
858
859 Assert.assertEquals("524", message.getRepeatedStringPiece(1));
860 Assert.assertEquals("525", message.getRepeatedCord(1));
861 }
862
863 /**
864 * Set every field of {@code message} to a unique value.
865 */
866 public static void setPackedFields(TestPackedTypes.Builder message) {
867 message.addPackedInt32 (601);
868 message.addPackedInt64 (602);
869 message.addPackedUint32 (603);
870 message.addPackedUint64 (604);
871 message.addPackedSint32 (605);
872 message.addPackedSint64 (606);
873 message.addPackedFixed32 (607);
874 message.addPackedFixed64 (608);
875 message.addPackedSfixed32(609);
876 message.addPackedSfixed64(610);
877 message.addPackedFloat (611);
878 message.addPackedDouble (612);
879 message.addPackedBool (true);
880 message.addPackedEnum (ForeignEnum.FOREIGN_BAR);
881 // Add a second one of each field.
882 message.addPackedInt32 (701);
883 message.addPackedInt64 (702);
884 message.addPackedUint32 (703);
885 message.addPackedUint64 (704);
886 message.addPackedSint32 (705);
887 message.addPackedSint64 (706);
888 message.addPackedFixed32 (707);
889 message.addPackedFixed64 (708);
890 message.addPackedSfixed32(709);
891 message.addPackedSfixed64(710);
892 message.addPackedFloat (711);
893 message.addPackedDouble (712);
894 message.addPackedBool (false);
895 message.addPackedEnum (ForeignEnum.FOREIGN_BAZ);
896 }
897
898 /**
899 * Set every field of {@code message} to a unique value. Must correspond with
900 * the values applied by {@code setPackedFields}.
901 */
902 public static void setUnpackedFields(TestUnpackedTypes.Builder message) {
903 message.addUnpackedInt32 (601);
904 message.addUnpackedInt64 (602);
905 message.addUnpackedUint32 (603);
906 message.addUnpackedUint64 (604);
907 message.addUnpackedSint32 (605);
908 message.addUnpackedSint64 (606);
909 message.addUnpackedFixed32 (607);
910 message.addUnpackedFixed64 (608);
911 message.addUnpackedSfixed32(609);
912 message.addUnpackedSfixed64(610);
913 message.addUnpackedFloat (611);
914 message.addUnpackedDouble (612);
915 message.addUnpackedBool (true);
916 message.addUnpackedEnum (ForeignEnum.FOREIGN_BAR);
917 // Add a second one of each field.
918 message.addUnpackedInt32 (701);
919 message.addUnpackedInt64 (702);
920 message.addUnpackedUint32 (703);
921 message.addUnpackedUint64 (704);
922 message.addUnpackedSint32 (705);
923 message.addUnpackedSint64 (706);
924 message.addUnpackedFixed32 (707);
925 message.addUnpackedFixed64 (708);
926 message.addUnpackedSfixed32(709);
927 message.addUnpackedSfixed64(710);
928 message.addUnpackedFloat (711);
929 message.addUnpackedDouble (712);
930 message.addUnpackedBool (false);
931 message.addUnpackedEnum (ForeignEnum.FOREIGN_BAZ);
932 }
933
934 /**
935 * Assert (using {@code junit.framework.Assert}} that all fields of
936 * {@code message} are set to the values assigned by {@code setPackedFields}.
937 */
938 public static void assertPackedFieldsSet(TestPackedTypes message) {
939 Assert.assertEquals(2, message.getPackedInt32Count ());
940 Assert.assertEquals(2, message.getPackedInt64Count ());
941 Assert.assertEquals(2, message.getPackedUint32Count ());
942 Assert.assertEquals(2, message.getPackedUint64Count ());
943 Assert.assertEquals(2, message.getPackedSint32Count ());
944 Assert.assertEquals(2, message.getPackedSint64Count ());
945 Assert.assertEquals(2, message.getPackedFixed32Count ());
946 Assert.assertEquals(2, message.getPackedFixed64Count ());
947 Assert.assertEquals(2, message.getPackedSfixed32Count());
948 Assert.assertEquals(2, message.getPackedSfixed64Count());
949 Assert.assertEquals(2, message.getPackedFloatCount ());
950 Assert.assertEquals(2, message.getPackedDoubleCount ());
951 Assert.assertEquals(2, message.getPackedBoolCount ());
952 Assert.assertEquals(2, message.getPackedEnumCount ());
953 Assert.assertEquals(601 , message.getPackedInt32 (0));
954 Assert.assertEquals(602 , message.getPackedInt64 (0));
955 Assert.assertEquals(603 , message.getPackedUint32 (0));
956 Assert.assertEquals(604 , message.getPackedUint64 (0));
957 Assert.assertEquals(605 , message.getPackedSint32 (0));
958 Assert.assertEquals(606 , message.getPackedSint64 (0));
959 Assert.assertEquals(607 , message.getPackedFixed32 (0));
960 Assert.assertEquals(608 , message.getPackedFixed64 (0));
961 Assert.assertEquals(609 , message.getPackedSfixed32(0));
962 Assert.assertEquals(610 , message.getPackedSfixed64(0));
963 Assert.assertEquals(611 , message.getPackedFloat (0), 0.0);
964 Assert.assertEquals(612 , message.getPackedDouble (0), 0.0);
965 Assert.assertEquals(true , message.getPackedBool (0));
966 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getPackedEnum(0));
967 Assert.assertEquals(701 , message.getPackedInt32 (1));
968 Assert.assertEquals(702 , message.getPackedInt64 (1));
969 Assert.assertEquals(703 , message.getPackedUint32 (1));
970 Assert.assertEquals(704 , message.getPackedUint64 (1));
971 Assert.assertEquals(705 , message.getPackedSint32 (1));
972 Assert.assertEquals(706 , message.getPackedSint64 (1));
973 Assert.assertEquals(707 , message.getPackedFixed32 (1));
974 Assert.assertEquals(708 , message.getPackedFixed64 (1));
975 Assert.assertEquals(709 , message.getPackedSfixed32(1));
976 Assert.assertEquals(710 , message.getPackedSfixed64(1));
977 Assert.assertEquals(711 , message.getPackedFloat (1), 0.0);
978 Assert.assertEquals(712 , message.getPackedDouble (1), 0.0);
979 Assert.assertEquals(false, message.getPackedBool (1));
980 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getPackedEnum(1));
981 }
982
983 /**
984 * Assert (using {@code junit.framework.Assert}} that all fields of
985 * {@code message} are set to the values assigned by {@code setUnpackedFields} .
986 */
987 public static void assertUnpackedFieldsSet(TestUnpackedTypes message) {
988 Assert.assertEquals(2, message.getUnpackedInt32Count ());
989 Assert.assertEquals(2, message.getUnpackedInt64Count ());
990 Assert.assertEquals(2, message.getUnpackedUint32Count ());
991 Assert.assertEquals(2, message.getUnpackedUint64Count ());
992 Assert.assertEquals(2, message.getUnpackedSint32Count ());
993 Assert.assertEquals(2, message.getUnpackedSint64Count ());
994 Assert.assertEquals(2, message.getUnpackedFixed32Count ());
995 Assert.assertEquals(2, message.getUnpackedFixed64Count ());
996 Assert.assertEquals(2, message.getUnpackedSfixed32Count());
997 Assert.assertEquals(2, message.getUnpackedSfixed64Count());
998 Assert.assertEquals(2, message.getUnpackedFloatCount ());
999 Assert.assertEquals(2, message.getUnpackedDoubleCount ());
1000 Assert.assertEquals(2, message.getUnpackedBoolCount ());
1001 Assert.assertEquals(2, message.getUnpackedEnumCount ());
1002 Assert.assertEquals(601 , message.getUnpackedInt32 (0));
1003 Assert.assertEquals(602 , message.getUnpackedInt64 (0));
1004 Assert.assertEquals(603 , message.getUnpackedUint32 (0));
1005 Assert.assertEquals(604 , message.getUnpackedUint64 (0));
1006 Assert.assertEquals(605 , message.getUnpackedSint32 (0));
1007 Assert.assertEquals(606 , message.getUnpackedSint64 (0));
1008 Assert.assertEquals(607 , message.getUnpackedFixed32 (0));
1009 Assert.assertEquals(608 , message.getUnpackedFixed64 (0));
1010 Assert.assertEquals(609 , message.getUnpackedSfixed32(0));
1011 Assert.assertEquals(610 , message.getUnpackedSfixed64(0));
1012 Assert.assertEquals(611 , message.getUnpackedFloat (0), 0.0);
1013 Assert.assertEquals(612 , message.getUnpackedDouble (0), 0.0);
1014 Assert.assertEquals(true , message.getUnpackedBool (0));
1015 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getUnpackedEnum(0));
1016 Assert.assertEquals(701 , message.getUnpackedInt32 (1));
1017 Assert.assertEquals(702 , message.getUnpackedInt64 (1));
1018 Assert.assertEquals(703 , message.getUnpackedUint32 (1));
1019 Assert.assertEquals(704 , message.getUnpackedUint64 (1));
1020 Assert.assertEquals(705 , message.getUnpackedSint32 (1));
1021 Assert.assertEquals(706 , message.getUnpackedSint64 (1));
1022 Assert.assertEquals(707 , message.getUnpackedFixed32 (1));
1023 Assert.assertEquals(708 , message.getUnpackedFixed64 (1));
1024 Assert.assertEquals(709 , message.getUnpackedSfixed32(1));
1025 Assert.assertEquals(710 , message.getUnpackedSfixed64(1));
1026 Assert.assertEquals(711 , message.getUnpackedFloat (1), 0.0);
1027 Assert.assertEquals(712 , message.getUnpackedDouble (1), 0.0);
1028 Assert.assertEquals(false, message.getUnpackedBool (1));
1029 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getUnpackedEnum(1));
1030 }
1031
1032 // ===================================================================
1033 // Like above, but for extensions
1034
1035 // Java gets confused with things like assertEquals(int, Integer): it can't
1036 // decide whether to call assertEquals(int, int) or assertEquals(Object,
1037 // Object). So we define these methods to help it.
1038 private static void assertEqualsExactType(int a, int b) {
1039 Assert.assertEquals(a, b);
1040 }
1041 private static void assertEqualsExactType(long a, long b) {
1042 Assert.assertEquals(a, b);
1043 }
1044 private static void assertEqualsExactType(float a, float b) {
1045 Assert.assertEquals(a, b, 0.0);
1046 }
1047 private static void assertEqualsExactType(double a, double b) {
1048 Assert.assertEquals(a, b, 0.0);
1049 }
1050 private static void assertEqualsExactType(boolean a, boolean b) {
1051 Assert.assertEquals(a, b);
1052 }
1053 private static void assertEqualsExactType(String a, String b) {
1054 Assert.assertEquals(a, b);
1055 }
1056 private static void assertEqualsExactType(ByteString a, ByteString b) {
1057 Assert.assertEquals(a, b);
1058 }
1059 private static void assertEqualsExactType(TestAllTypes.NestedEnum a,
1060 TestAllTypes.NestedEnum b) {
1061 Assert.assertEquals(a, b);
1062 }
1063 private static void assertEqualsExactType(ForeignEnum a, ForeignEnum b) {
1064 Assert.assertEquals(a, b);
1065 }
1066 private static void assertEqualsExactType(ImportEnum a, ImportEnum b) {
1067 Assert.assertEquals(a, b);
1068 }
1069 /**
1070 * Get an unmodifiable {@link ExtensionRegistry} containing all the
1071 * extensions of {@code TestAllExtensions}.
1072 */
1073 public static ExtensionRegistry getExtensionRegistry() {
1074 ExtensionRegistry registry = ExtensionRegistry.newInstance();
1075 registerAllExtensions(registry);
1076 return registry.getUnmodifiable();
1077 }
1078
1079
1080 /**
1081 * Register all of {@code TestAllExtensions}'s extensions with the
1082 * given {@link ExtensionRegistry}.
1083 */
1084 public static void registerAllExtensions(ExtensionRegistry registry) {
1085 UnittestProto.registerAllExtensions(registry);
1086 }
1087
1088
1089 /**
1090 * Set every field of {@code message} to the values expected by
1091 * {@code assertAllExtensionsSet()}.
1092 */
1093 public static void setAllExtensions(TestAllExtensions.Builder message) {
1094 message.setExtension(optionalInt32Extension , 101);
1095 message.setExtension(optionalInt64Extension , 102L);
1096 message.setExtension(optionalUint32Extension , 103);
1097 message.setExtension(optionalUint64Extension , 104L);
1098 message.setExtension(optionalSint32Extension , 105);
1099 message.setExtension(optionalSint64Extension , 106L);
1100 message.setExtension(optionalFixed32Extension , 107);
1101 message.setExtension(optionalFixed64Extension , 108L);
1102 message.setExtension(optionalSfixed32Extension, 109);
1103 message.setExtension(optionalSfixed64Extension, 110L);
1104 message.setExtension(optionalFloatExtension , 111F);
1105 message.setExtension(optionalDoubleExtension , 112D);
1106 message.setExtension(optionalBoolExtension , true);
1107 message.setExtension(optionalStringExtension , "115");
1108 message.setExtension(optionalBytesExtension , toBytes("116"));
1109
1110 message.setExtension(optionalGroupExtension,
1111 OptionalGroup_extension.newBuilder().setA(117).build());
1112 message.setExtension(optionalNestedMessageExtension,
1113 TestAllTypes.NestedMessage.newBuilder().setBb(118).build());
1114 message.setExtension(optionalForeignMessageExtension,
1115 ForeignMessage.newBuilder().setC(119).build());
1116 message.setExtension(optionalImportMessageExtension,
1117 ImportMessage.newBuilder().setD(120).build());
1118 message.setExtension(optionalPublicImportMessageExtension,
1119 PublicImportMessage.newBuilder().setE(126).build());
1120 message.setExtension(optionalLazyMessageExtension,
1121 TestAllTypes.NestedMessage.newBuilder().setBb(127).build());
1122
1123 message.setExtension(optionalNestedEnumExtension, TestAllTypes.NestedEnum.BA Z);
1124 message.setExtension(optionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ);
1125 message.setExtension(optionalImportEnumExtension, ImportEnum.IMPORT_BAZ);
1126
1127 message.setExtension(optionalStringPieceExtension, "124");
1128 message.setExtension(optionalCordExtension, "125");
1129
1130 // -----------------------------------------------------------------
1131
1132 message.addExtension(repeatedInt32Extension , 201);
1133 message.addExtension(repeatedInt64Extension , 202L);
1134 message.addExtension(repeatedUint32Extension , 203);
1135 message.addExtension(repeatedUint64Extension , 204L);
1136 message.addExtension(repeatedSint32Extension , 205);
1137 message.addExtension(repeatedSint64Extension , 206L);
1138 message.addExtension(repeatedFixed32Extension , 207);
1139 message.addExtension(repeatedFixed64Extension , 208L);
1140 message.addExtension(repeatedSfixed32Extension, 209);
1141 message.addExtension(repeatedSfixed64Extension, 210L);
1142 message.addExtension(repeatedFloatExtension , 211F);
1143 message.addExtension(repeatedDoubleExtension , 212D);
1144 message.addExtension(repeatedBoolExtension , true);
1145 message.addExtension(repeatedStringExtension , "215");
1146 message.addExtension(repeatedBytesExtension , toBytes("216"));
1147
1148 message.addExtension(repeatedGroupExtension,
1149 RepeatedGroup_extension.newBuilder().setA(217).build());
1150 message.addExtension(repeatedNestedMessageExtension,
1151 TestAllTypes.NestedMessage.newBuilder().setBb(218).build());
1152 message.addExtension(repeatedForeignMessageExtension,
1153 ForeignMessage.newBuilder().setC(219).build());
1154 message.addExtension(repeatedImportMessageExtension,
1155 ImportMessage.newBuilder().setD(220).build());
1156 message.addExtension(repeatedLazyMessageExtension,
1157 TestAllTypes.NestedMessage.newBuilder().setBb(227).build());
1158
1159 message.addExtension(repeatedNestedEnumExtension, TestAllTypes.NestedEnum.BA R);
1160 message.addExtension(repeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAR);
1161 message.addExtension(repeatedImportEnumExtension, ImportEnum.IMPORT_BAR);
1162
1163 message.addExtension(repeatedStringPieceExtension, "224");
1164 message.addExtension(repeatedCordExtension, "225");
1165
1166 // Add a second one of each field.
1167 message.addExtension(repeatedInt32Extension , 301);
1168 message.addExtension(repeatedInt64Extension , 302L);
1169 message.addExtension(repeatedUint32Extension , 303);
1170 message.addExtension(repeatedUint64Extension , 304L);
1171 message.addExtension(repeatedSint32Extension , 305);
1172 message.addExtension(repeatedSint64Extension , 306L);
1173 message.addExtension(repeatedFixed32Extension , 307);
1174 message.addExtension(repeatedFixed64Extension , 308L);
1175 message.addExtension(repeatedSfixed32Extension, 309);
1176 message.addExtension(repeatedSfixed64Extension, 310L);
1177 message.addExtension(repeatedFloatExtension , 311F);
1178 message.addExtension(repeatedDoubleExtension , 312D);
1179 message.addExtension(repeatedBoolExtension , false);
1180 message.addExtension(repeatedStringExtension , "315");
1181 message.addExtension(repeatedBytesExtension , toBytes("316"));
1182
1183 message.addExtension(repeatedGroupExtension,
1184 RepeatedGroup_extension.newBuilder().setA(317).build());
1185 message.addExtension(repeatedNestedMessageExtension,
1186 TestAllTypes.NestedMessage.newBuilder().setBb(318).build());
1187 message.addExtension(repeatedForeignMessageExtension,
1188 ForeignMessage.newBuilder().setC(319).build());
1189 message.addExtension(repeatedImportMessageExtension,
1190 ImportMessage.newBuilder().setD(320).build());
1191 message.addExtension(repeatedLazyMessageExtension,
1192 TestAllTypes.NestedMessage.newBuilder().setBb(327).build());
1193
1194 message.addExtension(repeatedNestedEnumExtension, TestAllTypes.NestedEnum.BA Z);
1195 message.addExtension(repeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ);
1196 message.addExtension(repeatedImportEnumExtension, ImportEnum.IMPORT_BAZ);
1197
1198 message.addExtension(repeatedStringPieceExtension, "324");
1199 message.addExtension(repeatedCordExtension, "325");
1200
1201 // -----------------------------------------------------------------
1202
1203 message.setExtension(defaultInt32Extension , 401);
1204 message.setExtension(defaultInt64Extension , 402L);
1205 message.setExtension(defaultUint32Extension , 403);
1206 message.setExtension(defaultUint64Extension , 404L);
1207 message.setExtension(defaultSint32Extension , 405);
1208 message.setExtension(defaultSint64Extension , 406L);
1209 message.setExtension(defaultFixed32Extension , 407);
1210 message.setExtension(defaultFixed64Extension , 408L);
1211 message.setExtension(defaultSfixed32Extension, 409);
1212 message.setExtension(defaultSfixed64Extension, 410L);
1213 message.setExtension(defaultFloatExtension , 411F);
1214 message.setExtension(defaultDoubleExtension , 412D);
1215 message.setExtension(defaultBoolExtension , false);
1216 message.setExtension(defaultStringExtension , "415");
1217 message.setExtension(defaultBytesExtension , toBytes("416"));
1218
1219 message.setExtension(defaultNestedEnumExtension, TestAllTypes.NestedEnum.FOO );
1220 message.setExtension(defaultForeignEnumExtension, ForeignEnum.FOREIGN_FOO);
1221 message.setExtension(defaultImportEnumExtension, ImportEnum.IMPORT_FOO);
1222
1223 message.setExtension(defaultStringPieceExtension, "424");
1224 message.setExtension(defaultCordExtension, "425");
1225 }
1226
1227 // -------------------------------------------------------------------
1228
1229 /**
1230 * Modify the repeated extensions of {@code message} to contain the values
1231 * expected by {@code assertRepeatedExtensionsModified()}.
1232 */
1233 public static void modifyRepeatedExtensions(
1234 TestAllExtensions.Builder message) {
1235 message.setExtension(repeatedInt32Extension , 1, 501);
1236 message.setExtension(repeatedInt64Extension , 1, 502L);
1237 message.setExtension(repeatedUint32Extension , 1, 503);
1238 message.setExtension(repeatedUint64Extension , 1, 504L);
1239 message.setExtension(repeatedSint32Extension , 1, 505);
1240 message.setExtension(repeatedSint64Extension , 1, 506L);
1241 message.setExtension(repeatedFixed32Extension , 1, 507);
1242 message.setExtension(repeatedFixed64Extension , 1, 508L);
1243 message.setExtension(repeatedSfixed32Extension, 1, 509);
1244 message.setExtension(repeatedSfixed64Extension, 1, 510L);
1245 message.setExtension(repeatedFloatExtension , 1, 511F);
1246 message.setExtension(repeatedDoubleExtension , 1, 512D);
1247 message.setExtension(repeatedBoolExtension , 1, true);
1248 message.setExtension(repeatedStringExtension , 1, "515");
1249 message.setExtension(repeatedBytesExtension , 1, toBytes("516"));
1250
1251 message.setExtension(repeatedGroupExtension, 1,
1252 RepeatedGroup_extension.newBuilder().setA(517).build());
1253 message.setExtension(repeatedNestedMessageExtension, 1,
1254 TestAllTypes.NestedMessage.newBuilder().setBb(518).build());
1255 message.setExtension(repeatedForeignMessageExtension, 1,
1256 ForeignMessage.newBuilder().setC(519).build());
1257 message.setExtension(repeatedImportMessageExtension, 1,
1258 ImportMessage.newBuilder().setD(520).build());
1259 message.setExtension(repeatedLazyMessageExtension, 1,
1260 TestAllTypes.NestedMessage.newBuilder().setBb(527).build());
1261
1262 message.setExtension(repeatedNestedEnumExtension , 1, TestAllTypes.NestedEnu m.FOO);
1263 message.setExtension(repeatedForeignEnumExtension, 1, ForeignEnum.FOREIGN_FO O);
1264 message.setExtension(repeatedImportEnumExtension , 1, ImportEnum.IMPORT_FOO) ;
1265
1266 message.setExtension(repeatedStringPieceExtension, 1, "524");
1267 message.setExtension(repeatedCordExtension, 1, "525");
1268 }
1269
1270 // -------------------------------------------------------------------
1271
1272 /**
1273 * Assert (using {@code junit.framework.Assert}} that all extensions of
1274 * {@code message} are set to the values assigned by {@code setAllExtensions}.
1275 */
1276 public static void assertAllExtensionsSet(
1277 TestAllExtensionsOrBuilder message) {
1278 Assert.assertTrue(message.hasExtension(optionalInt32Extension ));
1279 Assert.assertTrue(message.hasExtension(optionalInt64Extension ));
1280 Assert.assertTrue(message.hasExtension(optionalUint32Extension ));
1281 Assert.assertTrue(message.hasExtension(optionalUint64Extension ));
1282 Assert.assertTrue(message.hasExtension(optionalSint32Extension ));
1283 Assert.assertTrue(message.hasExtension(optionalSint64Extension ));
1284 Assert.assertTrue(message.hasExtension(optionalFixed32Extension ));
1285 Assert.assertTrue(message.hasExtension(optionalFixed64Extension ));
1286 Assert.assertTrue(message.hasExtension(optionalSfixed32Extension));
1287 Assert.assertTrue(message.hasExtension(optionalSfixed64Extension));
1288 Assert.assertTrue(message.hasExtension(optionalFloatExtension ));
1289 Assert.assertTrue(message.hasExtension(optionalDoubleExtension ));
1290 Assert.assertTrue(message.hasExtension(optionalBoolExtension ));
1291 Assert.assertTrue(message.hasExtension(optionalStringExtension ));
1292 Assert.assertTrue(message.hasExtension(optionalBytesExtension ));
1293
1294 Assert.assertTrue(message.hasExtension(optionalGroupExtension ));
1295 Assert.assertTrue(message.hasExtension(optionalNestedMessageExtension ));
1296 Assert.assertTrue(message.hasExtension(optionalForeignMessageExtension));
1297 Assert.assertTrue(message.hasExtension(optionalImportMessageExtension ));
1298
1299 Assert.assertTrue(message.getExtension(optionalGroupExtension ).hasA ());
1300 Assert.assertTrue(message.getExtension(optionalNestedMessageExtension ).hasB b());
1301 Assert.assertTrue(message.getExtension(optionalForeignMessageExtension).hasC ());
1302 Assert.assertTrue(message.getExtension(optionalImportMessageExtension ).hasD ());
1303
1304 Assert.assertTrue(message.hasExtension(optionalNestedEnumExtension ));
1305 Assert.assertTrue(message.hasExtension(optionalForeignEnumExtension));
1306 Assert.assertTrue(message.hasExtension(optionalImportEnumExtension ));
1307
1308 Assert.assertTrue(message.hasExtension(optionalStringPieceExtension));
1309 Assert.assertTrue(message.hasExtension(optionalCordExtension));
1310
1311 assertEqualsExactType(101 , message.getExtension(optionalInt32Extension ) );
1312 assertEqualsExactType(102L , message.getExtension(optionalInt64Extension ) );
1313 assertEqualsExactType(103 , message.getExtension(optionalUint32Extension ) );
1314 assertEqualsExactType(104L , message.getExtension(optionalUint64Extension ) );
1315 assertEqualsExactType(105 , message.getExtension(optionalSint32Extension ) );
1316 assertEqualsExactType(106L , message.getExtension(optionalSint64Extension ) );
1317 assertEqualsExactType(107 , message.getExtension(optionalFixed32Extension ) );
1318 assertEqualsExactType(108L , message.getExtension(optionalFixed64Extension ) );
1319 assertEqualsExactType(109 , message.getExtension(optionalSfixed32Extension) );
1320 assertEqualsExactType(110L , message.getExtension(optionalSfixed64Extension) );
1321 assertEqualsExactType(111F , message.getExtension(optionalFloatExtension ) );
1322 assertEqualsExactType(112D , message.getExtension(optionalDoubleExtension ) );
1323 assertEqualsExactType(true , message.getExtension(optionalBoolExtension ) );
1324 assertEqualsExactType("115", message.getExtension(optionalStringExtension ) );
1325 assertEqualsExactType(toBytes("116"), message.getExtension(optionalBytesExte nsion));
1326
1327 assertEqualsExactType(117, message.getExtension(optionalGroupExtension ).getA());
1328 assertEqualsExactType(118, message.getExtension(optionalNestedMessageExtensi on ).getBb());
1329 assertEqualsExactType(119, message.getExtension(optionalForeignMessageExtens ion ).getC());
1330 assertEqualsExactType(120, message.getExtension(optionalImportMessageExtensi on ).getD());
1331 assertEqualsExactType(126, message.getExtension(optionalPublicImportMessageE xtension).getE());
1332 assertEqualsExactType(127, message.getExtension(optionalLazyMessageExtension ).getBb());
1333
1334 assertEqualsExactType(TestAllTypes.NestedEnum.BAZ,
1335 message.getExtension(optionalNestedEnumExtension));
1336 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ,
1337 message.getExtension(optionalForeignEnumExtension));
1338 assertEqualsExactType(ImportEnum.IMPORT_BAZ,
1339 message.getExtension(optionalImportEnumExtension));
1340
1341 assertEqualsExactType("124", message.getExtension(optionalStringPieceExtensi on));
1342 assertEqualsExactType("125", message.getExtension(optionalCordExtension));
1343
1344 // -----------------------------------------------------------------
1345
1346 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32Extension )) ;
1347 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64Extension )) ;
1348 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32Extension )) ;
1349 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64Extension )) ;
1350 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32Extension )) ;
1351 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64Extension )) ;
1352 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32Extension )) ;
1353 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64Extension )) ;
1354 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32Extension)) ;
1355 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64Extension)) ;
1356 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtension )) ;
1357 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtension )) ;
1358 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtension )) ;
1359 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtension )) ;
1360 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtension )) ;
1361
1362 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtension ));
1363 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtens ion ));
1364 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExten sion));
1365 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtens ion ));
1366 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtensio n ));
1367 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtension ));
1368 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtensio n ));
1369 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtension ));
1370
1371 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtensio n));
1372 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtension));
1373
1374 assertEqualsExactType(201 , message.getExtension(repeatedInt32Extension , 0));
1375 assertEqualsExactType(202L , message.getExtension(repeatedInt64Extension , 0));
1376 assertEqualsExactType(203 , message.getExtension(repeatedUint32Extension , 0));
1377 assertEqualsExactType(204L , message.getExtension(repeatedUint64Extension , 0));
1378 assertEqualsExactType(205 , message.getExtension(repeatedSint32Extension , 0));
1379 assertEqualsExactType(206L , message.getExtension(repeatedSint64Extension , 0));
1380 assertEqualsExactType(207 , message.getExtension(repeatedFixed32Extension , 0));
1381 assertEqualsExactType(208L , message.getExtension(repeatedFixed64Extension , 0));
1382 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32Extension, 0));
1383 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64Extension, 0));
1384 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtension , 0));
1385 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtension , 0));
1386 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 0));
1387 assertEqualsExactType("215", message.getExtension(repeatedStringExtension , 0));
1388 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExte nsion, 0));
1389
1390 assertEqualsExactType(217, message.getExtension(repeatedGroupExtension , 0).getA());
1391 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtensi on , 0).getBb());
1392 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtens ion, 0).getC());
1393 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtensi on , 0).getD());
1394 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtension , 0).getBb());
1395
1396 assertEqualsExactType(TestAllTypes.NestedEnum.BAR,
1397 message.getExtension(repeatedNestedEnumExtension, 0));
1398 assertEqualsExactType(ForeignEnum.FOREIGN_BAR,
1399 message.getExtension(repeatedForeignEnumExtension, 0));
1400 assertEqualsExactType(ImportEnum.IMPORT_BAR,
1401 message.getExtension(repeatedImportEnumExtension, 0));
1402
1403 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtensi on, 0));
1404 assertEqualsExactType("225", message.getExtension(repeatedCordExtension, 0)) ;
1405
1406 assertEqualsExactType(301 , message.getExtension(repeatedInt32Extension , 1));
1407 assertEqualsExactType(302L , message.getExtension(repeatedInt64Extension , 1));
1408 assertEqualsExactType(303 , message.getExtension(repeatedUint32Extension , 1));
1409 assertEqualsExactType(304L , message.getExtension(repeatedUint64Extension , 1));
1410 assertEqualsExactType(305 , message.getExtension(repeatedSint32Extension , 1));
1411 assertEqualsExactType(306L , message.getExtension(repeatedSint64Extension , 1));
1412 assertEqualsExactType(307 , message.getExtension(repeatedFixed32Extension , 1));
1413 assertEqualsExactType(308L , message.getExtension(repeatedFixed64Extension , 1));
1414 assertEqualsExactType(309 , message.getExtension(repeatedSfixed32Extension, 1));
1415 assertEqualsExactType(310L , message.getExtension(repeatedSfixed64Extension, 1));
1416 assertEqualsExactType(311F , message.getExtension(repeatedFloatExtension , 1));
1417 assertEqualsExactType(312D , message.getExtension(repeatedDoubleExtension , 1));
1418 assertEqualsExactType(false, message.getExtension(repeatedBoolExtension , 1));
1419 assertEqualsExactType("315", message.getExtension(repeatedStringExtension , 1));
1420 assertEqualsExactType(toBytes("316"), message.getExtension(repeatedBytesExte nsion, 1));
1421
1422 assertEqualsExactType(317, message.getExtension(repeatedGroupExtension , 1).getA());
1423 assertEqualsExactType(318, message.getExtension(repeatedNestedMessageExtensi on , 1).getBb());
1424 assertEqualsExactType(319, message.getExtension(repeatedForeignMessageExtens ion, 1).getC());
1425 assertEqualsExactType(320, message.getExtension(repeatedImportMessageExtensi on , 1).getD());
1426 assertEqualsExactType(327, message.getExtension(repeatedLazyMessageExtension , 1).getBb());
1427
1428 assertEqualsExactType(TestAllTypes.NestedEnum.BAZ,
1429 message.getExtension(repeatedNestedEnumExtension, 1));
1430 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ,
1431 message.getExtension(repeatedForeignEnumExtension, 1));
1432 assertEqualsExactType(ImportEnum.IMPORT_BAZ,
1433 message.getExtension(repeatedImportEnumExtension, 1));
1434
1435 assertEqualsExactType("324", message.getExtension(repeatedStringPieceExtensi on, 1));
1436 assertEqualsExactType("325", message.getExtension(repeatedCordExtension, 1)) ;
1437
1438 // -----------------------------------------------------------------
1439
1440 Assert.assertTrue(message.hasExtension(defaultInt32Extension ));
1441 Assert.assertTrue(message.hasExtension(defaultInt64Extension ));
1442 Assert.assertTrue(message.hasExtension(defaultUint32Extension ));
1443 Assert.assertTrue(message.hasExtension(defaultUint64Extension ));
1444 Assert.assertTrue(message.hasExtension(defaultSint32Extension ));
1445 Assert.assertTrue(message.hasExtension(defaultSint64Extension ));
1446 Assert.assertTrue(message.hasExtension(defaultFixed32Extension ));
1447 Assert.assertTrue(message.hasExtension(defaultFixed64Extension ));
1448 Assert.assertTrue(message.hasExtension(defaultSfixed32Extension));
1449 Assert.assertTrue(message.hasExtension(defaultSfixed64Extension));
1450 Assert.assertTrue(message.hasExtension(defaultFloatExtension ));
1451 Assert.assertTrue(message.hasExtension(defaultDoubleExtension ));
1452 Assert.assertTrue(message.hasExtension(defaultBoolExtension ));
1453 Assert.assertTrue(message.hasExtension(defaultStringExtension ));
1454 Assert.assertTrue(message.hasExtension(defaultBytesExtension ));
1455
1456 Assert.assertTrue(message.hasExtension(defaultNestedEnumExtension ));
1457 Assert.assertTrue(message.hasExtension(defaultForeignEnumExtension));
1458 Assert.assertTrue(message.hasExtension(defaultImportEnumExtension ));
1459
1460 Assert.assertTrue(message.hasExtension(defaultStringPieceExtension));
1461 Assert.assertTrue(message.hasExtension(defaultCordExtension));
1462
1463 assertEqualsExactType(401 , message.getExtension(defaultInt32Extension )) ;
1464 assertEqualsExactType(402L , message.getExtension(defaultInt64Extension )) ;
1465 assertEqualsExactType(403 , message.getExtension(defaultUint32Extension )) ;
1466 assertEqualsExactType(404L , message.getExtension(defaultUint64Extension )) ;
1467 assertEqualsExactType(405 , message.getExtension(defaultSint32Extension )) ;
1468 assertEqualsExactType(406L , message.getExtension(defaultSint64Extension )) ;
1469 assertEqualsExactType(407 , message.getExtension(defaultFixed32Extension )) ;
1470 assertEqualsExactType(408L , message.getExtension(defaultFixed64Extension )) ;
1471 assertEqualsExactType(409 , message.getExtension(defaultSfixed32Extension)) ;
1472 assertEqualsExactType(410L , message.getExtension(defaultSfixed64Extension)) ;
1473 assertEqualsExactType(411F , message.getExtension(defaultFloatExtension )) ;
1474 assertEqualsExactType(412D , message.getExtension(defaultDoubleExtension )) ;
1475 assertEqualsExactType(false, message.getExtension(defaultBoolExtension )) ;
1476 assertEqualsExactType("415", message.getExtension(defaultStringExtension )) ;
1477 assertEqualsExactType(toBytes("416"), message.getExtension(defaultBytesExten sion));
1478
1479 assertEqualsExactType(TestAllTypes.NestedEnum.FOO,
1480 message.getExtension(defaultNestedEnumExtension ));
1481 assertEqualsExactType(ForeignEnum.FOREIGN_FOO,
1482 message.getExtension(defaultForeignEnumExtension));
1483 assertEqualsExactType(ImportEnum.IMPORT_FOO,
1484 message.getExtension(defaultImportEnumExtension));
1485
1486 assertEqualsExactType("424", message.getExtension(defaultStringPieceExtensio n));
1487 assertEqualsExactType("425", message.getExtension(defaultCordExtension));
1488 }
1489
1490 // -------------------------------------------------------------------
1491
1492 /**
1493 * Assert (using {@code junit.framework.Assert}} that all extensions of
1494 * {@code message} are cleared, and that getting the extensions returns their
1495 * default values.
1496 */
1497 public static void assertExtensionsClear(TestAllExtensionsOrBuilder message) {
1498 // hasBlah() should initially be false for all optional fields.
1499 Assert.assertFalse(message.hasExtension(optionalInt32Extension ));
1500 Assert.assertFalse(message.hasExtension(optionalInt64Extension ));
1501 Assert.assertFalse(message.hasExtension(optionalUint32Extension ));
1502 Assert.assertFalse(message.hasExtension(optionalUint64Extension ));
1503 Assert.assertFalse(message.hasExtension(optionalSint32Extension ));
1504 Assert.assertFalse(message.hasExtension(optionalSint64Extension ));
1505 Assert.assertFalse(message.hasExtension(optionalFixed32Extension ));
1506 Assert.assertFalse(message.hasExtension(optionalFixed64Extension ));
1507 Assert.assertFalse(message.hasExtension(optionalSfixed32Extension));
1508 Assert.assertFalse(message.hasExtension(optionalSfixed64Extension));
1509 Assert.assertFalse(message.hasExtension(optionalFloatExtension ));
1510 Assert.assertFalse(message.hasExtension(optionalDoubleExtension ));
1511 Assert.assertFalse(message.hasExtension(optionalBoolExtension ));
1512 Assert.assertFalse(message.hasExtension(optionalStringExtension ));
1513 Assert.assertFalse(message.hasExtension(optionalBytesExtension ));
1514
1515 Assert.assertFalse(message.hasExtension(optionalGroupExtension ));
1516 Assert.assertFalse(message.hasExtension(optionalNestedMessageExtension ));
1517 Assert.assertFalse(message.hasExtension(optionalForeignMessageExtension));
1518 Assert.assertFalse(message.hasExtension(optionalImportMessageExtension ));
1519
1520 Assert.assertFalse(message.hasExtension(optionalNestedEnumExtension ));
1521 Assert.assertFalse(message.hasExtension(optionalForeignEnumExtension));
1522 Assert.assertFalse(message.hasExtension(optionalImportEnumExtension ));
1523
1524 Assert.assertFalse(message.hasExtension(optionalStringPieceExtension));
1525 Assert.assertFalse(message.hasExtension(optionalCordExtension));
1526
1527 // Optional fields without defaults are set to zero or something like it.
1528 assertEqualsExactType(0 , message.getExtension(optionalInt32Extension ) );
1529 assertEqualsExactType(0L , message.getExtension(optionalInt64Extension ) );
1530 assertEqualsExactType(0 , message.getExtension(optionalUint32Extension ) );
1531 assertEqualsExactType(0L , message.getExtension(optionalUint64Extension ) );
1532 assertEqualsExactType(0 , message.getExtension(optionalSint32Extension ) );
1533 assertEqualsExactType(0L , message.getExtension(optionalSint64Extension ) );
1534 assertEqualsExactType(0 , message.getExtension(optionalFixed32Extension ) );
1535 assertEqualsExactType(0L , message.getExtension(optionalFixed64Extension ) );
1536 assertEqualsExactType(0 , message.getExtension(optionalSfixed32Extension) );
1537 assertEqualsExactType(0L , message.getExtension(optionalSfixed64Extension) );
1538 assertEqualsExactType(0F , message.getExtension(optionalFloatExtension ) );
1539 assertEqualsExactType(0D , message.getExtension(optionalDoubleExtension ) );
1540 assertEqualsExactType(false, message.getExtension(optionalBoolExtension ) );
1541 assertEqualsExactType("" , message.getExtension(optionalStringExtension ) );
1542 assertEqualsExactType(ByteString.EMPTY, message.getExtension(optionalBytesEx tension));
1543
1544 // Embedded messages should also be clear.
1545 Assert.assertFalse(message.getExtension(optionalGroupExtension ).has A());
1546 Assert.assertFalse(message.getExtension(optionalNestedMessageExtension ).has Bb());
1547 Assert.assertFalse(message.getExtension(optionalForeignMessageExtension).has C());
1548 Assert.assertFalse(message.getExtension(optionalImportMessageExtension ).has D());
1549
1550 assertEqualsExactType(0, message.getExtension(optionalGroupExtension ).getA());
1551 assertEqualsExactType(0, message.getExtension(optionalNestedMessageExtension ).getBb());
1552 assertEqualsExactType(0, message.getExtension(optionalForeignMessageExtensio n).getC());
1553 assertEqualsExactType(0, message.getExtension(optionalImportMessageExtension ).getD());
1554
1555 // Enums without defaults are set to the first value in the enum.
1556 assertEqualsExactType(TestAllTypes.NestedEnum.FOO,
1557 message.getExtension(optionalNestedEnumExtension ));
1558 assertEqualsExactType(ForeignEnum.FOREIGN_FOO,
1559 message.getExtension(optionalForeignEnumExtension));
1560 assertEqualsExactType(ImportEnum.IMPORT_FOO,
1561 message.getExtension(optionalImportEnumExtension));
1562
1563 assertEqualsExactType("", message.getExtension(optionalStringPieceExtension) );
1564 assertEqualsExactType("", message.getExtension(optionalCordExtension));
1565
1566 // Repeated fields are empty.
1567 Assert.assertEquals(0, message.getExtensionCount(repeatedInt32Extension )) ;
1568 Assert.assertEquals(0, message.getExtensionCount(repeatedInt64Extension )) ;
1569 Assert.assertEquals(0, message.getExtensionCount(repeatedUint32Extension )) ;
1570 Assert.assertEquals(0, message.getExtensionCount(repeatedUint64Extension )) ;
1571 Assert.assertEquals(0, message.getExtensionCount(repeatedSint32Extension )) ;
1572 Assert.assertEquals(0, message.getExtensionCount(repeatedSint64Extension )) ;
1573 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed32Extension )) ;
1574 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed64Extension )) ;
1575 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed32Extension)) ;
1576 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed64Extension)) ;
1577 Assert.assertEquals(0, message.getExtensionCount(repeatedFloatExtension )) ;
1578 Assert.assertEquals(0, message.getExtensionCount(repeatedDoubleExtension )) ;
1579 Assert.assertEquals(0, message.getExtensionCount(repeatedBoolExtension )) ;
1580 Assert.assertEquals(0, message.getExtensionCount(repeatedStringExtension )) ;
1581 Assert.assertEquals(0, message.getExtensionCount(repeatedBytesExtension )) ;
1582
1583 Assert.assertEquals(0, message.getExtensionCount(repeatedGroupExtension ));
1584 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedMessageExtens ion ));
1585 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignMessageExten sion));
1586 Assert.assertEquals(0, message.getExtensionCount(repeatedImportMessageExtens ion ));
1587 Assert.assertEquals(0, message.getExtensionCount(repeatedLazyMessageExtensio n ));
1588 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedEnumExtension ));
1589 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignEnumExtensio n ));
1590 Assert.assertEquals(0, message.getExtensionCount(repeatedImportEnumExtension ));
1591
1592 Assert.assertEquals(0, message.getExtensionCount(repeatedStringPieceExtensio n));
1593 Assert.assertEquals(0, message.getExtensionCount(repeatedCordExtension));
1594
1595 // Repeated fields are empty via getExtension().size().
1596 Assert.assertEquals(0, message.getExtension(repeatedInt32Extension ).size( ));
1597 Assert.assertEquals(0, message.getExtension(repeatedInt64Extension ).size( ));
1598 Assert.assertEquals(0, message.getExtension(repeatedUint32Extension ).size( ));
1599 Assert.assertEquals(0, message.getExtension(repeatedUint64Extension ).size( ));
1600 Assert.assertEquals(0, message.getExtension(repeatedSint32Extension ).size( ));
1601 Assert.assertEquals(0, message.getExtension(repeatedSint64Extension ).size( ));
1602 Assert.assertEquals(0, message.getExtension(repeatedFixed32Extension ).size( ));
1603 Assert.assertEquals(0, message.getExtension(repeatedFixed64Extension ).size( ));
1604 Assert.assertEquals(0, message.getExtension(repeatedSfixed32Extension).size( ));
1605 Assert.assertEquals(0, message.getExtension(repeatedSfixed64Extension).size( ));
1606 Assert.assertEquals(0, message.getExtension(repeatedFloatExtension ).size( ));
1607 Assert.assertEquals(0, message.getExtension(repeatedDoubleExtension ).size( ));
1608 Assert.assertEquals(0, message.getExtension(repeatedBoolExtension ).size( ));
1609 Assert.assertEquals(0, message.getExtension(repeatedStringExtension ).size( ));
1610 Assert.assertEquals(0, message.getExtension(repeatedBytesExtension ).size( ));
1611
1612 Assert.assertEquals(0, message.getExtension(repeatedGroupExtension ) .size());
1613 Assert.assertEquals(0, message.getExtension(repeatedNestedMessageExtension ) .size());
1614 Assert.assertEquals(0, message.getExtension(repeatedForeignMessageExtension) .size());
1615 Assert.assertEquals(0, message.getExtension(repeatedImportMessageExtension ) .size());
1616 Assert.assertEquals(0, message.getExtension(repeatedLazyMessageExtension ) .size());
1617 Assert.assertEquals(0, message.getExtension(repeatedNestedEnumExtension ) .size());
1618 Assert.assertEquals(0, message.getExtension(repeatedForeignEnumExtension ) .size());
1619 Assert.assertEquals(0, message.getExtension(repeatedImportEnumExtension ) .size());
1620
1621 Assert.assertEquals(0, message.getExtension(repeatedStringPieceExtension).si ze());
1622 Assert.assertEquals(0, message.getExtension(repeatedCordExtension).size());
1623
1624 // hasBlah() should also be false for all default fields.
1625 Assert.assertFalse(message.hasExtension(defaultInt32Extension ));
1626 Assert.assertFalse(message.hasExtension(defaultInt64Extension ));
1627 Assert.assertFalse(message.hasExtension(defaultUint32Extension ));
1628 Assert.assertFalse(message.hasExtension(defaultUint64Extension ));
1629 Assert.assertFalse(message.hasExtension(defaultSint32Extension ));
1630 Assert.assertFalse(message.hasExtension(defaultSint64Extension ));
1631 Assert.assertFalse(message.hasExtension(defaultFixed32Extension ));
1632 Assert.assertFalse(message.hasExtension(defaultFixed64Extension ));
1633 Assert.assertFalse(message.hasExtension(defaultSfixed32Extension));
1634 Assert.assertFalse(message.hasExtension(defaultSfixed64Extension));
1635 Assert.assertFalse(message.hasExtension(defaultFloatExtension ));
1636 Assert.assertFalse(message.hasExtension(defaultDoubleExtension ));
1637 Assert.assertFalse(message.hasExtension(defaultBoolExtension ));
1638 Assert.assertFalse(message.hasExtension(defaultStringExtension ));
1639 Assert.assertFalse(message.hasExtension(defaultBytesExtension ));
1640
1641 Assert.assertFalse(message.hasExtension(defaultNestedEnumExtension ));
1642 Assert.assertFalse(message.hasExtension(defaultForeignEnumExtension));
1643 Assert.assertFalse(message.hasExtension(defaultImportEnumExtension ));
1644
1645 Assert.assertFalse(message.hasExtension(defaultStringPieceExtension));
1646 Assert.assertFalse(message.hasExtension(defaultCordExtension));
1647
1648 // Fields with defaults have their default values (duh).
1649 assertEqualsExactType( 41 , message.getExtension(defaultInt32Extension ));
1650 assertEqualsExactType( 42L , message.getExtension(defaultInt64Extension ));
1651 assertEqualsExactType( 43 , message.getExtension(defaultUint32Extension ));
1652 assertEqualsExactType( 44L , message.getExtension(defaultUint64Extension ));
1653 assertEqualsExactType(-45 , message.getExtension(defaultSint32Extension ));
1654 assertEqualsExactType( 46L , message.getExtension(defaultSint64Extension ));
1655 assertEqualsExactType( 47 , message.getExtension(defaultFixed32Extension ));
1656 assertEqualsExactType( 48L , message.getExtension(defaultFixed64Extension ));
1657 assertEqualsExactType( 49 , message.getExtension(defaultSfixed32Extension ));
1658 assertEqualsExactType(-50L , message.getExtension(defaultSfixed64Extension ));
1659 assertEqualsExactType( 51.5F , message.getExtension(defaultFloatExtension ));
1660 assertEqualsExactType( 52e3D , message.getExtension(defaultDoubleExtension ));
1661 assertEqualsExactType(true , message.getExtension(defaultBoolExtension ));
1662 assertEqualsExactType("hello", message.getExtension(defaultStringExtension ));
1663 assertEqualsExactType(toBytes("world"), message.getExtension(defaultBytesExt ension));
1664
1665 assertEqualsExactType(TestAllTypes.NestedEnum.BAR,
1666 message.getExtension(defaultNestedEnumExtension ));
1667 assertEqualsExactType(ForeignEnum.FOREIGN_BAR,
1668 message.getExtension(defaultForeignEnumExtension));
1669 assertEqualsExactType(ImportEnum.IMPORT_BAR,
1670 message.getExtension(defaultImportEnumExtension));
1671
1672 assertEqualsExactType("abc", message.getExtension(defaultStringPieceExtensio n));
1673 assertEqualsExactType("123", message.getExtension(defaultCordExtension));
1674 }
1675
1676 // -------------------------------------------------------------------
1677
1678 /**
1679 * Assert (using {@code junit.framework.Assert}} that all extensions of
1680 * {@code message} are set to the values assigned by {@code setAllExtensions}
1681 * followed by {@code modifyRepeatedExtensions}.
1682 */
1683 public static void assertRepeatedExtensionsModified(
1684 TestAllExtensionsOrBuilder message) {
1685 // ModifyRepeatedFields only sets the second repeated element of each
1686 // field. In addition to verifying this, we also verify that the first
1687 // element and size were *not* modified.
1688 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32Extension )) ;
1689 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64Extension )) ;
1690 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32Extension )) ;
1691 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64Extension )) ;
1692 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32Extension )) ;
1693 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64Extension )) ;
1694 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32Extension )) ;
1695 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64Extension )) ;
1696 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32Extension)) ;
1697 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64Extension)) ;
1698 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtension )) ;
1699 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtension )) ;
1700 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtension )) ;
1701 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtension )) ;
1702 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtension )) ;
1703
1704 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtension ));
1705 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtens ion ));
1706 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExten sion));
1707 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtens ion ));
1708 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtensio n ));
1709 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtension ));
1710 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtensio n ));
1711 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtension ));
1712
1713 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtensio n));
1714 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtension));
1715
1716 assertEqualsExactType(201 , message.getExtension(repeatedInt32Extension , 0));
1717 assertEqualsExactType(202L , message.getExtension(repeatedInt64Extension , 0));
1718 assertEqualsExactType(203 , message.getExtension(repeatedUint32Extension , 0));
1719 assertEqualsExactType(204L , message.getExtension(repeatedUint64Extension , 0));
1720 assertEqualsExactType(205 , message.getExtension(repeatedSint32Extension , 0));
1721 assertEqualsExactType(206L , message.getExtension(repeatedSint64Extension , 0));
1722 assertEqualsExactType(207 , message.getExtension(repeatedFixed32Extension , 0));
1723 assertEqualsExactType(208L , message.getExtension(repeatedFixed64Extension , 0));
1724 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32Extension, 0));
1725 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64Extension, 0));
1726 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtension , 0));
1727 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtension , 0));
1728 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 0));
1729 assertEqualsExactType("215", message.getExtension(repeatedStringExtension , 0));
1730 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExte nsion, 0));
1731
1732 assertEqualsExactType(217, message.getExtension(repeatedGroupExtension , 0).getA());
1733 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtensi on , 0).getBb());
1734 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtens ion, 0).getC());
1735 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtensi on , 0).getD());
1736 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtension , 0).getBb());
1737
1738 assertEqualsExactType(TestAllTypes.NestedEnum.BAR,
1739 message.getExtension(repeatedNestedEnumExtension, 0));
1740 assertEqualsExactType(ForeignEnum.FOREIGN_BAR,
1741 message.getExtension(repeatedForeignEnumExtension, 0));
1742 assertEqualsExactType(ImportEnum.IMPORT_BAR,
1743 message.getExtension(repeatedImportEnumExtension, 0));
1744
1745 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtensi on, 0));
1746 assertEqualsExactType("225", message.getExtension(repeatedCordExtension, 0)) ;
1747
1748 // Actually verify the second (modified) elements now.
1749 assertEqualsExactType(501 , message.getExtension(repeatedInt32Extension , 1));
1750 assertEqualsExactType(502L , message.getExtension(repeatedInt64Extension , 1));
1751 assertEqualsExactType(503 , message.getExtension(repeatedUint32Extension , 1));
1752 assertEqualsExactType(504L , message.getExtension(repeatedUint64Extension , 1));
1753 assertEqualsExactType(505 , message.getExtension(repeatedSint32Extension , 1));
1754 assertEqualsExactType(506L , message.getExtension(repeatedSint64Extension , 1));
1755 assertEqualsExactType(507 , message.getExtension(repeatedFixed32Extension , 1));
1756 assertEqualsExactType(508L , message.getExtension(repeatedFixed64Extension , 1));
1757 assertEqualsExactType(509 , message.getExtension(repeatedSfixed32Extension, 1));
1758 assertEqualsExactType(510L , message.getExtension(repeatedSfixed64Extension, 1));
1759 assertEqualsExactType(511F , message.getExtension(repeatedFloatExtension , 1));
1760 assertEqualsExactType(512D , message.getExtension(repeatedDoubleExtension , 1));
1761 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 1));
1762 assertEqualsExactType("515", message.getExtension(repeatedStringExtension , 1));
1763 assertEqualsExactType(toBytes("516"), message.getExtension(repeatedBytesExte nsion, 1));
1764
1765 assertEqualsExactType(517, message.getExtension(repeatedGroupExtension , 1).getA());
1766 assertEqualsExactType(518, message.getExtension(repeatedNestedMessageExtensi on , 1).getBb());
1767 assertEqualsExactType(519, message.getExtension(repeatedForeignMessageExtens ion, 1).getC());
1768 assertEqualsExactType(520, message.getExtension(repeatedImportMessageExtensi on , 1).getD());
1769 assertEqualsExactType(527, message.getExtension(repeatedLazyMessageExtension , 1).getBb());
1770
1771 assertEqualsExactType(TestAllTypes.NestedEnum.FOO,
1772 message.getExtension(repeatedNestedEnumExtension, 1));
1773 assertEqualsExactType(ForeignEnum.FOREIGN_FOO,
1774 message.getExtension(repeatedForeignEnumExtension, 1));
1775 assertEqualsExactType(ImportEnum.IMPORT_FOO,
1776 message.getExtension(repeatedImportEnumExtension, 1));
1777
1778 assertEqualsExactType("524", message.getExtension(repeatedStringPieceExtensi on, 1));
1779 assertEqualsExactType("525", message.getExtension(repeatedCordExtension, 1)) ;
1780 }
1781
1782 public static void setPackedExtensions(TestPackedExtensions.Builder message) {
1783 message.addExtension(packedInt32Extension , 601);
1784 message.addExtension(packedInt64Extension , 602L);
1785 message.addExtension(packedUint32Extension , 603);
1786 message.addExtension(packedUint64Extension , 604L);
1787 message.addExtension(packedSint32Extension , 605);
1788 message.addExtension(packedSint64Extension , 606L);
1789 message.addExtension(packedFixed32Extension , 607);
1790 message.addExtension(packedFixed64Extension , 608L);
1791 message.addExtension(packedSfixed32Extension, 609);
1792 message.addExtension(packedSfixed64Extension, 610L);
1793 message.addExtension(packedFloatExtension , 611F);
1794 message.addExtension(packedDoubleExtension , 612D);
1795 message.addExtension(packedBoolExtension , true);
1796 message.addExtension(packedEnumExtension, ForeignEnum.FOREIGN_BAR);
1797 // Add a second one of each field.
1798 message.addExtension(packedInt32Extension , 701);
1799 message.addExtension(packedInt64Extension , 702L);
1800 message.addExtension(packedUint32Extension , 703);
1801 message.addExtension(packedUint64Extension , 704L);
1802 message.addExtension(packedSint32Extension , 705);
1803 message.addExtension(packedSint64Extension , 706L);
1804 message.addExtension(packedFixed32Extension , 707);
1805 message.addExtension(packedFixed64Extension , 708L);
1806 message.addExtension(packedSfixed32Extension, 709);
1807 message.addExtension(packedSfixed64Extension, 710L);
1808 message.addExtension(packedFloatExtension , 711F);
1809 message.addExtension(packedDoubleExtension , 712D);
1810 message.addExtension(packedBoolExtension , false);
1811 message.addExtension(packedEnumExtension, ForeignEnum.FOREIGN_BAZ);
1812 }
1813
1814 public static void assertPackedExtensionsSet(TestPackedExtensions message) {
1815 Assert.assertEquals(2, message.getExtensionCount(packedInt32Extension ));
1816 Assert.assertEquals(2, message.getExtensionCount(packedInt64Extension ));
1817 Assert.assertEquals(2, message.getExtensionCount(packedUint32Extension ));
1818 Assert.assertEquals(2, message.getExtensionCount(packedUint64Extension ));
1819 Assert.assertEquals(2, message.getExtensionCount(packedSint32Extension ));
1820 Assert.assertEquals(2, message.getExtensionCount(packedSint64Extension ));
1821 Assert.assertEquals(2, message.getExtensionCount(packedFixed32Extension ));
1822 Assert.assertEquals(2, message.getExtensionCount(packedFixed64Extension ));
1823 Assert.assertEquals(2, message.getExtensionCount(packedSfixed32Extension));
1824 Assert.assertEquals(2, message.getExtensionCount(packedSfixed64Extension));
1825 Assert.assertEquals(2, message.getExtensionCount(packedFloatExtension ));
1826 Assert.assertEquals(2, message.getExtensionCount(packedDoubleExtension ));
1827 Assert.assertEquals(2, message.getExtensionCount(packedBoolExtension ));
1828 Assert.assertEquals(2, message.getExtensionCount(packedEnumExtension));
1829 assertEqualsExactType(601 , message.getExtension(packedInt32Extension , 0 ));
1830 assertEqualsExactType(602L , message.getExtension(packedInt64Extension , 0 ));
1831 assertEqualsExactType(603 , message.getExtension(packedUint32Extension , 0 ));
1832 assertEqualsExactType(604L , message.getExtension(packedUint64Extension , 0 ));
1833 assertEqualsExactType(605 , message.getExtension(packedSint32Extension , 0 ));
1834 assertEqualsExactType(606L , message.getExtension(packedSint64Extension , 0 ));
1835 assertEqualsExactType(607 , message.getExtension(packedFixed32Extension , 0 ));
1836 assertEqualsExactType(608L , message.getExtension(packedFixed64Extension , 0 ));
1837 assertEqualsExactType(609 , message.getExtension(packedSfixed32Extension, 0 ));
1838 assertEqualsExactType(610L , message.getExtension(packedSfixed64Extension, 0 ));
1839 assertEqualsExactType(611F , message.getExtension(packedFloatExtension , 0 ));
1840 assertEqualsExactType(612D , message.getExtension(packedDoubleExtension , 0 ));
1841 assertEqualsExactType(true , message.getExtension(packedBoolExtension , 0 ));
1842 assertEqualsExactType(ForeignEnum.FOREIGN_BAR,
1843 message.getExtension(packedEnumExtension, 0));
1844 assertEqualsExactType(701 , message.getExtension(packedInt32Extension , 1 ));
1845 assertEqualsExactType(702L , message.getExtension(packedInt64Extension , 1 ));
1846 assertEqualsExactType(703 , message.getExtension(packedUint32Extension , 1 ));
1847 assertEqualsExactType(704L , message.getExtension(packedUint64Extension , 1 ));
1848 assertEqualsExactType(705 , message.getExtension(packedSint32Extension , 1 ));
1849 assertEqualsExactType(706L , message.getExtension(packedSint64Extension , 1 ));
1850 assertEqualsExactType(707 , message.getExtension(packedFixed32Extension , 1 ));
1851 assertEqualsExactType(708L , message.getExtension(packedFixed64Extension , 1 ));
1852 assertEqualsExactType(709 , message.getExtension(packedSfixed32Extension, 1 ));
1853 assertEqualsExactType(710L , message.getExtension(packedSfixed64Extension, 1 ));
1854 assertEqualsExactType(711F , message.getExtension(packedFloatExtension , 1 ));
1855 assertEqualsExactType(712D , message.getExtension(packedDoubleExtension , 1 ));
1856 assertEqualsExactType(false, message.getExtension(packedBoolExtension , 1 ));
1857 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ,
1858 message.getExtension(packedEnumExtension, 1));
1859 }
1860
1861 // =================================================================
1862
1863 /**
1864 * Performs the same things that the methods of {@code TestUtil} do, but
1865 * via the reflection interface. This is its own class because it needs
1866 * to know what descriptor to use.
1867 */
1868 public static class ReflectionTester {
1869 private final Descriptors.Descriptor baseDescriptor;
1870 private final ExtensionRegistry extensionRegistry;
1871
1872 private final Descriptors.FileDescriptor file;
1873 private final Descriptors.FileDescriptor importFile;
1874 private final Descriptors.FileDescriptor publicImportFile;
1875
1876 private final Descriptors.Descriptor optionalGroup;
1877 private final Descriptors.Descriptor repeatedGroup;
1878 private final Descriptors.Descriptor nestedMessage;
1879 private final Descriptors.Descriptor foreignMessage;
1880 private final Descriptors.Descriptor importMessage;
1881 private final Descriptors.Descriptor publicImportMessage;
1882
1883 private final Descriptors.FieldDescriptor groupA;
1884 private final Descriptors.FieldDescriptor repeatedGroupA;
1885 private final Descriptors.FieldDescriptor nestedB;
1886 private final Descriptors.FieldDescriptor foreignC;
1887 private final Descriptors.FieldDescriptor importD;
1888 private final Descriptors.FieldDescriptor importE;
1889
1890 private final Descriptors.EnumDescriptor nestedEnum;
1891 private final Descriptors.EnumDescriptor foreignEnum;
1892 private final Descriptors.EnumDescriptor importEnum;
1893
1894 private final Descriptors.EnumValueDescriptor nestedFoo;
1895 private final Descriptors.EnumValueDescriptor nestedBar;
1896 private final Descriptors.EnumValueDescriptor nestedBaz;
1897 private final Descriptors.EnumValueDescriptor foreignFoo;
1898 private final Descriptors.EnumValueDescriptor foreignBar;
1899 private final Descriptors.EnumValueDescriptor foreignBaz;
1900 private final Descriptors.EnumValueDescriptor importFoo;
1901 private final Descriptors.EnumValueDescriptor importBar;
1902 private final Descriptors.EnumValueDescriptor importBaz;
1903
1904 /**
1905 * Construct a {@code ReflectionTester} that will expect messages using
1906 * the given descriptor.
1907 *
1908 * Normally {@code baseDescriptor} should be a descriptor for the type
1909 * {@code TestAllTypes}, defined in
1910 * {@code google/protobuf/unittest.proto}. However, if
1911 * {@code extensionRegistry} is non-null, then {@code baseDescriptor} should
1912 * be for {@code TestAllExtensions} instead, and instead of reading and
1913 * writing normal fields, the tester will read and write extensions.
1914 * All of {@code TestAllExtensions}' extensions must be registered in the
1915 * registry.
1916 */
1917 public ReflectionTester(Descriptors.Descriptor baseDescriptor,
1918 ExtensionRegistry extensionRegistry) {
1919 this.baseDescriptor = baseDescriptor;
1920 this.extensionRegistry = extensionRegistry;
1921
1922 this.file = baseDescriptor.getFile();
1923 Assert.assertEquals(1, file.getDependencies().size());
1924 this.importFile = file.getDependencies().get(0);
1925 this.publicImportFile = importFile.getDependencies().get(0);
1926
1927 Descriptors.Descriptor testAllTypes;
1928 if (baseDescriptor.getName() == "TestAllTypes") {
1929 testAllTypes = baseDescriptor;
1930 } else {
1931 testAllTypes = file.findMessageTypeByName("TestAllTypes");
1932 Assert.assertNotNull(testAllTypes);
1933 }
1934
1935 if (extensionRegistry == null) {
1936 // Use testAllTypes, rather than baseDescriptor, to allow
1937 // initialization using TestPackedTypes descriptors. These objects
1938 // won't be used by the methods for packed fields.
1939 this.optionalGroup =
1940 testAllTypes.findNestedTypeByName("OptionalGroup");
1941 this.repeatedGroup =
1942 testAllTypes.findNestedTypeByName("RepeatedGroup");
1943 } else {
1944 this.optionalGroup =
1945 file.findMessageTypeByName("OptionalGroup_extension");
1946 this.repeatedGroup =
1947 file.findMessageTypeByName("RepeatedGroup_extension");
1948 }
1949 this.nestedMessage = testAllTypes.findNestedTypeByName("NestedMessage");
1950 this.foreignMessage = file.findMessageTypeByName("ForeignMessage");
1951 this.importMessage = importFile.findMessageTypeByName("ImportMessage");
1952 this.publicImportMessage = publicImportFile.findMessageTypeByName(
1953 "PublicImportMessage");
1954
1955 this.nestedEnum = testAllTypes.findEnumTypeByName("NestedEnum");
1956 this.foreignEnum = file.findEnumTypeByName("ForeignEnum");
1957 this.importEnum = importFile.findEnumTypeByName("ImportEnum");
1958
1959 Assert.assertNotNull(optionalGroup );
1960 Assert.assertNotNull(repeatedGroup );
1961 Assert.assertNotNull(nestedMessage );
1962 Assert.assertNotNull(foreignMessage);
1963 Assert.assertNotNull(importMessage );
1964 Assert.assertNotNull(nestedEnum );
1965 Assert.assertNotNull(foreignEnum );
1966 Assert.assertNotNull(importEnum );
1967
1968 this.nestedB = nestedMessage .findFieldByName("bb");
1969 this.foreignC = foreignMessage.findFieldByName("c");
1970 this.importD = importMessage .findFieldByName("d");
1971 this.importE = publicImportMessage.findFieldByName("e");
1972 this.nestedFoo = nestedEnum.findValueByName("FOO");
1973 this.nestedBar = nestedEnum.findValueByName("BAR");
1974 this.nestedBaz = nestedEnum.findValueByName("BAZ");
1975 this.foreignFoo = foreignEnum.findValueByName("FOREIGN_FOO");
1976 this.foreignBar = foreignEnum.findValueByName("FOREIGN_BAR");
1977 this.foreignBaz = foreignEnum.findValueByName("FOREIGN_BAZ");
1978 this.importFoo = importEnum.findValueByName("IMPORT_FOO");
1979 this.importBar = importEnum.findValueByName("IMPORT_BAR");
1980 this.importBaz = importEnum.findValueByName("IMPORT_BAZ");
1981
1982 this.groupA = optionalGroup.findFieldByName("a");
1983 this.repeatedGroupA = repeatedGroup.findFieldByName("a");
1984
1985 Assert.assertNotNull(groupA );
1986 Assert.assertNotNull(repeatedGroupA);
1987 Assert.assertNotNull(nestedB );
1988 Assert.assertNotNull(foreignC );
1989 Assert.assertNotNull(importD );
1990 Assert.assertNotNull(importE );
1991 Assert.assertNotNull(nestedFoo );
1992 Assert.assertNotNull(nestedBar );
1993 Assert.assertNotNull(nestedBaz );
1994 Assert.assertNotNull(foreignFoo );
1995 Assert.assertNotNull(foreignBar );
1996 Assert.assertNotNull(foreignBaz );
1997 Assert.assertNotNull(importFoo );
1998 Assert.assertNotNull(importBar );
1999 Assert.assertNotNull(importBaz );
2000 }
2001
2002 /**
2003 * Shorthand to get a FieldDescriptor for a field of unittest::TestAllTypes.
2004 */
2005 private Descriptors.FieldDescriptor f(String name) {
2006 Descriptors.FieldDescriptor result;
2007 if (extensionRegistry == null) {
2008 result = baseDescriptor.findFieldByName(name);
2009 } else {
2010 result = file.findExtensionByName(name + "_extension");
2011 }
2012 Assert.assertNotNull(result);
2013 return result;
2014 }
2015
2016 /**
2017 * Calls {@code parent.newBuilderForField()} or uses the
2018 * {@code ExtensionRegistry} to find an appropriate builder, depending
2019 * on what type is being tested.
2020 */
2021 private Message.Builder newBuilderForField(
2022 Message.Builder parent, Descriptors.FieldDescriptor field) {
2023 if (extensionRegistry == null) {
2024 return parent.newBuilderForField(field);
2025 } else {
2026 ExtensionRegistry.ExtensionInfo extension =
2027 extensionRegistry.findExtensionByNumber(field.getContainingType(),
2028 field.getNumber());
2029 Assert.assertNotNull(extension);
2030 Assert.assertNotNull(extension.defaultInstance);
2031 return extension.defaultInstance.newBuilderForType();
2032 }
2033 }
2034
2035 // -------------------------------------------------------------------
2036
2037 /**
2038 * Set every field of {@code message} to the values expected by
2039 * {@code assertAllFieldsSet()}, using the {@link Message.Builder}
2040 * reflection interface.
2041 */
2042 void setAllFieldsViaReflection(Message.Builder message) {
2043 message.setField(f("optional_int32" ), 101 );
2044 message.setField(f("optional_int64" ), 102L);
2045 message.setField(f("optional_uint32" ), 103 );
2046 message.setField(f("optional_uint64" ), 104L);
2047 message.setField(f("optional_sint32" ), 105 );
2048 message.setField(f("optional_sint64" ), 106L);
2049 message.setField(f("optional_fixed32" ), 107 );
2050 message.setField(f("optional_fixed64" ), 108L);
2051 message.setField(f("optional_sfixed32"), 109 );
2052 message.setField(f("optional_sfixed64"), 110L);
2053 message.setField(f("optional_float" ), 111F);
2054 message.setField(f("optional_double" ), 112D);
2055 message.setField(f("optional_bool" ), true);
2056 message.setField(f("optional_string" ), "115");
2057 message.setField(f("optional_bytes" ), toBytes("116"));
2058
2059 message.setField(f("optionalgroup"),
2060 newBuilderForField(message, f("optionalgroup"))
2061 .setField(groupA, 117).build());
2062 message.setField(f("optional_nested_message"),
2063 newBuilderForField(message, f("optional_nested_message"))
2064 .setField(nestedB, 118).build());
2065 message.setField(f("optional_foreign_message"),
2066 newBuilderForField(message, f("optional_foreign_message"))
2067 .setField(foreignC, 119).build());
2068 message.setField(f("optional_import_message"),
2069 newBuilderForField(message, f("optional_import_message"))
2070 .setField(importD, 120).build());
2071 message.setField(f("optional_public_import_message"),
2072 newBuilderForField(message, f("optional_public_import_message"))
2073 .setField(importE, 126).build());
2074 message.setField(f("optional_lazy_message"),
2075 newBuilderForField(message, f("optional_lazy_message"))
2076 .setField(nestedB, 127).build());
2077
2078 message.setField(f("optional_nested_enum" ), nestedBaz);
2079 message.setField(f("optional_foreign_enum"), foreignBaz);
2080 message.setField(f("optional_import_enum" ), importBaz);
2081
2082 message.setField(f("optional_string_piece" ), "124");
2083 message.setField(f("optional_cord" ), "125");
2084
2085 // -----------------------------------------------------------------
2086
2087 message.addRepeatedField(f("repeated_int32" ), 201 );
2088 message.addRepeatedField(f("repeated_int64" ), 202L);
2089 message.addRepeatedField(f("repeated_uint32" ), 203 );
2090 message.addRepeatedField(f("repeated_uint64" ), 204L);
2091 message.addRepeatedField(f("repeated_sint32" ), 205 );
2092 message.addRepeatedField(f("repeated_sint64" ), 206L);
2093 message.addRepeatedField(f("repeated_fixed32" ), 207 );
2094 message.addRepeatedField(f("repeated_fixed64" ), 208L);
2095 message.addRepeatedField(f("repeated_sfixed32"), 209 );
2096 message.addRepeatedField(f("repeated_sfixed64"), 210L);
2097 message.addRepeatedField(f("repeated_float" ), 211F);
2098 message.addRepeatedField(f("repeated_double" ), 212D);
2099 message.addRepeatedField(f("repeated_bool" ), true);
2100 message.addRepeatedField(f("repeated_string" ), "215");
2101 message.addRepeatedField(f("repeated_bytes" ), toBytes("216"));
2102
2103 message.addRepeatedField(f("repeatedgroup"),
2104 newBuilderForField(message, f("repeatedgroup"))
2105 .setField(repeatedGroupA, 217).build());
2106 message.addRepeatedField(f("repeated_nested_message"),
2107 newBuilderForField(message, f("repeated_nested_message"))
2108 .setField(nestedB, 218).build());
2109 message.addRepeatedField(f("repeated_foreign_message"),
2110 newBuilderForField(message, f("repeated_foreign_message"))
2111 .setField(foreignC, 219).build());
2112 message.addRepeatedField(f("repeated_import_message"),
2113 newBuilderForField(message, f("repeated_import_message"))
2114 .setField(importD, 220).build());
2115 message.addRepeatedField(f("repeated_lazy_message"),
2116 newBuilderForField(message, f("repeated_lazy_message"))
2117 .setField(nestedB, 227).build());
2118
2119 message.addRepeatedField(f("repeated_nested_enum" ), nestedBar);
2120 message.addRepeatedField(f("repeated_foreign_enum"), foreignBar);
2121 message.addRepeatedField(f("repeated_import_enum" ), importBar);
2122
2123 message.addRepeatedField(f("repeated_string_piece" ), "224");
2124 message.addRepeatedField(f("repeated_cord" ), "225");
2125
2126 // Add a second one of each field.
2127 message.addRepeatedField(f("repeated_int32" ), 301 );
2128 message.addRepeatedField(f("repeated_int64" ), 302L);
2129 message.addRepeatedField(f("repeated_uint32" ), 303 );
2130 message.addRepeatedField(f("repeated_uint64" ), 304L);
2131 message.addRepeatedField(f("repeated_sint32" ), 305 );
2132 message.addRepeatedField(f("repeated_sint64" ), 306L);
2133 message.addRepeatedField(f("repeated_fixed32" ), 307 );
2134 message.addRepeatedField(f("repeated_fixed64" ), 308L);
2135 message.addRepeatedField(f("repeated_sfixed32"), 309 );
2136 message.addRepeatedField(f("repeated_sfixed64"), 310L);
2137 message.addRepeatedField(f("repeated_float" ), 311F);
2138 message.addRepeatedField(f("repeated_double" ), 312D);
2139 message.addRepeatedField(f("repeated_bool" ), false);
2140 message.addRepeatedField(f("repeated_string" ), "315");
2141 message.addRepeatedField(f("repeated_bytes" ), toBytes("316"));
2142
2143 message.addRepeatedField(f("repeatedgroup"),
2144 newBuilderForField(message, f("repeatedgroup"))
2145 .setField(repeatedGroupA, 317).build());
2146 message.addRepeatedField(f("repeated_nested_message"),
2147 newBuilderForField(message, f("repeated_nested_message"))
2148 .setField(nestedB, 318).build());
2149 message.addRepeatedField(f("repeated_foreign_message"),
2150 newBuilderForField(message, f("repeated_foreign_message"))
2151 .setField(foreignC, 319).build());
2152 message.addRepeatedField(f("repeated_import_message"),
2153 newBuilderForField(message, f("repeated_import_message"))
2154 .setField(importD, 320).build());
2155 message.addRepeatedField(f("repeated_lazy_message"),
2156 newBuilderForField(message, f("repeated_lazy_message"))
2157 .setField(nestedB, 327).build());
2158
2159 message.addRepeatedField(f("repeated_nested_enum" ), nestedBaz);
2160 message.addRepeatedField(f("repeated_foreign_enum"), foreignBaz);
2161 message.addRepeatedField(f("repeated_import_enum" ), importBaz);
2162
2163 message.addRepeatedField(f("repeated_string_piece" ), "324");
2164 message.addRepeatedField(f("repeated_cord" ), "325");
2165
2166 // -----------------------------------------------------------------
2167
2168 message.setField(f("default_int32" ), 401 );
2169 message.setField(f("default_int64" ), 402L);
2170 message.setField(f("default_uint32" ), 403 );
2171 message.setField(f("default_uint64" ), 404L);
2172 message.setField(f("default_sint32" ), 405 );
2173 message.setField(f("default_sint64" ), 406L);
2174 message.setField(f("default_fixed32" ), 407 );
2175 message.setField(f("default_fixed64" ), 408L);
2176 message.setField(f("default_sfixed32"), 409 );
2177 message.setField(f("default_sfixed64"), 410L);
2178 message.setField(f("default_float" ), 411F);
2179 message.setField(f("default_double" ), 412D);
2180 message.setField(f("default_bool" ), false);
2181 message.setField(f("default_string" ), "415");
2182 message.setField(f("default_bytes" ), toBytes("416"));
2183
2184 message.setField(f("default_nested_enum" ), nestedFoo);
2185 message.setField(f("default_foreign_enum"), foreignFoo);
2186 message.setField(f("default_import_enum" ), importFoo);
2187
2188 message.setField(f("default_string_piece" ), "424");
2189 message.setField(f("default_cord" ), "425");
2190 }
2191
2192 // -------------------------------------------------------------------
2193
2194 /**
2195 * Modify the repeated fields of {@code message} to contain the values
2196 * expected by {@code assertRepeatedFieldsModified()}, using the
2197 * {@link Message.Builder} reflection interface.
2198 */
2199 void modifyRepeatedFieldsViaReflection(Message.Builder message) {
2200 message.setRepeatedField(f("repeated_int32" ), 1, 501 );
2201 message.setRepeatedField(f("repeated_int64" ), 1, 502L);
2202 message.setRepeatedField(f("repeated_uint32" ), 1, 503 );
2203 message.setRepeatedField(f("repeated_uint64" ), 1, 504L);
2204 message.setRepeatedField(f("repeated_sint32" ), 1, 505 );
2205 message.setRepeatedField(f("repeated_sint64" ), 1, 506L);
2206 message.setRepeatedField(f("repeated_fixed32" ), 1, 507 );
2207 message.setRepeatedField(f("repeated_fixed64" ), 1, 508L);
2208 message.setRepeatedField(f("repeated_sfixed32"), 1, 509 );
2209 message.setRepeatedField(f("repeated_sfixed64"), 1, 510L);
2210 message.setRepeatedField(f("repeated_float" ), 1, 511F);
2211 message.setRepeatedField(f("repeated_double" ), 1, 512D);
2212 message.setRepeatedField(f("repeated_bool" ), 1, true);
2213 message.setRepeatedField(f("repeated_string" ), 1, "515");
2214 message.setRepeatedField(f("repeated_bytes" ), 1, toBytes("516"));
2215
2216 message.setRepeatedField(f("repeatedgroup"), 1,
2217 newBuilderForField(message, f("repeatedgroup"))
2218 .setField(repeatedGroupA, 517).build());
2219 message.setRepeatedField(f("repeated_nested_message"), 1,
2220 newBuilderForField(message, f("repeated_nested_message"))
2221 .setField(nestedB, 518).build());
2222 message.setRepeatedField(f("repeated_foreign_message"), 1,
2223 newBuilderForField(message, f("repeated_foreign_message"))
2224 .setField(foreignC, 519).build());
2225 message.setRepeatedField(f("repeated_import_message"), 1,
2226 newBuilderForField(message, f("repeated_import_message"))
2227 .setField(importD, 520).build());
2228 message.setRepeatedField(f("repeated_lazy_message"), 1,
2229 newBuilderForField(message, f("repeated_lazy_message"))
2230 .setField(nestedB, 527).build());
2231
2232 message.setRepeatedField(f("repeated_nested_enum" ), 1, nestedFoo);
2233 message.setRepeatedField(f("repeated_foreign_enum"), 1, foreignFoo);
2234 message.setRepeatedField(f("repeated_import_enum" ), 1, importFoo);
2235
2236 message.setRepeatedField(f("repeated_string_piece"), 1, "524");
2237 message.setRepeatedField(f("repeated_cord"), 1, "525");
2238 }
2239
2240 // -------------------------------------------------------------------
2241
2242 /**
2243 * Assert (using {@code junit.framework.Assert}} that all fields of
2244 * {@code message} are set to the values assigned by {@code setAllFields},
2245 * using the {@link Message} reflection interface.
2246 */
2247 public void assertAllFieldsSetViaReflection(MessageOrBuilder message) {
2248 Assert.assertTrue(message.hasField(f("optional_int32" )));
2249 Assert.assertTrue(message.hasField(f("optional_int64" )));
2250 Assert.assertTrue(message.hasField(f("optional_uint32" )));
2251 Assert.assertTrue(message.hasField(f("optional_uint64" )));
2252 Assert.assertTrue(message.hasField(f("optional_sint32" )));
2253 Assert.assertTrue(message.hasField(f("optional_sint64" )));
2254 Assert.assertTrue(message.hasField(f("optional_fixed32" )));
2255 Assert.assertTrue(message.hasField(f("optional_fixed64" )));
2256 Assert.assertTrue(message.hasField(f("optional_sfixed32")));
2257 Assert.assertTrue(message.hasField(f("optional_sfixed64")));
2258 Assert.assertTrue(message.hasField(f("optional_float" )));
2259 Assert.assertTrue(message.hasField(f("optional_double" )));
2260 Assert.assertTrue(message.hasField(f("optional_bool" )));
2261 Assert.assertTrue(message.hasField(f("optional_string" )));
2262 Assert.assertTrue(message.hasField(f("optional_bytes" )));
2263
2264 Assert.assertTrue(message.hasField(f("optionalgroup" )));
2265 Assert.assertTrue(message.hasField(f("optional_nested_message" )));
2266 Assert.assertTrue(message.hasField(f("optional_foreign_message")));
2267 Assert.assertTrue(message.hasField(f("optional_import_message" )));
2268
2269 Assert.assertTrue(
2270 ((Message)message.getField(f("optionalgroup"))).hasField(groupA));
2271 Assert.assertTrue(
2272 ((Message)message.getField(f("optional_nested_message")))
2273 .hasField(nestedB));
2274 Assert.assertTrue(
2275 ((Message)message.getField(f("optional_foreign_message")))
2276 .hasField(foreignC));
2277 Assert.assertTrue(
2278 ((Message)message.getField(f("optional_import_message")))
2279 .hasField(importD));
2280
2281 Assert.assertTrue(message.hasField(f("optional_nested_enum" )));
2282 Assert.assertTrue(message.hasField(f("optional_foreign_enum")));
2283 Assert.assertTrue(message.hasField(f("optional_import_enum" )));
2284
2285 Assert.assertTrue(message.hasField(f("optional_string_piece")));
2286 Assert.assertTrue(message.hasField(f("optional_cord")));
2287
2288 Assert.assertEquals(101 , message.getField(f("optional_int32" )));
2289 Assert.assertEquals(102L , message.getField(f("optional_int64" )));
2290 Assert.assertEquals(103 , message.getField(f("optional_uint32" )));
2291 Assert.assertEquals(104L , message.getField(f("optional_uint64" )));
2292 Assert.assertEquals(105 , message.getField(f("optional_sint32" )));
2293 Assert.assertEquals(106L , message.getField(f("optional_sint64" )));
2294 Assert.assertEquals(107 , message.getField(f("optional_fixed32" )));
2295 Assert.assertEquals(108L , message.getField(f("optional_fixed64" )));
2296 Assert.assertEquals(109 , message.getField(f("optional_sfixed32")));
2297 Assert.assertEquals(110L , message.getField(f("optional_sfixed64")));
2298 Assert.assertEquals(111F , message.getField(f("optional_float" )));
2299 Assert.assertEquals(112D , message.getField(f("optional_double" )));
2300 Assert.assertEquals(true , message.getField(f("optional_bool" )));
2301 Assert.assertEquals("115", message.getField(f("optional_string" )));
2302 Assert.assertEquals(toBytes("116"), message.getField(f("optional_bytes"))) ;
2303
2304 Assert.assertEquals(117,
2305 ((Message)message.getField(f("optionalgroup"))).getField(groupA));
2306 Assert.assertEquals(118,
2307 ((Message)message.getField(f("optional_nested_message")))
2308 .getField(nestedB));
2309 Assert.assertEquals(119,
2310 ((Message)message.getField(f("optional_foreign_message")))
2311 .getField(foreignC));
2312 Assert.assertEquals(120,
2313 ((Message)message.getField(f("optional_import_message")))
2314 .getField(importD));
2315 Assert.assertEquals(126,
2316 ((Message)message.getField(f("optional_public_import_message")))
2317 .getField(importE));
2318 Assert.assertEquals(127,
2319 ((Message)message.getField(f("optional_lazy_message")))
2320 .getField(nestedB));
2321
2322 Assert.assertEquals( nestedBaz, message.getField(f("optional_nested_enum" )));
2323 Assert.assertEquals(foreignBaz, message.getField(f("optional_foreign_enum" )));
2324 Assert.assertEquals( importBaz, message.getField(f("optional_import_enum" )));
2325
2326 Assert.assertEquals("124", message.getField(f("optional_string_piece")));
2327 Assert.assertEquals("125", message.getField(f("optional_cord")));
2328
2329 // -----------------------------------------------------------------
2330
2331 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int32" )));
2332 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int64" )));
2333 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint32" )));
2334 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint64" )));
2335 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint32" )));
2336 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint64" )));
2337 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed32" )));
2338 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed64" )));
2339 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed32" )));
2340 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed64" )));
2341 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_float" )));
2342 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_double" )));
2343 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bool" )));
2344 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string" )));
2345 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bytes" )));
2346
2347 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeatedgroup" )));
2348 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_me ssage" )));
2349 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_m essage")));
2350 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_me ssage" )));
2351 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_lazy_mess age" )));
2352 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_en um" )));
2353 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_e num" )));
2354 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_en um" )));
2355
2356 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string_pi ece")));
2357 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_cord")));
2358
2359 Assert.assertEquals(201 , message.getRepeatedField(f("repeated_int32" ) , 0));
2360 Assert.assertEquals(202L , message.getRepeatedField(f("repeated_int64" ) , 0));
2361 Assert.assertEquals(203 , message.getRepeatedField(f("repeated_uint32" ) , 0));
2362 Assert.assertEquals(204L , message.getRepeatedField(f("repeated_uint64" ) , 0));
2363 Assert.assertEquals(205 , message.getRepeatedField(f("repeated_sint32" ) , 0));
2364 Assert.assertEquals(206L , message.getRepeatedField(f("repeated_sint64" ) , 0));
2365 Assert.assertEquals(207 , message.getRepeatedField(f("repeated_fixed32" ) , 0));
2366 Assert.assertEquals(208L , message.getRepeatedField(f("repeated_fixed64" ) , 0));
2367 Assert.assertEquals(209 , message.getRepeatedField(f("repeated_sfixed32") , 0));
2368 Assert.assertEquals(210L , message.getRepeatedField(f("repeated_sfixed64") , 0));
2369 Assert.assertEquals(211F , message.getRepeatedField(f("repeated_float" ) , 0));
2370 Assert.assertEquals(212D , message.getRepeatedField(f("repeated_double" ) , 0));
2371 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ) , 0));
2372 Assert.assertEquals("215", message.getRepeatedField(f("repeated_string" ) , 0));
2373 Assert.assertEquals(toBytes("216"), message.getRepeatedField(f("repeated_b ytes"), 0));
2374
2375 Assert.assertEquals(217,
2376 ((Message)message.getRepeatedField(f("repeatedgroup"), 0))
2377 .getField(repeatedGroupA));
2378 Assert.assertEquals(218,
2379 ((Message)message.getRepeatedField(f("repeated_nested_message"), 0))
2380 .getField(nestedB));
2381 Assert.assertEquals(219,
2382 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 0))
2383 .getField(foreignC));
2384 Assert.assertEquals(220,
2385 ((Message)message.getRepeatedField(f("repeated_import_message"), 0))
2386 .getField(importD));
2387 Assert.assertEquals(227,
2388 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 0))
2389 .getField(nestedB));
2390
2391 Assert.assertEquals( nestedBar, message.getRepeatedField(f("repeated_neste d_enum" ),0));
2392 Assert.assertEquals(foreignBar, message.getRepeatedField(f("repeated_forei gn_enum"),0));
2393 Assert.assertEquals( importBar, message.getRepeatedField(f("repeated_impor t_enum" ),0));
2394
2395 Assert.assertEquals("224", message.getRepeatedField(f("repeated_string_pie ce"), 0));
2396 Assert.assertEquals("225", message.getRepeatedField(f("repeated_cord"), 0) );
2397
2398 Assert.assertEquals(301 , message.getRepeatedField(f("repeated_int32" ) , 1));
2399 Assert.assertEquals(302L , message.getRepeatedField(f("repeated_int64" ) , 1));
2400 Assert.assertEquals(303 , message.getRepeatedField(f("repeated_uint32" ) , 1));
2401 Assert.assertEquals(304L , message.getRepeatedField(f("repeated_uint64" ) , 1));
2402 Assert.assertEquals(305 , message.getRepeatedField(f("repeated_sint32" ) , 1));
2403 Assert.assertEquals(306L , message.getRepeatedField(f("repeated_sint64" ) , 1));
2404 Assert.assertEquals(307 , message.getRepeatedField(f("repeated_fixed32" ) , 1));
2405 Assert.assertEquals(308L , message.getRepeatedField(f("repeated_fixed64" ) , 1));
2406 Assert.assertEquals(309 , message.getRepeatedField(f("repeated_sfixed32") , 1));
2407 Assert.assertEquals(310L , message.getRepeatedField(f("repeated_sfixed64") , 1));
2408 Assert.assertEquals(311F , message.getRepeatedField(f("repeated_float" ) , 1));
2409 Assert.assertEquals(312D , message.getRepeatedField(f("repeated_double" ) , 1));
2410 Assert.assertEquals(false, message.getRepeatedField(f("repeated_bool" ) , 1));
2411 Assert.assertEquals("315", message.getRepeatedField(f("repeated_string" ) , 1));
2412 Assert.assertEquals(toBytes("316"), message.getRepeatedField(f("repeated_b ytes"), 1));
2413
2414 Assert.assertEquals(317,
2415 ((Message)message.getRepeatedField(f("repeatedgroup"), 1))
2416 .getField(repeatedGroupA));
2417 Assert.assertEquals(318,
2418 ((Message)message.getRepeatedField(f("repeated_nested_message"), 1))
2419 .getField(nestedB));
2420 Assert.assertEquals(319,
2421 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 1))
2422 .getField(foreignC));
2423 Assert.assertEquals(320,
2424 ((Message)message.getRepeatedField(f("repeated_import_message"), 1))
2425 .getField(importD));
2426 Assert.assertEquals(327,
2427 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 1))
2428 .getField(nestedB));
2429
2430 Assert.assertEquals( nestedBaz, message.getRepeatedField(f("repeated_neste d_enum" ),1));
2431 Assert.assertEquals(foreignBaz, message.getRepeatedField(f("repeated_forei gn_enum"),1));
2432 Assert.assertEquals( importBaz, message.getRepeatedField(f("repeated_impor t_enum" ),1));
2433
2434 Assert.assertEquals("324", message.getRepeatedField(f("repeated_string_pie ce"), 1));
2435 Assert.assertEquals("325", message.getRepeatedField(f("repeated_cord"), 1) );
2436
2437 // -----------------------------------------------------------------
2438
2439 Assert.assertTrue(message.hasField(f("default_int32" )));
2440 Assert.assertTrue(message.hasField(f("default_int64" )));
2441 Assert.assertTrue(message.hasField(f("default_uint32" )));
2442 Assert.assertTrue(message.hasField(f("default_uint64" )));
2443 Assert.assertTrue(message.hasField(f("default_sint32" )));
2444 Assert.assertTrue(message.hasField(f("default_sint64" )));
2445 Assert.assertTrue(message.hasField(f("default_fixed32" )));
2446 Assert.assertTrue(message.hasField(f("default_fixed64" )));
2447 Assert.assertTrue(message.hasField(f("default_sfixed32")));
2448 Assert.assertTrue(message.hasField(f("default_sfixed64")));
2449 Assert.assertTrue(message.hasField(f("default_float" )));
2450 Assert.assertTrue(message.hasField(f("default_double" )));
2451 Assert.assertTrue(message.hasField(f("default_bool" )));
2452 Assert.assertTrue(message.hasField(f("default_string" )));
2453 Assert.assertTrue(message.hasField(f("default_bytes" )));
2454
2455 Assert.assertTrue(message.hasField(f("default_nested_enum" )));
2456 Assert.assertTrue(message.hasField(f("default_foreign_enum")));
2457 Assert.assertTrue(message.hasField(f("default_import_enum" )));
2458
2459 Assert.assertTrue(message.hasField(f("default_string_piece")));
2460 Assert.assertTrue(message.hasField(f("default_cord")));
2461
2462 Assert.assertEquals(401 , message.getField(f("default_int32" )));
2463 Assert.assertEquals(402L , message.getField(f("default_int64" )));
2464 Assert.assertEquals(403 , message.getField(f("default_uint32" )));
2465 Assert.assertEquals(404L , message.getField(f("default_uint64" )));
2466 Assert.assertEquals(405 , message.getField(f("default_sint32" )));
2467 Assert.assertEquals(406L , message.getField(f("default_sint64" )));
2468 Assert.assertEquals(407 , message.getField(f("default_fixed32" )));
2469 Assert.assertEquals(408L , message.getField(f("default_fixed64" )));
2470 Assert.assertEquals(409 , message.getField(f("default_sfixed32")));
2471 Assert.assertEquals(410L , message.getField(f("default_sfixed64")));
2472 Assert.assertEquals(411F , message.getField(f("default_float" )));
2473 Assert.assertEquals(412D , message.getField(f("default_double" )));
2474 Assert.assertEquals(false, message.getField(f("default_bool" )));
2475 Assert.assertEquals("415", message.getField(f("default_string" )));
2476 Assert.assertEquals(toBytes("416"), message.getField(f("default_bytes")));
2477
2478 Assert.assertEquals( nestedFoo, message.getField(f("default_nested_enum" ) ));
2479 Assert.assertEquals(foreignFoo, message.getField(f("default_foreign_enum") ));
2480 Assert.assertEquals( importFoo, message.getField(f("default_import_enum" ) ));
2481
2482 Assert.assertEquals("424", message.getField(f("default_string_piece")));
2483 Assert.assertEquals("425", message.getField(f("default_cord")));
2484 }
2485
2486 // -------------------------------------------------------------------
2487
2488 /**
2489 * Assert (using {@code junit.framework.Assert}} that all fields of
2490 * {@code message} are cleared, and that getting the fields returns their
2491 * default values, using the {@link Message} reflection interface.
2492 */
2493 public void assertClearViaReflection(MessageOrBuilder message) {
2494 // has_blah() should initially be false for all optional fields.
2495 Assert.assertFalse(message.hasField(f("optional_int32" )));
2496 Assert.assertFalse(message.hasField(f("optional_int64" )));
2497 Assert.assertFalse(message.hasField(f("optional_uint32" )));
2498 Assert.assertFalse(message.hasField(f("optional_uint64" )));
2499 Assert.assertFalse(message.hasField(f("optional_sint32" )));
2500 Assert.assertFalse(message.hasField(f("optional_sint64" )));
2501 Assert.assertFalse(message.hasField(f("optional_fixed32" )));
2502 Assert.assertFalse(message.hasField(f("optional_fixed64" )));
2503 Assert.assertFalse(message.hasField(f("optional_sfixed32")));
2504 Assert.assertFalse(message.hasField(f("optional_sfixed64")));
2505 Assert.assertFalse(message.hasField(f("optional_float" )));
2506 Assert.assertFalse(message.hasField(f("optional_double" )));
2507 Assert.assertFalse(message.hasField(f("optional_bool" )));
2508 Assert.assertFalse(message.hasField(f("optional_string" )));
2509 Assert.assertFalse(message.hasField(f("optional_bytes" )));
2510
2511 Assert.assertFalse(message.hasField(f("optionalgroup" )));
2512 Assert.assertFalse(message.hasField(f("optional_nested_message" )));
2513 Assert.assertFalse(message.hasField(f("optional_foreign_message")));
2514 Assert.assertFalse(message.hasField(f("optional_import_message" )));
2515
2516 Assert.assertFalse(message.hasField(f("optional_nested_enum" )));
2517 Assert.assertFalse(message.hasField(f("optional_foreign_enum")));
2518 Assert.assertFalse(message.hasField(f("optional_import_enum" )));
2519
2520 Assert.assertFalse(message.hasField(f("optional_string_piece")));
2521 Assert.assertFalse(message.hasField(f("optional_cord")));
2522
2523 // Optional fields without defaults are set to zero or something like it.
2524 Assert.assertEquals(0 , message.getField(f("optional_int32" )));
2525 Assert.assertEquals(0L , message.getField(f("optional_int64" )));
2526 Assert.assertEquals(0 , message.getField(f("optional_uint32" )));
2527 Assert.assertEquals(0L , message.getField(f("optional_uint64" )));
2528 Assert.assertEquals(0 , message.getField(f("optional_sint32" )));
2529 Assert.assertEquals(0L , message.getField(f("optional_sint64" )));
2530 Assert.assertEquals(0 , message.getField(f("optional_fixed32" )));
2531 Assert.assertEquals(0L , message.getField(f("optional_fixed64" )));
2532 Assert.assertEquals(0 , message.getField(f("optional_sfixed32")));
2533 Assert.assertEquals(0L , message.getField(f("optional_sfixed64")));
2534 Assert.assertEquals(0F , message.getField(f("optional_float" )));
2535 Assert.assertEquals(0D , message.getField(f("optional_double" )));
2536 Assert.assertEquals(false, message.getField(f("optional_bool" )));
2537 Assert.assertEquals("" , message.getField(f("optional_string" )));
2538 Assert.assertEquals(ByteString.EMPTY, message.getField(f("optional_bytes") ));
2539
2540 // Embedded messages should also be clear.
2541 Assert.assertFalse(
2542 ((Message)message.getField(f("optionalgroup"))).hasField(groupA));
2543 Assert.assertFalse(
2544 ((Message)message.getField(f("optional_nested_message")))
2545 .hasField(nestedB));
2546 Assert.assertFalse(
2547 ((Message)message.getField(f("optional_foreign_message")))
2548 .hasField(foreignC));
2549 Assert.assertFalse(
2550 ((Message)message.getField(f("optional_import_message")))
2551 .hasField(importD));
2552 Assert.assertFalse(
2553 ((Message)message.getField(f("optional_public_import_message")))
2554 .hasField(importE));
2555 Assert.assertFalse(
2556 ((Message)message.getField(f("optional_lazy_message")))
2557 .hasField(nestedB));
2558
2559 Assert.assertEquals(0,
2560 ((Message)message.getField(f("optionalgroup"))).getField(groupA));
2561 Assert.assertEquals(0,
2562 ((Message)message.getField(f("optional_nested_message")))
2563 .getField(nestedB));
2564 Assert.assertEquals(0,
2565 ((Message)message.getField(f("optional_foreign_message")))
2566 .getField(foreignC));
2567 Assert.assertEquals(0,
2568 ((Message)message.getField(f("optional_import_message")))
2569 .getField(importD));
2570 Assert.assertEquals(0,
2571 ((Message)message.getField(f("optional_public_import_message")))
2572 .getField(importE));
2573 Assert.assertEquals(0,
2574 ((Message)message.getField(f("optional_lazy_message")))
2575 .getField(nestedB));
2576
2577 // Enums without defaults are set to the first value in the enum.
2578 Assert.assertEquals( nestedFoo, message.getField(f("optional_nested_enum" )));
2579 Assert.assertEquals(foreignFoo, message.getField(f("optional_foreign_enum" )));
2580 Assert.assertEquals( importFoo, message.getField(f("optional_import_enum" )));
2581
2582 Assert.assertEquals("", message.getField(f("optional_string_piece")));
2583 Assert.assertEquals("", message.getField(f("optional_cord")));
2584
2585 // Repeated fields are empty.
2586 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_int32" )));
2587 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_int64" )));
2588 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_uint32" )));
2589 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_uint64" )));
2590 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sint32" )));
2591 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sint64" )));
2592 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_fixed32" )));
2593 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_fixed64" )));
2594 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sfixed32" )));
2595 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sfixed64" )));
2596 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_float" )));
2597 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_double" )));
2598 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_bool" )));
2599 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_string" )));
2600 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_bytes" )));
2601
2602 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeatedgroup" )));
2603 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_nested_me ssage" )));
2604 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_foreign_m essage")));
2605 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_import_me ssage" )));
2606 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_lazy_mess age" )));
2607 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_nested_en um" )));
2608 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_foreign_e num" )));
2609 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_import_en um" )));
2610
2611 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_string_pi ece")));
2612 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_cord")));
2613
2614 // has_blah() should also be false for all default fields.
2615 Assert.assertFalse(message.hasField(f("default_int32" )));
2616 Assert.assertFalse(message.hasField(f("default_int64" )));
2617 Assert.assertFalse(message.hasField(f("default_uint32" )));
2618 Assert.assertFalse(message.hasField(f("default_uint64" )));
2619 Assert.assertFalse(message.hasField(f("default_sint32" )));
2620 Assert.assertFalse(message.hasField(f("default_sint64" )));
2621 Assert.assertFalse(message.hasField(f("default_fixed32" )));
2622 Assert.assertFalse(message.hasField(f("default_fixed64" )));
2623 Assert.assertFalse(message.hasField(f("default_sfixed32")));
2624 Assert.assertFalse(message.hasField(f("default_sfixed64")));
2625 Assert.assertFalse(message.hasField(f("default_float" )));
2626 Assert.assertFalse(message.hasField(f("default_double" )));
2627 Assert.assertFalse(message.hasField(f("default_bool" )));
2628 Assert.assertFalse(message.hasField(f("default_string" )));
2629 Assert.assertFalse(message.hasField(f("default_bytes" )));
2630
2631 Assert.assertFalse(message.hasField(f("default_nested_enum" )));
2632 Assert.assertFalse(message.hasField(f("default_foreign_enum")));
2633 Assert.assertFalse(message.hasField(f("default_import_enum" )));
2634
2635 Assert.assertFalse(message.hasField(f("default_string_piece" )));
2636 Assert.assertFalse(message.hasField(f("default_cord" )));
2637
2638 // Fields with defaults have their default values (duh).
2639 Assert.assertEquals( 41 , message.getField(f("default_int32" )));
2640 Assert.assertEquals( 42L , message.getField(f("default_int64" )));
2641 Assert.assertEquals( 43 , message.getField(f("default_uint32" )));
2642 Assert.assertEquals( 44L , message.getField(f("default_uint64" )));
2643 Assert.assertEquals(-45 , message.getField(f("default_sint32" )));
2644 Assert.assertEquals( 46L , message.getField(f("default_sint64" )));
2645 Assert.assertEquals( 47 , message.getField(f("default_fixed32" )));
2646 Assert.assertEquals( 48L , message.getField(f("default_fixed64" )));
2647 Assert.assertEquals( 49 , message.getField(f("default_sfixed32")));
2648 Assert.assertEquals(-50L , message.getField(f("default_sfixed64")));
2649 Assert.assertEquals( 51.5F , message.getField(f("default_float" )));
2650 Assert.assertEquals( 52e3D , message.getField(f("default_double" )));
2651 Assert.assertEquals(true , message.getField(f("default_bool" )));
2652 Assert.assertEquals("hello", message.getField(f("default_string" )));
2653 Assert.assertEquals(toBytes("world"), message.getField(f("default_bytes")) );
2654
2655 Assert.assertEquals( nestedBar, message.getField(f("default_nested_enum" ) ));
2656 Assert.assertEquals(foreignBar, message.getField(f("default_foreign_enum") ));
2657 Assert.assertEquals( importBar, message.getField(f("default_import_enum" ) ));
2658
2659 Assert.assertEquals("abc", message.getField(f("default_string_piece")));
2660 Assert.assertEquals("123", message.getField(f("default_cord")));
2661 }
2662
2663
2664 // ---------------------------------------------------------------
2665
2666 public void assertRepeatedFieldsModifiedViaReflection(
2667 MessageOrBuilder message) {
2668 // ModifyRepeatedFields only sets the second repeated element of each
2669 // field. In addition to verifying this, we also verify that the first
2670 // element and size were *not* modified.
2671 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int32" )));
2672 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int64" )));
2673 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint32" )));
2674 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint64" )));
2675 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint32" )));
2676 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint64" )));
2677 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed32" )));
2678 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed64" )));
2679 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed32" )));
2680 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed64" )));
2681 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_float" )));
2682 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_double" )));
2683 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bool" )));
2684 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string" )));
2685 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bytes" )));
2686
2687 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeatedgroup" )));
2688 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_me ssage" )));
2689 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_m essage")));
2690 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_me ssage" )));
2691 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_lazy_mess age" )));
2692 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_en um" )));
2693 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_e num" )));
2694 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_en um" )));
2695
2696 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string_pi ece")));
2697 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_cord")));
2698
2699 Assert.assertEquals(201 , message.getRepeatedField(f("repeated_int32" ) , 0));
2700 Assert.assertEquals(202L , message.getRepeatedField(f("repeated_int64" ) , 0));
2701 Assert.assertEquals(203 , message.getRepeatedField(f("repeated_uint32" ) , 0));
2702 Assert.assertEquals(204L , message.getRepeatedField(f("repeated_uint64" ) , 0));
2703 Assert.assertEquals(205 , message.getRepeatedField(f("repeated_sint32" ) , 0));
2704 Assert.assertEquals(206L , message.getRepeatedField(f("repeated_sint64" ) , 0));
2705 Assert.assertEquals(207 , message.getRepeatedField(f("repeated_fixed32" ) , 0));
2706 Assert.assertEquals(208L , message.getRepeatedField(f("repeated_fixed64" ) , 0));
2707 Assert.assertEquals(209 , message.getRepeatedField(f("repeated_sfixed32") , 0));
2708 Assert.assertEquals(210L , message.getRepeatedField(f("repeated_sfixed64") , 0));
2709 Assert.assertEquals(211F , message.getRepeatedField(f("repeated_float" ) , 0));
2710 Assert.assertEquals(212D , message.getRepeatedField(f("repeated_double" ) , 0));
2711 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ) , 0));
2712 Assert.assertEquals("215", message.getRepeatedField(f("repeated_string" ) , 0));
2713 Assert.assertEquals(toBytes("216"), message.getRepeatedField(f("repeated_b ytes"), 0));
2714
2715 Assert.assertEquals(217,
2716 ((Message)message.getRepeatedField(f("repeatedgroup"), 0))
2717 .getField(repeatedGroupA));
2718 Assert.assertEquals(218,
2719 ((Message)message.getRepeatedField(f("repeated_nested_message"), 0))
2720 .getField(nestedB));
2721 Assert.assertEquals(219,
2722 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 0))
2723 .getField(foreignC));
2724 Assert.assertEquals(220,
2725 ((Message)message.getRepeatedField(f("repeated_import_message"), 0))
2726 .getField(importD));
2727 Assert.assertEquals(227,
2728 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 0))
2729 .getField(nestedB));
2730
2731 Assert.assertEquals( nestedBar, message.getRepeatedField(f("repeated_neste d_enum" ),0));
2732 Assert.assertEquals(foreignBar, message.getRepeatedField(f("repeated_forei gn_enum"),0));
2733 Assert.assertEquals( importBar, message.getRepeatedField(f("repeated_impor t_enum" ),0));
2734
2735 Assert.assertEquals("224", message.getRepeatedField(f("repeated_string_pie ce"), 0));
2736 Assert.assertEquals("225", message.getRepeatedField(f("repeated_cord"), 0) );
2737
2738 Assert.assertEquals(501 , message.getRepeatedField(f("repeated_int32" ) , 1));
2739 Assert.assertEquals(502L , message.getRepeatedField(f("repeated_int64" ) , 1));
2740 Assert.assertEquals(503 , message.getRepeatedField(f("repeated_uint32" ) , 1));
2741 Assert.assertEquals(504L , message.getRepeatedField(f("repeated_uint64" ) , 1));
2742 Assert.assertEquals(505 , message.getRepeatedField(f("repeated_sint32" ) , 1));
2743 Assert.assertEquals(506L , message.getRepeatedField(f("repeated_sint64" ) , 1));
2744 Assert.assertEquals(507 , message.getRepeatedField(f("repeated_fixed32" ) , 1));
2745 Assert.assertEquals(508L , message.getRepeatedField(f("repeated_fixed64" ) , 1));
2746 Assert.assertEquals(509 , message.getRepeatedField(f("repeated_sfixed32") , 1));
2747 Assert.assertEquals(510L , message.getRepeatedField(f("repeated_sfixed64") , 1));
2748 Assert.assertEquals(511F , message.getRepeatedField(f("repeated_float" ) , 1));
2749 Assert.assertEquals(512D , message.getRepeatedField(f("repeated_double" ) , 1));
2750 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ) , 1));
2751 Assert.assertEquals("515", message.getRepeatedField(f("repeated_string" ) , 1));
2752 Assert.assertEquals(toBytes("516"), message.getRepeatedField(f("repeated_b ytes"), 1));
2753
2754 Assert.assertEquals(517,
2755 ((Message)message.getRepeatedField(f("repeatedgroup"), 1))
2756 .getField(repeatedGroupA));
2757 Assert.assertEquals(518,
2758 ((Message)message.getRepeatedField(f("repeated_nested_message"), 1))
2759 .getField(nestedB));
2760 Assert.assertEquals(519,
2761 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 1))
2762 .getField(foreignC));
2763 Assert.assertEquals(520,
2764 ((Message)message.getRepeatedField(f("repeated_import_message"), 1))
2765 .getField(importD));
2766 Assert.assertEquals(527,
2767 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 1))
2768 .getField(nestedB));
2769
2770 Assert.assertEquals( nestedFoo, message.getRepeatedField(f("repeated_neste d_enum" ),1));
2771 Assert.assertEquals(foreignFoo, message.getRepeatedField(f("repeated_forei gn_enum"),1));
2772 Assert.assertEquals( importFoo, message.getRepeatedField(f("repeated_impor t_enum" ),1));
2773
2774 Assert.assertEquals("524", message.getRepeatedField(f("repeated_string_pie ce"), 1));
2775 Assert.assertEquals("525", message.getRepeatedField(f("repeated_cord"), 1) );
2776 }
2777
2778 public void setPackedFieldsViaReflection(Message.Builder message) {
2779 message.addRepeatedField(f("packed_int32" ), 601 );
2780 message.addRepeatedField(f("packed_int64" ), 602L);
2781 message.addRepeatedField(f("packed_uint32" ), 603 );
2782 message.addRepeatedField(f("packed_uint64" ), 604L);
2783 message.addRepeatedField(f("packed_sint32" ), 605 );
2784 message.addRepeatedField(f("packed_sint64" ), 606L);
2785 message.addRepeatedField(f("packed_fixed32" ), 607 );
2786 message.addRepeatedField(f("packed_fixed64" ), 608L);
2787 message.addRepeatedField(f("packed_sfixed32"), 609 );
2788 message.addRepeatedField(f("packed_sfixed64"), 610L);
2789 message.addRepeatedField(f("packed_float" ), 611F);
2790 message.addRepeatedField(f("packed_double" ), 612D);
2791 message.addRepeatedField(f("packed_bool" ), true);
2792 message.addRepeatedField(f("packed_enum" ), foreignBar);
2793 // Add a second one of each field.
2794 message.addRepeatedField(f("packed_int32" ), 701 );
2795 message.addRepeatedField(f("packed_int64" ), 702L);
2796 message.addRepeatedField(f("packed_uint32" ), 703 );
2797 message.addRepeatedField(f("packed_uint64" ), 704L);
2798 message.addRepeatedField(f("packed_sint32" ), 705 );
2799 message.addRepeatedField(f("packed_sint64" ), 706L);
2800 message.addRepeatedField(f("packed_fixed32" ), 707 );
2801 message.addRepeatedField(f("packed_fixed64" ), 708L);
2802 message.addRepeatedField(f("packed_sfixed32"), 709 );
2803 message.addRepeatedField(f("packed_sfixed64"), 710L);
2804 message.addRepeatedField(f("packed_float" ), 711F);
2805 message.addRepeatedField(f("packed_double" ), 712D);
2806 message.addRepeatedField(f("packed_bool" ), false);
2807 message.addRepeatedField(f("packed_enum" ), foreignBaz);
2808 }
2809
2810 public void assertPackedFieldsSetViaReflection(MessageOrBuilder message) {
2811 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_int32" )) );
2812 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_int64" )) );
2813 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_uint32" )) );
2814 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_uint64" )) );
2815 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sint32" )) );
2816 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sint64" )) );
2817 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_fixed32" )) );
2818 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_fixed64" )) );
2819 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sfixed32")) );
2820 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sfixed64")) );
2821 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_float" )) );
2822 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_double" )) );
2823 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_bool" )) );
2824 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_enum" ))) ;
2825 Assert.assertEquals(601 , message.getRepeatedField(f("packed_int32" ), 0));
2826 Assert.assertEquals(602L , message.getRepeatedField(f("packed_int64" ), 0));
2827 Assert.assertEquals(603 , message.getRepeatedField(f("packed_uint32" ), 0));
2828 Assert.assertEquals(604L , message.getRepeatedField(f("packed_uint64" ), 0));
2829 Assert.assertEquals(605 , message.getRepeatedField(f("packed_sint32" ), 0));
2830 Assert.assertEquals(606L , message.getRepeatedField(f("packed_sint64" ), 0));
2831 Assert.assertEquals(607 , message.getRepeatedField(f("packed_fixed32" ), 0));
2832 Assert.assertEquals(608L , message.getRepeatedField(f("packed_fixed64" ), 0));
2833 Assert.assertEquals(609 , message.getRepeatedField(f("packed_sfixed32"), 0));
2834 Assert.assertEquals(610L , message.getRepeatedField(f("packed_sfixed64"), 0));
2835 Assert.assertEquals(611F , message.getRepeatedField(f("packed_float" ), 0));
2836 Assert.assertEquals(612D , message.getRepeatedField(f("packed_double" ), 0));
2837 Assert.assertEquals(true , message.getRepeatedField(f("packed_bool" ), 0));
2838 Assert.assertEquals(foreignBar, message.getRepeatedField(f("packed_enum" ) ,0));
2839 Assert.assertEquals(701 , message.getRepeatedField(f("packed_int32" ), 1));
2840 Assert.assertEquals(702L , message.getRepeatedField(f("packed_int64" ), 1));
2841 Assert.assertEquals(703 , message.getRepeatedField(f("packed_uint32" ), 1));
2842 Assert.assertEquals(704L , message.getRepeatedField(f("packed_uint64" ), 1));
2843 Assert.assertEquals(705 , message.getRepeatedField(f("packed_sint32" ), 1));
2844 Assert.assertEquals(706L , message.getRepeatedField(f("packed_sint64" ), 1));
2845 Assert.assertEquals(707 , message.getRepeatedField(f("packed_fixed32" ), 1));
2846 Assert.assertEquals(708L , message.getRepeatedField(f("packed_fixed64" ), 1));
2847 Assert.assertEquals(709 , message.getRepeatedField(f("packed_sfixed32"), 1));
2848 Assert.assertEquals(710L , message.getRepeatedField(f("packed_sfixed64"), 1));
2849 Assert.assertEquals(711F , message.getRepeatedField(f("packed_float" ), 1));
2850 Assert.assertEquals(712D , message.getRepeatedField(f("packed_double" ), 1));
2851 Assert.assertEquals(false, message.getRepeatedField(f("packed_bool" ), 1));
2852 Assert.assertEquals(foreignBaz, message.getRepeatedField(f("packed_enum" ) ,1));
2853 }
2854
2855 /**
2856 * Verifies that the reflection setters for the given.Builder object throw a
2857 * NullPointerException if they are passed a null value. Uses Assert to thr ow an
2858 * appropriate assertion failure, if the condition is not verified.
2859 */
2860 public void assertReflectionSettersRejectNull(Message.Builder builder)
2861 throws Exception {
2862 try {
2863 builder.setField(f("optional_string"), null);
2864 Assert.fail("Exception was not thrown");
2865 } catch (NullPointerException e) {
2866 // We expect this exception.
2867 }
2868 try {
2869 builder.setField(f("optional_bytes"), null);
2870 Assert.fail("Exception was not thrown");
2871 } catch (NullPointerException e) {
2872 // We expect this exception.
2873 }
2874 try {
2875 builder.setField(f("optional_nested_enum"), null);
2876 Assert.fail("Exception was not thrown");
2877 } catch (NullPointerException e) {
2878 // We expect this exception.
2879 }
2880 try {
2881 builder.setField(f("optional_nested_message"),
2882 (TestAllTypes.NestedMessage) null);
2883 Assert.fail("Exception was not thrown");
2884 } catch (NullPointerException e) {
2885 // We expect this exception.
2886 }
2887 try {
2888 builder.setField(f("optional_nested_message"),
2889 (TestAllTypes.NestedMessage.Builder) null);
2890 Assert.fail("Exception was not thrown");
2891 } catch (NullPointerException e) {
2892 // We expect this exception.
2893 }
2894
2895 try {
2896 builder.addRepeatedField(f("repeated_string"), null);
2897 Assert.fail("Exception was not thrown");
2898 } catch (NullPointerException e) {
2899 // We expect this exception.
2900 }
2901 try {
2902 builder.addRepeatedField(f("repeated_bytes"), null);
2903 Assert.fail("Exception was not thrown");
2904 } catch (NullPointerException e) {
2905 // We expect this exception.
2906 }
2907 try {
2908 builder.addRepeatedField(f("repeated_nested_enum"), null);
2909 Assert.fail("Exception was not thrown");
2910 } catch (NullPointerException e) {
2911 // We expect this exception.
2912 }
2913 try {
2914 builder.addRepeatedField(f("repeated_nested_message"), null);
2915 Assert.fail("Exception was not thrown");
2916 } catch (NullPointerException e) {
2917 // We expect this exception.
2918 }
2919 }
2920
2921 /**
2922 * Verifies that the reflection repeated setters for the given Builder objec t throw a
2923 * NullPointerException if they are passed a null value. Uses Assert to thr ow an appropriate
2924 * assertion failure, if the condition is not verified.
2925 */
2926 public void assertReflectionRepeatedSettersRejectNull(Message.Builder builde r)
2927 throws Exception {
2928 builder.addRepeatedField(f("repeated_string"), "one");
2929 try {
2930 builder.setRepeatedField(f("repeated_string"), 0, null);
2931 Assert.fail("Exception was not thrown");
2932 } catch (NullPointerException e) {
2933 // We expect this exception.
2934 }
2935
2936 builder.addRepeatedField(f("repeated_bytes"), toBytes("one"));
2937 try {
2938 builder.setRepeatedField(f("repeated_bytes"), 0, null);
2939 Assert.fail("Exception was not thrown");
2940 } catch (NullPointerException e) {
2941 // We expect this exception.
2942 }
2943
2944 builder.addRepeatedField(f("repeated_nested_enum"), nestedBaz);
2945 try {
2946 builder.setRepeatedField(f("repeated_nested_enum"), 0, null);
2947 Assert.fail("Exception was not thrown");
2948 } catch (NullPointerException e) {
2949 // We expect this exception.
2950 }
2951
2952 builder.addRepeatedField(
2953 f("repeated_nested_message"),
2954 TestAllTypes.NestedMessage.newBuilder().setBb(218).build());
2955 try {
2956 builder.setRepeatedField(f("repeated_nested_message"), 0, null);
2957 Assert.fail("Exception was not thrown");
2958 } catch (NullPointerException e) {
2959 // We expect this exception.
2960 }
2961 }
2962 }
2963
2964 /**
2965 * @param filePath The path relative to
2966 * {@link #getTestDataDir}.
2967 */
2968 public static String readTextFromFile(String filePath) {
2969 return readBytesFromFile(filePath).toStringUtf8();
2970 }
2971
2972 private static File getTestDataDir() {
2973 // Search each parent directory looking for "src/google/protobuf".
2974 File ancestor = new File(".");
2975 try {
2976 ancestor = ancestor.getCanonicalFile();
2977 } catch (IOException e) {
2978 throw new RuntimeException(
2979 "Couldn't get canonical name of working directory.", e);
2980 }
2981 while (ancestor != null && ancestor.exists()) {
2982 if (new File(ancestor, "src/google/protobuf").exists()) {
2983 return new File(ancestor, "src/google/protobuf/testdata");
2984 }
2985 ancestor = ancestor.getParentFile();
2986 }
2987
2988 throw new RuntimeException(
2989 "Could not find golden files. This test must be run from within the " +
2990 "protobuf source package so that it can read test data files from the " +
2991 "C++ source tree: " + new File(".").getAbsolutePath());
2992 }
2993
2994 /**
2995 * @param filename The path relative to
2996 * {@link #getTestDataDir}.
2997 */
2998 public static ByteString readBytesFromFile(String filename) {
2999 File fullPath = new File(getTestDataDir(), filename);
3000 try {
3001 RandomAccessFile file = new RandomAccessFile(fullPath, "r");
3002 byte[] content = new byte[(int) file.length()];
3003 file.readFully(content);
3004 return ByteString.copyFrom(content);
3005 } catch (IOException e) {
3006 // Throw a RuntimeException here so that we can call this function from
3007 // static initializers.
3008 throw new IllegalArgumentException(
3009 "Couldn't read file: " + fullPath.getPath(), e);
3010 }
3011 }
3012
3013 /**
3014 * Get the bytes of the "golden message". This is a serialized TestAllTypes
3015 * with all fields set as they would be by
3016 * {@link #setAllFields(TestAllTypes.Builder)}, but it is loaded from a file
3017 * on disk rather than generated dynamically. The file is actually generated
3018 * by C++ code, so testing against it verifies compatibility with C++.
3019 */
3020 public static ByteString getGoldenMessage() {
3021 if (goldenMessage == null) {
3022 goldenMessage = readBytesFromFile("golden_message");
3023 }
3024 return goldenMessage;
3025 }
3026 private static ByteString goldenMessage = null;
3027
3028 /**
3029 * Get the bytes of the "golden packed fields message". This is a serialized
3030 * TestPackedTypes with all fields set as they would be by
3031 * {@link #setPackedFields(TestPackedTypes.Builder)}, but it is loaded from a
3032 * file on disk rather than generated dynamically. The file is actually
3033 * generated by C++ code, so testing against it verifies compatibility with
3034 * C++.
3035 */
3036 public static ByteString getGoldenPackedFieldsMessage() {
3037 if (goldenPackedFieldsMessage == null) {
3038 goldenPackedFieldsMessage =
3039 readBytesFromFile("golden_packed_fields_message");
3040 }
3041 return goldenPackedFieldsMessage;
3042 }
3043 private static ByteString goldenPackedFieldsMessage = null;
3044
3045 public static abstract class HackMessage extends GeneratedMessage {
3046 public interface MyInterface extends BuilderParent {
3047 }
3048 }
3049 /**
3050 * Mock implementation of {@link GeneratedMessage.BuilderParent} for testing.
3051 *
3052 * @author jonp@google.com (Jon Perlow)
3053 */
3054 public static class MockBuilderParent
3055 implements HackMessage.MyInterface {
3056
3057 private int invalidations;
3058
3059 //@Override (Java 1.6 override semantics, but we must support 1.5)
3060 public void markDirty() {
3061 invalidations++;
3062 }
3063
3064 public int getInvalidationCount() {
3065 return invalidations;
3066 }
3067 }
3068 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698