1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2008 Google Inc. All rights reserved. 3 // https://developers.google.com/protocol-buffers/ 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; 32 33 import static com.google.protobuf.UnittestLite.defaultBoolExtensionLite; 34 import static com.google.protobuf.UnittestLite.defaultBytesExtensionLite; 35 import static com.google.protobuf.UnittestLite.defaultCordExtensionLite; 36 import static com.google.protobuf.UnittestLite.defaultDoubleExtensionLite; 37 import static com.google.protobuf.UnittestLite.defaultFixed32ExtensionLite; 38 import static com.google.protobuf.UnittestLite.defaultFixed64ExtensionLite; 39 import static com.google.protobuf.UnittestLite.defaultFloatExtensionLite; 40 import static com.google.protobuf.UnittestLite.defaultForeignEnumExtensionLite; 41 import static com.google.protobuf.UnittestLite.defaultImportEnumExtensionLite; 42 import static com.google.protobuf.UnittestLite.defaultInt32ExtensionLite; 43 import static com.google.protobuf.UnittestLite.defaultInt64ExtensionLite; 44 import static com.google.protobuf.UnittestLite.defaultNestedEnumExtensionLite; 45 import static com.google.protobuf.UnittestLite.defaultSfixed32ExtensionLite; 46 import static com.google.protobuf.UnittestLite.defaultSfixed64ExtensionLite; 47 import static com.google.protobuf.UnittestLite.defaultSint32ExtensionLite; 48 import static com.google.protobuf.UnittestLite.defaultSint64ExtensionLite; 49 import static com.google.protobuf.UnittestLite.defaultStringExtensionLite; 50 import static com.google.protobuf.UnittestLite.defaultStringPieceExtensionLite; 51 import static com.google.protobuf.UnittestLite.defaultUint32ExtensionLite; 52 import static com.google.protobuf.UnittestLite.defaultUint64ExtensionLite; 53 import static com.google.protobuf.UnittestLite.oneofBytesExtensionLite; 54 import static com.google.protobuf.UnittestLite.oneofNestedMessageExtensionLite; 55 import static com.google.protobuf.UnittestLite.oneofStringExtensionLite; 56 import static com.google.protobuf.UnittestLite.oneofUint32ExtensionLite; 57 import static com.google.protobuf.UnittestLite.optionalBoolExtensionLite; 58 import static com.google.protobuf.UnittestLite.optionalBytesExtensionLite; 59 import static com.google.protobuf.UnittestLite.optionalCordExtensionLite; 60 import static com.google.protobuf.UnittestLite.optionalDoubleExtensionLite; 61 import static com.google.protobuf.UnittestLite.optionalFixed32ExtensionLite; 62 import static com.google.protobuf.UnittestLite.optionalFixed64ExtensionLite; 63 import static com.google.protobuf.UnittestLite.optionalFloatExtensionLite; 64 import static com.google.protobuf.UnittestLite.optionalForeignEnumExtensionLite; 65 import static com.google.protobuf.UnittestLite.optionalForeignMessageExtensionLite; 66 import static com.google.protobuf.UnittestLite.optionalGroupExtensionLite; 67 import static com.google.protobuf.UnittestLite.optionalImportEnumExtensionLite; 68 import static com.google.protobuf.UnittestLite.optionalImportMessageExtensionLite; 69 import static com.google.protobuf.UnittestLite.optionalInt32ExtensionLite; 70 import static com.google.protobuf.UnittestLite.optionalInt64ExtensionLite; 71 import static com.google.protobuf.UnittestLite.optionalLazyMessageExtensionLite; 72 import static com.google.protobuf.UnittestLite.optionalNestedEnumExtensionLite; 73 import static com.google.protobuf.UnittestLite.optionalNestedMessageExtensionLite; 74 import static com.google.protobuf.UnittestLite.optionalPublicImportMessageExtensionLite; 75 import static com.google.protobuf.UnittestLite.optionalSfixed32ExtensionLite; 76 import static com.google.protobuf.UnittestLite.optionalSfixed64ExtensionLite; 77 import static com.google.protobuf.UnittestLite.optionalSint32ExtensionLite; 78 import static com.google.protobuf.UnittestLite.optionalSint64ExtensionLite; 79 import static com.google.protobuf.UnittestLite.optionalStringExtensionLite; 80 import static com.google.protobuf.UnittestLite.optionalStringPieceExtensionLite; 81 import static com.google.protobuf.UnittestLite.optionalUint32ExtensionLite; 82 import static com.google.protobuf.UnittestLite.optionalUint64ExtensionLite; 83 import static com.google.protobuf.UnittestLite.packedBoolExtensionLite; 84 import static com.google.protobuf.UnittestLite.packedDoubleExtensionLite; 85 import static com.google.protobuf.UnittestLite.packedEnumExtensionLite; 86 import static com.google.protobuf.UnittestLite.packedFixed32ExtensionLite; 87 import static com.google.protobuf.UnittestLite.packedFixed64ExtensionLite; 88 import static com.google.protobuf.UnittestLite.packedFloatExtensionLite; 89 import static com.google.protobuf.UnittestLite.packedInt32ExtensionLite; 90 import static com.google.protobuf.UnittestLite.packedInt64ExtensionLite; 91 import static com.google.protobuf.UnittestLite.packedSfixed32ExtensionLite; 92 import static com.google.protobuf.UnittestLite.packedSfixed64ExtensionLite; 93 import static com.google.protobuf.UnittestLite.packedSint32ExtensionLite; 94 import static com.google.protobuf.UnittestLite.packedSint64ExtensionLite; 95 import static com.google.protobuf.UnittestLite.packedUint32ExtensionLite; 96 import static com.google.protobuf.UnittestLite.packedUint64ExtensionLite; 97 import static com.google.protobuf.UnittestLite.repeatedBoolExtensionLite; 98 import static com.google.protobuf.UnittestLite.repeatedBytesExtensionLite; 99 import static com.google.protobuf.UnittestLite.repeatedCordExtensionLite; 100 import static com.google.protobuf.UnittestLite.repeatedDoubleExtensionLite; 101 import static com.google.protobuf.UnittestLite.repeatedFixed32ExtensionLite; 102 import static com.google.protobuf.UnittestLite.repeatedFixed64ExtensionLite; 103 import static com.google.protobuf.UnittestLite.repeatedFloatExtensionLite; 104 import static com.google.protobuf.UnittestLite.repeatedForeignEnumExtensionLite; 105 import static com.google.protobuf.UnittestLite.repeatedForeignMessageExtensionLite; 106 import static com.google.protobuf.UnittestLite.repeatedGroupExtensionLite; 107 import static com.google.protobuf.UnittestLite.repeatedImportEnumExtensionLite; 108 import static com.google.protobuf.UnittestLite.repeatedImportMessageExtensionLite; 109 import static com.google.protobuf.UnittestLite.repeatedInt32ExtensionLite; 110 import static com.google.protobuf.UnittestLite.repeatedInt64ExtensionLite; 111 import static com.google.protobuf.UnittestLite.repeatedLazyMessageExtensionLite; 112 import static com.google.protobuf.UnittestLite.repeatedNestedEnumExtensionLite; 113 import static com.google.protobuf.UnittestLite.repeatedNestedMessageExtensionLite; 114 import static com.google.protobuf.UnittestLite.repeatedSfixed32ExtensionLite; 115 import static com.google.protobuf.UnittestLite.repeatedSfixed64ExtensionLite; 116 import static com.google.protobuf.UnittestLite.repeatedSint32ExtensionLite; 117 import static com.google.protobuf.UnittestLite.repeatedSint64ExtensionLite; 118 import static com.google.protobuf.UnittestLite.repeatedStringExtensionLite; 119 import static com.google.protobuf.UnittestLite.repeatedStringPieceExtensionLite; 120 import static com.google.protobuf.UnittestLite.repeatedUint32ExtensionLite; 121 import static com.google.protobuf.UnittestLite.repeatedUint64ExtensionLite; 122 import static protobuf_unittest.UnittestProto.OptionalGroup_extension; 123 import static protobuf_unittest.UnittestProto.RepeatedGroup_extension; 124 import static protobuf_unittest.UnittestProto.defaultBoolExtension; 125 import static protobuf_unittest.UnittestProto.defaultBytesExtension; 126 import static protobuf_unittest.UnittestProto.defaultCordExtension; 127 import static protobuf_unittest.UnittestProto.defaultDoubleExtension; 128 import static protobuf_unittest.UnittestProto.defaultFixed32Extension; 129 import static protobuf_unittest.UnittestProto.defaultFixed64Extension; 130 import static protobuf_unittest.UnittestProto.defaultFloatExtension; 131 import static protobuf_unittest.UnittestProto.defaultForeignEnumExtension; 132 import static protobuf_unittest.UnittestProto.defaultImportEnumExtension; 133 // The static imports are to avoid 100+ char lines. The following is roughly equivalent to 134 // import static protobuf_unittest.UnittestProto.*; 135 import static protobuf_unittest.UnittestProto.defaultInt32Extension; 136 import static protobuf_unittest.UnittestProto.defaultInt64Extension; 137 import static protobuf_unittest.UnittestProto.defaultNestedEnumExtension; 138 import static protobuf_unittest.UnittestProto.defaultSfixed32Extension; 139 import static protobuf_unittest.UnittestProto.defaultSfixed64Extension; 140 import static protobuf_unittest.UnittestProto.defaultSint32Extension; 141 import static protobuf_unittest.UnittestProto.defaultSint64Extension; 142 import static protobuf_unittest.UnittestProto.defaultStringExtension; 143 import static protobuf_unittest.UnittestProto.defaultStringPieceExtension; 144 import static protobuf_unittest.UnittestProto.defaultUint32Extension; 145 import static protobuf_unittest.UnittestProto.defaultUint64Extension; 146 import static protobuf_unittest.UnittestProto.oneofBytesExtension; 147 import static protobuf_unittest.UnittestProto.oneofNestedMessageExtension; 148 import static protobuf_unittest.UnittestProto.oneofStringExtension; 149 import static protobuf_unittest.UnittestProto.oneofUint32Extension; 150 import static protobuf_unittest.UnittestProto.optionalBoolExtension; 151 import static protobuf_unittest.UnittestProto.optionalBytesExtension; 152 import static protobuf_unittest.UnittestProto.optionalCordExtension; 153 import static protobuf_unittest.UnittestProto.optionalDoubleExtension; 154 import static protobuf_unittest.UnittestProto.optionalFixed32Extension; 155 import static protobuf_unittest.UnittestProto.optionalFixed64Extension; 156 import static protobuf_unittest.UnittestProto.optionalFloatExtension; 157 import static protobuf_unittest.UnittestProto.optionalForeignEnumExtension; 158 import static protobuf_unittest.UnittestProto.optionalForeignMessageExtension; 159 import static protobuf_unittest.UnittestProto.optionalGroupExtension; 160 import static protobuf_unittest.UnittestProto.optionalImportEnumExtension; 161 import static protobuf_unittest.UnittestProto.optionalImportMessageExtension; 162 import static protobuf_unittest.UnittestProto.optionalInt32Extension; 163 import static protobuf_unittest.UnittestProto.optionalInt64Extension; 164 import static protobuf_unittest.UnittestProto.optionalLazyMessageExtension; 165 import static protobuf_unittest.UnittestProto.optionalNestedEnumExtension; 166 import static protobuf_unittest.UnittestProto.optionalNestedMessageExtension; 167 import static protobuf_unittest.UnittestProto.optionalPublicImportMessageExtension; 168 import static protobuf_unittest.UnittestProto.optionalSfixed32Extension; 169 import static protobuf_unittest.UnittestProto.optionalSfixed64Extension; 170 import static protobuf_unittest.UnittestProto.optionalSint32Extension; 171 import static protobuf_unittest.UnittestProto.optionalSint64Extension; 172 import static protobuf_unittest.UnittestProto.optionalStringExtension; 173 import static protobuf_unittest.UnittestProto.optionalStringPieceExtension; 174 import static protobuf_unittest.UnittestProto.optionalUint32Extension; 175 import static protobuf_unittest.UnittestProto.optionalUint64Extension; 176 import static protobuf_unittest.UnittestProto.packedBoolExtension; 177 import static protobuf_unittest.UnittestProto.packedDoubleExtension; 178 import static protobuf_unittest.UnittestProto.packedEnumExtension; 179 import static protobuf_unittest.UnittestProto.packedFixed32Extension; 180 import static protobuf_unittest.UnittestProto.packedFixed64Extension; 181 import static protobuf_unittest.UnittestProto.packedFloatExtension; 182 import static protobuf_unittest.UnittestProto.packedInt32Extension; 183 import static protobuf_unittest.UnittestProto.packedInt64Extension; 184 import static protobuf_unittest.UnittestProto.packedSfixed32Extension; 185 import static protobuf_unittest.UnittestProto.packedSfixed64Extension; 186 import static protobuf_unittest.UnittestProto.packedSint32Extension; 187 import static protobuf_unittest.UnittestProto.packedSint64Extension; 188 import static protobuf_unittest.UnittestProto.packedUint32Extension; 189 import static protobuf_unittest.UnittestProto.packedUint64Extension; 190 import static protobuf_unittest.UnittestProto.repeatedBoolExtension; 191 import static protobuf_unittest.UnittestProto.repeatedBytesExtension; 192 import static protobuf_unittest.UnittestProto.repeatedCordExtension; 193 import static protobuf_unittest.UnittestProto.repeatedDoubleExtension; 194 import static protobuf_unittest.UnittestProto.repeatedFixed32Extension; 195 import static protobuf_unittest.UnittestProto.repeatedFixed64Extension; 196 import static protobuf_unittest.UnittestProto.repeatedFloatExtension; 197 import static protobuf_unittest.UnittestProto.repeatedForeignEnumExtension; 198 import static protobuf_unittest.UnittestProto.repeatedForeignMessageExtension; 199 import static protobuf_unittest.UnittestProto.repeatedGroupExtension; 200 import static protobuf_unittest.UnittestProto.repeatedImportEnumExtension; 201 import static protobuf_unittest.UnittestProto.repeatedImportMessageExtension; 202 import static protobuf_unittest.UnittestProto.repeatedInt32Extension; 203 import static protobuf_unittest.UnittestProto.repeatedInt64Extension; 204 import static protobuf_unittest.UnittestProto.repeatedLazyMessageExtension; 205 import static protobuf_unittest.UnittestProto.repeatedNestedEnumExtension; 206 import static protobuf_unittest.UnittestProto.repeatedNestedMessageExtension; 207 import static protobuf_unittest.UnittestProto.repeatedSfixed32Extension; 208 import static protobuf_unittest.UnittestProto.repeatedSfixed64Extension; 209 import static protobuf_unittest.UnittestProto.repeatedSint32Extension; 210 import static protobuf_unittest.UnittestProto.repeatedSint64Extension; 211 import static protobuf_unittest.UnittestProto.repeatedStringExtension; 212 import static protobuf_unittest.UnittestProto.repeatedStringPieceExtension; 213 import static protobuf_unittest.UnittestProto.repeatedUint32Extension; 214 import static protobuf_unittest.UnittestProto.repeatedUint64Extension; 215 216 import com.google.protobuf.UnittestImportLite.ImportEnumLite; 217 import com.google.protobuf.UnittestLite.ForeignEnumLite; 218 import com.google.protobuf.UnittestLite.TestAllExtensionsLiteOrBuilder; 219 import com.google.protobuf.UnittestLite.TestAllTypesLite; 220 import com.google.protobuf.UnittestLite.TestPackedExtensionsLite; 221 import com.google.protobuf.test.UnittestImport.ImportEnum; 222 import com.google.protobuf.test.UnittestImport.ImportMessage; 223 import com.google.protobuf.test.UnittestImportPublic.PublicImportMessage; 224 import protobuf_unittest.UnittestProto; 225 import protobuf_unittest.UnittestProto.ForeignEnum; 226 import protobuf_unittest.UnittestProto.ForeignMessage; 227 import protobuf_unittest.UnittestProto.TestAllExtensions; 228 import protobuf_unittest.UnittestProto.TestAllExtensionsOrBuilder; 229 import protobuf_unittest.UnittestProto.TestAllTypes; 230 import protobuf_unittest.UnittestProto.TestAllTypesOrBuilder; 231 import protobuf_unittest.UnittestProto.TestOneof2; 232 import protobuf_unittest.UnittestProto.TestPackedExtensions; 233 import protobuf_unittest.UnittestProto.TestPackedTypes; 234 import protobuf_unittest.UnittestProto.TestUnpackedTypes; 235 236 import junit.framework.Assert; 237 238 import java.io.File; 239 import java.io.IOException; 240 import java.io.RandomAccessFile; 241 242 /** 243 * Contains methods for setting all fields of {@code TestAllTypes} to 244 * some values as well as checking that all the fields are set to those values. 245 * These are useful for testing various protocol message features, e.g. 246 * set all fields of a message, serialize it, parse it, and check that all 247 * fields are set. 248 * 249 * <p>This code is not to be used outside of {@code com.google.protobuf} and 250 * subpackages. 251 * 252 * @author kenton (at) google.com Kenton Varda 253 */ 254 public final class TestUtil { 255 private TestUtil() {} 256 257 /** Helper to convert a String to ByteString. */ 258 static ByteString toBytes(String str) { 259 return ByteString.copyFrom(str.getBytes(Internal.UTF_8)); 260 } 261 262 /** 263 * Get a {@code TestAllTypes} with all fields set as they would be by 264 * {@link #setAllFields(TestAllTypes.Builder)}. 265 */ 266 public static TestAllTypes getAllSet() { 267 TestAllTypes.Builder builder = TestAllTypes.newBuilder(); 268 setAllFields(builder); 269 return builder.build(); 270 } 271 272 /** 273 * Get a {@code TestAllTypes.Builder} with all fields set as they would be by 274 * {@link #setAllFields(TestAllTypes.Builder)}. 275 */ 276 public static TestAllTypes.Builder getAllSetBuilder() { 277 TestAllTypes.Builder builder = TestAllTypes.newBuilder(); 278 setAllFields(builder); 279 return builder; 280 } 281 282 /** 283 * Get a {@code TestAllExtensions} with all fields set as they would be by 284 * {@link #setAllExtensions(TestAllExtensions.Builder)}. 285 */ 286 public static TestAllExtensions getAllExtensionsSet() { 287 TestAllExtensions.Builder builder = TestAllExtensions.newBuilder(); 288 setAllExtensions(builder); 289 return builder.build(); 290 } 291 292 public static TestPackedTypes getPackedSet() { 293 TestPackedTypes.Builder builder = TestPackedTypes.newBuilder(); 294 setPackedFields(builder); 295 return builder.build(); 296 } 297 298 public static TestUnpackedTypes getUnpackedSet() { 299 TestUnpackedTypes.Builder builder = TestUnpackedTypes.newBuilder(); 300 setUnpackedFields(builder); 301 return builder.build(); 302 } 303 304 public static TestPackedExtensions getPackedExtensionsSet() { 305 TestPackedExtensions.Builder builder = TestPackedExtensions.newBuilder(); 306 setPackedExtensions(builder); 307 return builder.build(); 308 } 309 310 /** 311 * Set every field of {@code message} to the values expected by 312 * {@code assertAllFieldsSet()}. 313 */ 314 public static void setAllFields(TestAllTypes.Builder message) { 315 message.setOptionalInt32 (101); 316 message.setOptionalInt64 (102); 317 message.setOptionalUint32 (103); 318 message.setOptionalUint64 (104); 319 message.setOptionalSint32 (105); 320 message.setOptionalSint64 (106); 321 message.setOptionalFixed32 (107); 322 message.setOptionalFixed64 (108); 323 message.setOptionalSfixed32(109); 324 message.setOptionalSfixed64(110); 325 message.setOptionalFloat (111); 326 message.setOptionalDouble (112); 327 message.setOptionalBool (true); 328 message.setOptionalString ("115"); 329 message.setOptionalBytes (toBytes("116")); 330 331 message.setOptionalGroup( 332 TestAllTypes.OptionalGroup.newBuilder().setA(117).build()); 333 message.setOptionalNestedMessage( 334 TestAllTypes.NestedMessage.newBuilder().setBb(118).build()); 335 message.setOptionalForeignMessage( 336 ForeignMessage.newBuilder().setC(119).build()); 337 message.setOptionalImportMessage( 338 ImportMessage.newBuilder().setD(120).build()); 339 message.setOptionalPublicImportMessage( 340 PublicImportMessage.newBuilder().setE(126).build()); 341 message.setOptionalLazyMessage( 342 TestAllTypes.NestedMessage.newBuilder().setBb(127).build()); 343 344 message.setOptionalNestedEnum (TestAllTypes.NestedEnum.BAZ); 345 message.setOptionalForeignEnum(ForeignEnum.FOREIGN_BAZ); 346 message.setOptionalImportEnum (ImportEnum.IMPORT_BAZ); 347 348 message.setOptionalStringPiece("124"); 349 message.setOptionalCord("125"); 350 351 // ----------------------------------------------------------------- 352 353 message.addRepeatedInt32 (201); 354 message.addRepeatedInt64 (202); 355 message.addRepeatedUint32 (203); 356 message.addRepeatedUint64 (204); 357 message.addRepeatedSint32 (205); 358 message.addRepeatedSint64 (206); 359 message.addRepeatedFixed32 (207); 360 message.addRepeatedFixed64 (208); 361 message.addRepeatedSfixed32(209); 362 message.addRepeatedSfixed64(210); 363 message.addRepeatedFloat (211); 364 message.addRepeatedDouble (212); 365 message.addRepeatedBool (true); 366 message.addRepeatedString ("215"); 367 message.addRepeatedBytes (toBytes("216")); 368 369 message.addRepeatedGroup( 370 TestAllTypes.RepeatedGroup.newBuilder().setA(217).build()); 371 message.addRepeatedNestedMessage( 372 TestAllTypes.NestedMessage.newBuilder().setBb(218).build()); 373 message.addRepeatedForeignMessage( 374 ForeignMessage.newBuilder().setC(219).build()); 375 message.addRepeatedImportMessage( 376 ImportMessage.newBuilder().setD(220).build()); 377 message.addRepeatedLazyMessage( 378 TestAllTypes.NestedMessage.newBuilder().setBb(227).build()); 379 380 message.addRepeatedNestedEnum (TestAllTypes.NestedEnum.BAR); 381 message.addRepeatedForeignEnum(ForeignEnum.FOREIGN_BAR); 382 message.addRepeatedImportEnum (ImportEnum.IMPORT_BAR); 383 384 message.addRepeatedStringPiece("224"); 385 message.addRepeatedCord("225"); 386 387 // Add a second one of each field. 388 message.addRepeatedInt32 (301); 389 message.addRepeatedInt64 (302); 390 message.addRepeatedUint32 (303); 391 message.addRepeatedUint64 (304); 392 message.addRepeatedSint32 (305); 393 message.addRepeatedSint64 (306); 394 message.addRepeatedFixed32 (307); 395 message.addRepeatedFixed64 (308); 396 message.addRepeatedSfixed32(309); 397 message.addRepeatedSfixed64(310); 398 message.addRepeatedFloat (311); 399 message.addRepeatedDouble (312); 400 message.addRepeatedBool (false); 401 message.addRepeatedString ("315"); 402 message.addRepeatedBytes (toBytes("316")); 403 404 message.addRepeatedGroup( 405 TestAllTypes.RepeatedGroup.newBuilder().setA(317).build()); 406 message.addRepeatedNestedMessage( 407 TestAllTypes.NestedMessage.newBuilder().setBb(318).build()); 408 message.addRepeatedForeignMessage( 409 ForeignMessage.newBuilder().setC(319).build()); 410 message.addRepeatedImportMessage( 411 ImportMessage.newBuilder().setD(320).build()); 412 message.addRepeatedLazyMessage( 413 TestAllTypes.NestedMessage.newBuilder().setBb(327).build()); 414 415 message.addRepeatedNestedEnum (TestAllTypes.NestedEnum.BAZ); 416 message.addRepeatedForeignEnum(ForeignEnum.FOREIGN_BAZ); 417 message.addRepeatedImportEnum (ImportEnum.IMPORT_BAZ); 418 419 message.addRepeatedStringPiece("324"); 420 message.addRepeatedCord("325"); 421 422 // ----------------------------------------------------------------- 423 424 message.setDefaultInt32 (401); 425 message.setDefaultInt64 (402); 426 message.setDefaultUint32 (403); 427 message.setDefaultUint64 (404); 428 message.setDefaultSint32 (405); 429 message.setDefaultSint64 (406); 430 message.setDefaultFixed32 (407); 431 message.setDefaultFixed64 (408); 432 message.setDefaultSfixed32(409); 433 message.setDefaultSfixed64(410); 434 message.setDefaultFloat (411); 435 message.setDefaultDouble (412); 436 message.setDefaultBool (false); 437 message.setDefaultString ("415"); 438 message.setDefaultBytes (toBytes("416")); 439 440 message.setDefaultNestedEnum (TestAllTypes.NestedEnum.FOO); 441 message.setDefaultForeignEnum(ForeignEnum.FOREIGN_FOO); 442 message.setDefaultImportEnum (ImportEnum.IMPORT_FOO); 443 444 message.setDefaultStringPiece("424"); 445 message.setDefaultCord("425"); 446 447 message.setOneofUint32(601); 448 message.setOneofNestedMessage( 449 TestAllTypes.NestedMessage.newBuilder().setBb(602).build()); 450 message.setOneofString("603"); 451 message.setOneofBytes(toBytes("604")); 452 } 453 454 // ------------------------------------------------------------------- 455 456 /** 457 * Modify the repeated fields of {@code message} to contain the values 458 * expected by {@code assertRepeatedFieldsModified()}. 459 */ 460 public static void modifyRepeatedFields(TestAllTypes.Builder message) { 461 message.setRepeatedInt32 (1, 501); 462 message.setRepeatedInt64 (1, 502); 463 message.setRepeatedUint32 (1, 503); 464 message.setRepeatedUint64 (1, 504); 465 message.setRepeatedSint32 (1, 505); 466 message.setRepeatedSint64 (1, 506); 467 message.setRepeatedFixed32 (1, 507); 468 message.setRepeatedFixed64 (1, 508); 469 message.setRepeatedSfixed32(1, 509); 470 message.setRepeatedSfixed64(1, 510); 471 message.setRepeatedFloat (1, 511); 472 message.setRepeatedDouble (1, 512); 473 message.setRepeatedBool (1, true); 474 message.setRepeatedString (1, "515"); 475 message.setRepeatedBytes (1, toBytes("516")); 476 477 message.setRepeatedGroup(1, 478 TestAllTypes.RepeatedGroup.newBuilder().setA(517).build()); 479 message.setRepeatedNestedMessage(1, 480 TestAllTypes.NestedMessage.newBuilder().setBb(518).build()); 481 message.setRepeatedForeignMessage(1, 482 ForeignMessage.newBuilder().setC(519).build()); 483 message.setRepeatedImportMessage(1, 484 ImportMessage.newBuilder().setD(520).build()); 485 message.setRepeatedLazyMessage(1, 486 TestAllTypes.NestedMessage.newBuilder().setBb(527).build()); 487 488 message.setRepeatedNestedEnum (1, TestAllTypes.NestedEnum.FOO); 489 message.setRepeatedForeignEnum(1, ForeignEnum.FOREIGN_FOO); 490 message.setRepeatedImportEnum (1, ImportEnum.IMPORT_FOO); 491 492 message.setRepeatedStringPiece(1, "524"); 493 message.setRepeatedCord(1, "525"); 494 } 495 496 // ------------------------------------------------------------------- 497 498 /** 499 * Assert (using {@code junit.framework.Assert}} that all fields of 500 * {@code message} are set to the values assigned by {@code setAllFields}. 501 */ 502 public static void assertAllFieldsSet(TestAllTypesOrBuilder message) { 503 Assert.assertTrue(message.hasOptionalInt32 ()); 504 Assert.assertTrue(message.hasOptionalInt64 ()); 505 Assert.assertTrue(message.hasOptionalUint32 ()); 506 Assert.assertTrue(message.hasOptionalUint64 ()); 507 Assert.assertTrue(message.hasOptionalSint32 ()); 508 Assert.assertTrue(message.hasOptionalSint64 ()); 509 Assert.assertTrue(message.hasOptionalFixed32 ()); 510 Assert.assertTrue(message.hasOptionalFixed64 ()); 511 Assert.assertTrue(message.hasOptionalSfixed32()); 512 Assert.assertTrue(message.hasOptionalSfixed64()); 513 Assert.assertTrue(message.hasOptionalFloat ()); 514 Assert.assertTrue(message.hasOptionalDouble ()); 515 Assert.assertTrue(message.hasOptionalBool ()); 516 Assert.assertTrue(message.hasOptionalString ()); 517 Assert.assertTrue(message.hasOptionalBytes ()); 518 519 Assert.assertTrue(message.hasOptionalGroup ()); 520 Assert.assertTrue(message.hasOptionalNestedMessage ()); 521 Assert.assertTrue(message.hasOptionalForeignMessage()); 522 Assert.assertTrue(message.hasOptionalImportMessage ()); 523 524 Assert.assertTrue(message.getOptionalGroup ().hasA()); 525 Assert.assertTrue(message.getOptionalNestedMessage ().hasBb()); 526 Assert.assertTrue(message.getOptionalForeignMessage().hasC()); 527 Assert.assertTrue(message.getOptionalImportMessage ().hasD()); 528 529 Assert.assertTrue(message.hasOptionalNestedEnum ()); 530 Assert.assertTrue(message.hasOptionalForeignEnum()); 531 Assert.assertTrue(message.hasOptionalImportEnum ()); 532 533 Assert.assertTrue(message.hasOptionalStringPiece()); 534 Assert.assertTrue(message.hasOptionalCord()); 535 536 Assert.assertEquals(101 , message.getOptionalInt32 ()); 537 Assert.assertEquals(102 , message.getOptionalInt64 ()); 538 Assert.assertEquals(103 , message.getOptionalUint32 ()); 539 Assert.assertEquals(104 , message.getOptionalUint64 ()); 540 Assert.assertEquals(105 , message.getOptionalSint32 ()); 541 Assert.assertEquals(106 , message.getOptionalSint64 ()); 542 Assert.assertEquals(107 , message.getOptionalFixed32 ()); 543 Assert.assertEquals(108 , message.getOptionalFixed64 ()); 544 Assert.assertEquals(109 , message.getOptionalSfixed32()); 545 Assert.assertEquals(110 , message.getOptionalSfixed64()); 546 Assert.assertEquals(111 , message.getOptionalFloat (), 0.0); 547 Assert.assertEquals(112 , message.getOptionalDouble (), 0.0); 548 Assert.assertEquals(true , message.getOptionalBool ()); 549 Assert.assertEquals("115", message.getOptionalString ()); 550 Assert.assertEquals(toBytes("116"), message.getOptionalBytes()); 551 552 Assert.assertEquals(117, message.getOptionalGroup ().getA()); 553 Assert.assertEquals(118, message.getOptionalNestedMessage ().getBb()); 554 Assert.assertEquals(119, message.getOptionalForeignMessage ().getC()); 555 Assert.assertEquals(120, message.getOptionalImportMessage ().getD()); 556 Assert.assertEquals(126, message.getOptionalPublicImportMessage().getE()); 557 Assert.assertEquals(127, message.getOptionalLazyMessage ().getBb()); 558 559 Assert.assertEquals(TestAllTypes.NestedEnum.BAZ, message.getOptionalNestedEnum()); 560 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getOptionalForeignEnum()); 561 Assert.assertEquals(ImportEnum.IMPORT_BAZ, message.getOptionalImportEnum()); 562 563 Assert.assertEquals("124", message.getOptionalStringPiece()); 564 Assert.assertEquals("125", message.getOptionalCord()); 565 566 // ----------------------------------------------------------------- 567 568 Assert.assertEquals(2, message.getRepeatedInt32Count ()); 569 Assert.assertEquals(2, message.getRepeatedInt64Count ()); 570 Assert.assertEquals(2, message.getRepeatedUint32Count ()); 571 Assert.assertEquals(2, message.getRepeatedUint64Count ()); 572 Assert.assertEquals(2, message.getRepeatedSint32Count ()); 573 Assert.assertEquals(2, message.getRepeatedSint64Count ()); 574 Assert.assertEquals(2, message.getRepeatedFixed32Count ()); 575 Assert.assertEquals(2, message.getRepeatedFixed64Count ()); 576 Assert.assertEquals(2, message.getRepeatedSfixed32Count()); 577 Assert.assertEquals(2, message.getRepeatedSfixed64Count()); 578 Assert.assertEquals(2, message.getRepeatedFloatCount ()); 579 Assert.assertEquals(2, message.getRepeatedDoubleCount ()); 580 Assert.assertEquals(2, message.getRepeatedBoolCount ()); 581 Assert.assertEquals(2, message.getRepeatedStringCount ()); 582 Assert.assertEquals(2, message.getRepeatedBytesCount ()); 583 584 Assert.assertEquals(2, message.getRepeatedGroupCount ()); 585 Assert.assertEquals(2, message.getRepeatedNestedMessageCount ()); 586 Assert.assertEquals(2, message.getRepeatedForeignMessageCount()); 587 Assert.assertEquals(2, message.getRepeatedImportMessageCount ()); 588 Assert.assertEquals(2, message.getRepeatedLazyMessageCount ()); 589 Assert.assertEquals(2, message.getRepeatedNestedEnumCount ()); 590 Assert.assertEquals(2, message.getRepeatedForeignEnumCount ()); 591 Assert.assertEquals(2, message.getRepeatedImportEnumCount ()); 592 593 Assert.assertEquals(2, message.getRepeatedStringPieceCount()); 594 Assert.assertEquals(2, message.getRepeatedCordCount()); 595 596 Assert.assertEquals(201 , message.getRepeatedInt32 (0)); 597 Assert.assertEquals(202 , message.getRepeatedInt64 (0)); 598 Assert.assertEquals(203 , message.getRepeatedUint32 (0)); 599 Assert.assertEquals(204 , message.getRepeatedUint64 (0)); 600 Assert.assertEquals(205 , message.getRepeatedSint32 (0)); 601 Assert.assertEquals(206 , message.getRepeatedSint64 (0)); 602 Assert.assertEquals(207 , message.getRepeatedFixed32 (0)); 603 Assert.assertEquals(208 , message.getRepeatedFixed64 (0)); 604 Assert.assertEquals(209 , message.getRepeatedSfixed32(0)); 605 Assert.assertEquals(210 , message.getRepeatedSfixed64(0)); 606 Assert.assertEquals(211 , message.getRepeatedFloat (0), 0.0); 607 Assert.assertEquals(212 , message.getRepeatedDouble (0), 0.0); 608 Assert.assertEquals(true , message.getRepeatedBool (0)); 609 Assert.assertEquals("215", message.getRepeatedString (0)); 610 Assert.assertEquals(toBytes("216"), message.getRepeatedBytes(0)); 611 612 Assert.assertEquals(217, message.getRepeatedGroup (0).getA()); 613 Assert.assertEquals(218, message.getRepeatedNestedMessage (0).getBb()); 614 Assert.assertEquals(219, message.getRepeatedForeignMessage(0).getC()); 615 Assert.assertEquals(220, message.getRepeatedImportMessage (0).getD()); 616 Assert.assertEquals(227, message.getRepeatedLazyMessage (0).getBb()); 617 618 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getRepeatedNestedEnum (0)); 619 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getRepeatedForeignEnum(0)); 620 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getRepeatedImportEnum(0)); 621 622 Assert.assertEquals("224", message.getRepeatedStringPiece(0)); 623 Assert.assertEquals("225", message.getRepeatedCord(0)); 624 625 Assert.assertEquals(301 , message.getRepeatedInt32 (1)); 626 Assert.assertEquals(302 , message.getRepeatedInt64 (1)); 627 Assert.assertEquals(303 , message.getRepeatedUint32 (1)); 628 Assert.assertEquals(304 , message.getRepeatedUint64 (1)); 629 Assert.assertEquals(305 , message.getRepeatedSint32 (1)); 630 Assert.assertEquals(306 , message.getRepeatedSint64 (1)); 631 Assert.assertEquals(307 , message.getRepeatedFixed32 (1)); 632 Assert.assertEquals(308 , message.getRepeatedFixed64 (1)); 633 Assert.assertEquals(309 , message.getRepeatedSfixed32(1)); 634 Assert.assertEquals(310 , message.getRepeatedSfixed64(1)); 635 Assert.assertEquals(311 , message.getRepeatedFloat (1), 0.0); 636 Assert.assertEquals(312 , message.getRepeatedDouble (1), 0.0); 637 Assert.assertEquals(false, message.getRepeatedBool (1)); 638 Assert.assertEquals("315", message.getRepeatedString (1)); 639 Assert.assertEquals(toBytes("316"), message.getRepeatedBytes(1)); 640 641 Assert.assertEquals(317, message.getRepeatedGroup (1).getA()); 642 Assert.assertEquals(318, message.getRepeatedNestedMessage (1).getBb()); 643 Assert.assertEquals(319, message.getRepeatedForeignMessage(1).getC()); 644 Assert.assertEquals(320, message.getRepeatedImportMessage (1).getD()); 645 Assert.assertEquals(327, message.getRepeatedLazyMessage (1).getBb()); 646 647 Assert.assertEquals(TestAllTypes.NestedEnum.BAZ, message.getRepeatedNestedEnum (1)); 648 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getRepeatedForeignEnum(1)); 649 Assert.assertEquals(ImportEnum.IMPORT_BAZ, message.getRepeatedImportEnum(1)); 650 651 Assert.assertEquals("324", message.getRepeatedStringPiece(1)); 652 Assert.assertEquals("325", message.getRepeatedCord(1)); 653 654 // ----------------------------------------------------------------- 655 656 Assert.assertTrue(message.hasDefaultInt32 ()); 657 Assert.assertTrue(message.hasDefaultInt64 ()); 658 Assert.assertTrue(message.hasDefaultUint32 ()); 659 Assert.assertTrue(message.hasDefaultUint64 ()); 660 Assert.assertTrue(message.hasDefaultSint32 ()); 661 Assert.assertTrue(message.hasDefaultSint64 ()); 662 Assert.assertTrue(message.hasDefaultFixed32 ()); 663 Assert.assertTrue(message.hasDefaultFixed64 ()); 664 Assert.assertTrue(message.hasDefaultSfixed32()); 665 Assert.assertTrue(message.hasDefaultSfixed64()); 666 Assert.assertTrue(message.hasDefaultFloat ()); 667 Assert.assertTrue(message.hasDefaultDouble ()); 668 Assert.assertTrue(message.hasDefaultBool ()); 669 Assert.assertTrue(message.hasDefaultString ()); 670 Assert.assertTrue(message.hasDefaultBytes ()); 671 672 Assert.assertTrue(message.hasDefaultNestedEnum ()); 673 Assert.assertTrue(message.hasDefaultForeignEnum()); 674 Assert.assertTrue(message.hasDefaultImportEnum ()); 675 676 Assert.assertTrue(message.hasDefaultStringPiece()); 677 Assert.assertTrue(message.hasDefaultCord()); 678 679 Assert.assertEquals(401 , message.getDefaultInt32 ()); 680 Assert.assertEquals(402 , message.getDefaultInt64 ()); 681 Assert.assertEquals(403 , message.getDefaultUint32 ()); 682 Assert.assertEquals(404 , message.getDefaultUint64 ()); 683 Assert.assertEquals(405 , message.getDefaultSint32 ()); 684 Assert.assertEquals(406 , message.getDefaultSint64 ()); 685 Assert.assertEquals(407 , message.getDefaultFixed32 ()); 686 Assert.assertEquals(408 , message.getDefaultFixed64 ()); 687 Assert.assertEquals(409 , message.getDefaultSfixed32()); 688 Assert.assertEquals(410 , message.getDefaultSfixed64()); 689 Assert.assertEquals(411 , message.getDefaultFloat (), 0.0); 690 Assert.assertEquals(412 , message.getDefaultDouble (), 0.0); 691 Assert.assertEquals(false, message.getDefaultBool ()); 692 Assert.assertEquals("415", message.getDefaultString ()); 693 Assert.assertEquals(toBytes("416"), message.getDefaultBytes()); 694 695 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getDefaultNestedEnum ()); 696 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getDefaultForeignEnum()); 697 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getDefaultImportEnum()); 698 699 Assert.assertEquals("424", message.getDefaultStringPiece()); 700 Assert.assertEquals("425", message.getDefaultCord()); 701 702 Assert.assertEquals(TestAllTypes.OneofFieldCase.ONEOF_BYTES, message.getOneofFieldCase()); 703 Assert.assertFalse(message.hasOneofUint32()); 704 Assert.assertFalse(message.hasOneofNestedMessage()); 705 Assert.assertFalse(message.hasOneofString()); 706 Assert.assertTrue(message.hasOneofBytes()); 707 708 Assert.assertEquals(toBytes("604"), message.getOneofBytes()); 709 } 710 711 // ------------------------------------------------------------------- 712 /** 713 * Assert (using {@code junit.framework.Assert}} that all fields of 714 * {@code message} are cleared, and that getting the fields returns their 715 * default values. 716 */ 717 public static void assertClear(TestAllTypesOrBuilder message) { 718 // hasBlah() should initially be false for all optional fields. 719 Assert.assertFalse(message.hasOptionalInt32 ()); 720 Assert.assertFalse(message.hasOptionalInt64 ()); 721 Assert.assertFalse(message.hasOptionalUint32 ()); 722 Assert.assertFalse(message.hasOptionalUint64 ()); 723 Assert.assertFalse(message.hasOptionalSint32 ()); 724 Assert.assertFalse(message.hasOptionalSint64 ()); 725 Assert.assertFalse(message.hasOptionalFixed32 ()); 726 Assert.assertFalse(message.hasOptionalFixed64 ()); 727 Assert.assertFalse(message.hasOptionalSfixed32()); 728 Assert.assertFalse(message.hasOptionalSfixed64()); 729 Assert.assertFalse(message.hasOptionalFloat ()); 730 Assert.assertFalse(message.hasOptionalDouble ()); 731 Assert.assertFalse(message.hasOptionalBool ()); 732 Assert.assertFalse(message.hasOptionalString ()); 733 Assert.assertFalse(message.hasOptionalBytes ()); 734 735 Assert.assertFalse(message.hasOptionalGroup ()); 736 Assert.assertFalse(message.hasOptionalNestedMessage ()); 737 Assert.assertFalse(message.hasOptionalForeignMessage()); 738 Assert.assertFalse(message.hasOptionalImportMessage ()); 739 740 Assert.assertFalse(message.hasOptionalNestedEnum ()); 741 Assert.assertFalse(message.hasOptionalForeignEnum()); 742 Assert.assertFalse(message.hasOptionalImportEnum ()); 743 744 Assert.assertFalse(message.hasOptionalStringPiece()); 745 Assert.assertFalse(message.hasOptionalCord()); 746 747 // Optional fields without defaults are set to zero or something like it. 748 Assert.assertEquals(0 , message.getOptionalInt32 ()); 749 Assert.assertEquals(0 , message.getOptionalInt64 ()); 750 Assert.assertEquals(0 , message.getOptionalUint32 ()); 751 Assert.assertEquals(0 , message.getOptionalUint64 ()); 752 Assert.assertEquals(0 , message.getOptionalSint32 ()); 753 Assert.assertEquals(0 , message.getOptionalSint64 ()); 754 Assert.assertEquals(0 , message.getOptionalFixed32 ()); 755 Assert.assertEquals(0 , message.getOptionalFixed64 ()); 756 Assert.assertEquals(0 , message.getOptionalSfixed32()); 757 Assert.assertEquals(0 , message.getOptionalSfixed64()); 758 Assert.assertEquals(0 , message.getOptionalFloat (), 0.0); 759 Assert.assertEquals(0 , message.getOptionalDouble (), 0.0); 760 Assert.assertEquals(false, message.getOptionalBool ()); 761 Assert.assertEquals("" , message.getOptionalString ()); 762 Assert.assertEquals(ByteString.EMPTY, message.getOptionalBytes()); 763 764 // Embedded messages should also be clear. 765 Assert.assertFalse(message.getOptionalGroup ().hasA()); 766 Assert.assertFalse(message.getOptionalNestedMessage ().hasBb()); 767 Assert.assertFalse(message.getOptionalForeignMessage ().hasC()); 768 Assert.assertFalse(message.getOptionalImportMessage ().hasD()); 769 Assert.assertFalse(message.getOptionalPublicImportMessage().hasE()); 770 Assert.assertFalse(message.getOptionalLazyMessage ().hasBb()); 771 772 Assert.assertEquals(0, message.getOptionalGroup ().getA()); 773 Assert.assertEquals(0, message.getOptionalNestedMessage ().getBb()); 774 Assert.assertEquals(0, message.getOptionalForeignMessage ().getC()); 775 Assert.assertEquals(0, message.getOptionalImportMessage ().getD()); 776 Assert.assertEquals(0, message.getOptionalPublicImportMessage().getE()); 777 Assert.assertEquals(0, message.getOptionalLazyMessage ().getBb()); 778 779 // Enums without defaults are set to the first value in the enum. 780 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getOptionalNestedEnum ()); 781 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getOptionalForeignEnum()); 782 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getOptionalImportEnum()); 783 784 Assert.assertEquals("", message.getOptionalStringPiece()); 785 Assert.assertEquals("", message.getOptionalCord()); 786 787 // Repeated fields are empty. 788 Assert.assertEquals(0, message.getRepeatedInt32Count ()); 789 Assert.assertEquals(0, message.getRepeatedInt64Count ()); 790 Assert.assertEquals(0, message.getRepeatedUint32Count ()); 791 Assert.assertEquals(0, message.getRepeatedUint64Count ()); 792 Assert.assertEquals(0, message.getRepeatedSint32Count ()); 793 Assert.assertEquals(0, message.getRepeatedSint64Count ()); 794 Assert.assertEquals(0, message.getRepeatedFixed32Count ()); 795 Assert.assertEquals(0, message.getRepeatedFixed64Count ()); 796 Assert.assertEquals(0, message.getRepeatedSfixed32Count()); 797 Assert.assertEquals(0, message.getRepeatedSfixed64Count()); 798 Assert.assertEquals(0, message.getRepeatedFloatCount ()); 799 Assert.assertEquals(0, message.getRepeatedDoubleCount ()); 800 Assert.assertEquals(0, message.getRepeatedBoolCount ()); 801 Assert.assertEquals(0, message.getRepeatedStringCount ()); 802 Assert.assertEquals(0, message.getRepeatedBytesCount ()); 803 804 Assert.assertEquals(0, message.getRepeatedGroupCount ()); 805 Assert.assertEquals(0, message.getRepeatedNestedMessageCount ()); 806 Assert.assertEquals(0, message.getRepeatedForeignMessageCount()); 807 Assert.assertEquals(0, message.getRepeatedImportMessageCount ()); 808 Assert.assertEquals(0, message.getRepeatedLazyMessageCount ()); 809 Assert.assertEquals(0, message.getRepeatedNestedEnumCount ()); 810 Assert.assertEquals(0, message.getRepeatedForeignEnumCount ()); 811 Assert.assertEquals(0, message.getRepeatedImportEnumCount ()); 812 813 Assert.assertEquals(0, message.getRepeatedStringPieceCount()); 814 Assert.assertEquals(0, message.getRepeatedCordCount()); 815 816 // hasBlah() should also be false for all default fields. 817 Assert.assertFalse(message.hasDefaultInt32 ()); 818 Assert.assertFalse(message.hasDefaultInt64 ()); 819 Assert.assertFalse(message.hasDefaultUint32 ()); 820 Assert.assertFalse(message.hasDefaultUint64 ()); 821 Assert.assertFalse(message.hasDefaultSint32 ()); 822 Assert.assertFalse(message.hasDefaultSint64 ()); 823 Assert.assertFalse(message.hasDefaultFixed32 ()); 824 Assert.assertFalse(message.hasDefaultFixed64 ()); 825 Assert.assertFalse(message.hasDefaultSfixed32()); 826 Assert.assertFalse(message.hasDefaultSfixed64()); 827 Assert.assertFalse(message.hasDefaultFloat ()); 828 Assert.assertFalse(message.hasDefaultDouble ()); 829 Assert.assertFalse(message.hasDefaultBool ()); 830 Assert.assertFalse(message.hasDefaultString ()); 831 Assert.assertFalse(message.hasDefaultBytes ()); 832 833 Assert.assertFalse(message.hasDefaultNestedEnum ()); 834 Assert.assertFalse(message.hasDefaultForeignEnum()); 835 Assert.assertFalse(message.hasDefaultImportEnum ()); 836 837 Assert.assertFalse(message.hasDefaultStringPiece()); 838 Assert.assertFalse(message.hasDefaultCord()); 839 840 // Fields with defaults have their default values (duh). 841 Assert.assertEquals( 41 , message.getDefaultInt32 ()); 842 Assert.assertEquals( 42 , message.getDefaultInt64 ()); 843 Assert.assertEquals( 43 , message.getDefaultUint32 ()); 844 Assert.assertEquals( 44 , message.getDefaultUint64 ()); 845 Assert.assertEquals(-45 , message.getDefaultSint32 ()); 846 Assert.assertEquals( 46 , message.getDefaultSint64 ()); 847 Assert.assertEquals( 47 , message.getDefaultFixed32 ()); 848 Assert.assertEquals( 48 , message.getDefaultFixed64 ()); 849 Assert.assertEquals( 49 , message.getDefaultSfixed32()); 850 Assert.assertEquals(-50 , message.getDefaultSfixed64()); 851 Assert.assertEquals( 51.5 , message.getDefaultFloat (), 0.0); 852 Assert.assertEquals( 52e3 , message.getDefaultDouble (), 0.0); 853 Assert.assertEquals(true , message.getDefaultBool ()); 854 Assert.assertEquals("hello", message.getDefaultString ()); 855 Assert.assertEquals(toBytes("world"), message.getDefaultBytes()); 856 857 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getDefaultNestedEnum ()); 858 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getDefaultForeignEnum()); 859 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getDefaultImportEnum()); 860 861 Assert.assertEquals("abc", message.getDefaultStringPiece()); 862 Assert.assertEquals("123", message.getDefaultCord()); 863 864 Assert.assertFalse(message.hasOneofUint32()); 865 Assert.assertFalse(message.hasOneofNestedMessage()); 866 Assert.assertFalse(message.hasOneofString()); 867 Assert.assertFalse(message.hasOneofBytes()); 868 } 869 870 // ------------------------------------------------------------------- 871 872 /** 873 * Assert (using {@code junit.framework.Assert}} that all fields of 874 * {@code message} are set to the values assigned by {@code setAllFields} 875 * followed by {@code modifyRepeatedFields}. 876 */ 877 public static void assertRepeatedFieldsModified( 878 TestAllTypesOrBuilder message) { 879 // ModifyRepeatedFields only sets the second repeated element of each 880 // field. In addition to verifying this, we also verify that the first 881 // element and size were *not* modified. 882 Assert.assertEquals(2, message.getRepeatedInt32Count ()); 883 Assert.assertEquals(2, message.getRepeatedInt64Count ()); 884 Assert.assertEquals(2, message.getRepeatedUint32Count ()); 885 Assert.assertEquals(2, message.getRepeatedUint64Count ()); 886 Assert.assertEquals(2, message.getRepeatedSint32Count ()); 887 Assert.assertEquals(2, message.getRepeatedSint64Count ()); 888 Assert.assertEquals(2, message.getRepeatedFixed32Count ()); 889 Assert.assertEquals(2, message.getRepeatedFixed64Count ()); 890 Assert.assertEquals(2, message.getRepeatedSfixed32Count()); 891 Assert.assertEquals(2, message.getRepeatedSfixed64Count()); 892 Assert.assertEquals(2, message.getRepeatedFloatCount ()); 893 Assert.assertEquals(2, message.getRepeatedDoubleCount ()); 894 Assert.assertEquals(2, message.getRepeatedBoolCount ()); 895 Assert.assertEquals(2, message.getRepeatedStringCount ()); 896 Assert.assertEquals(2, message.getRepeatedBytesCount ()); 897 898 Assert.assertEquals(2, message.getRepeatedGroupCount ()); 899 Assert.assertEquals(2, message.getRepeatedNestedMessageCount ()); 900 Assert.assertEquals(2, message.getRepeatedForeignMessageCount()); 901 Assert.assertEquals(2, message.getRepeatedImportMessageCount ()); 902 Assert.assertEquals(2, message.getRepeatedLazyMessageCount ()); 903 Assert.assertEquals(2, message.getRepeatedNestedEnumCount ()); 904 Assert.assertEquals(2, message.getRepeatedForeignEnumCount ()); 905 Assert.assertEquals(2, message.getRepeatedImportEnumCount ()); 906 907 Assert.assertEquals(2, message.getRepeatedStringPieceCount()); 908 Assert.assertEquals(2, message.getRepeatedCordCount()); 909 910 Assert.assertEquals(201 , message.getRepeatedInt32 (0)); 911 Assert.assertEquals(202L , message.getRepeatedInt64 (0)); 912 Assert.assertEquals(203 , message.getRepeatedUint32 (0)); 913 Assert.assertEquals(204L , message.getRepeatedUint64 (0)); 914 Assert.assertEquals(205 , message.getRepeatedSint32 (0)); 915 Assert.assertEquals(206L , message.getRepeatedSint64 (0)); 916 Assert.assertEquals(207 , message.getRepeatedFixed32 (0)); 917 Assert.assertEquals(208L , message.getRepeatedFixed64 (0)); 918 Assert.assertEquals(209 , message.getRepeatedSfixed32(0)); 919 Assert.assertEquals(210L , message.getRepeatedSfixed64(0)); 920 Assert.assertEquals(211F , message.getRepeatedFloat (0)); 921 Assert.assertEquals(212D , message.getRepeatedDouble (0)); 922 Assert.assertEquals(true , message.getRepeatedBool (0)); 923 Assert.assertEquals("215", message.getRepeatedString (0)); 924 Assert.assertEquals(toBytes("216"), message.getRepeatedBytes(0)); 925 926 Assert.assertEquals(217, message.getRepeatedGroup (0).getA()); 927 Assert.assertEquals(218, message.getRepeatedNestedMessage (0).getBb()); 928 Assert.assertEquals(219, message.getRepeatedForeignMessage(0).getC()); 929 Assert.assertEquals(220, message.getRepeatedImportMessage (0).getD()); 930 Assert.assertEquals(227, message.getRepeatedLazyMessage (0).getBb()); 931 932 Assert.assertEquals(TestAllTypes.NestedEnum.BAR, message.getRepeatedNestedEnum (0)); 933 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getRepeatedForeignEnum(0)); 934 Assert.assertEquals(ImportEnum.IMPORT_BAR, message.getRepeatedImportEnum(0)); 935 936 Assert.assertEquals("224", message.getRepeatedStringPiece(0)); 937 Assert.assertEquals("225", message.getRepeatedCord(0)); 938 939 // Actually verify the second (modified) elements now. 940 Assert.assertEquals(501 , message.getRepeatedInt32 (1)); 941 Assert.assertEquals(502L , message.getRepeatedInt64 (1)); 942 Assert.assertEquals(503 , message.getRepeatedUint32 (1)); 943 Assert.assertEquals(504L , message.getRepeatedUint64 (1)); 944 Assert.assertEquals(505 , message.getRepeatedSint32 (1)); 945 Assert.assertEquals(506L , message.getRepeatedSint64 (1)); 946 Assert.assertEquals(507 , message.getRepeatedFixed32 (1)); 947 Assert.assertEquals(508L , message.getRepeatedFixed64 (1)); 948 Assert.assertEquals(509 , message.getRepeatedSfixed32(1)); 949 Assert.assertEquals(510L , message.getRepeatedSfixed64(1)); 950 Assert.assertEquals(511F , message.getRepeatedFloat (1)); 951 Assert.assertEquals(512D , message.getRepeatedDouble (1)); 952 Assert.assertEquals(true , message.getRepeatedBool (1)); 953 Assert.assertEquals("515", message.getRepeatedString (1)); 954 Assert.assertEquals(toBytes("516"), message.getRepeatedBytes(1)); 955 956 Assert.assertEquals(517, message.getRepeatedGroup (1).getA()); 957 Assert.assertEquals(518, message.getRepeatedNestedMessage (1).getBb()); 958 Assert.assertEquals(519, message.getRepeatedForeignMessage(1).getC()); 959 Assert.assertEquals(520, message.getRepeatedImportMessage (1).getD()); 960 Assert.assertEquals(527, message.getRepeatedLazyMessage (1).getBb()); 961 962 Assert.assertEquals(TestAllTypes.NestedEnum.FOO, message.getRepeatedNestedEnum (1)); 963 Assert.assertEquals(ForeignEnum.FOREIGN_FOO, message.getRepeatedForeignEnum(1)); 964 Assert.assertEquals(ImportEnum.IMPORT_FOO, message.getRepeatedImportEnum(1)); 965 966 Assert.assertEquals("524", message.getRepeatedStringPiece(1)); 967 Assert.assertEquals("525", message.getRepeatedCord(1)); 968 } 969 970 /** 971 * Set every field of {@code message} to a unique value. 972 */ 973 public static void setPackedFields(TestPackedTypes.Builder message) { 974 message.addPackedInt32 (601); 975 message.addPackedInt64 (602); 976 message.addPackedUint32 (603); 977 message.addPackedUint64 (604); 978 message.addPackedSint32 (605); 979 message.addPackedSint64 (606); 980 message.addPackedFixed32 (607); 981 message.addPackedFixed64 (608); 982 message.addPackedSfixed32(609); 983 message.addPackedSfixed64(610); 984 message.addPackedFloat (611); 985 message.addPackedDouble (612); 986 message.addPackedBool (true); 987 message.addPackedEnum (ForeignEnum.FOREIGN_BAR); 988 // Add a second one of each field. 989 message.addPackedInt32 (701); 990 message.addPackedInt64 (702); 991 message.addPackedUint32 (703); 992 message.addPackedUint64 (704); 993 message.addPackedSint32 (705); 994 message.addPackedSint64 (706); 995 message.addPackedFixed32 (707); 996 message.addPackedFixed64 (708); 997 message.addPackedSfixed32(709); 998 message.addPackedSfixed64(710); 999 message.addPackedFloat (711); 1000 message.addPackedDouble (712); 1001 message.addPackedBool (false); 1002 message.addPackedEnum (ForeignEnum.FOREIGN_BAZ); 1003 } 1004 1005 /** 1006 * Set every field of {@code message} to a unique value. Must correspond with 1007 * the values applied by {@code setPackedFields}. 1008 */ 1009 public static void setUnpackedFields(TestUnpackedTypes.Builder message) { 1010 message.addUnpackedInt32 (601); 1011 message.addUnpackedInt64 (602); 1012 message.addUnpackedUint32 (603); 1013 message.addUnpackedUint64 (604); 1014 message.addUnpackedSint32 (605); 1015 message.addUnpackedSint64 (606); 1016 message.addUnpackedFixed32 (607); 1017 message.addUnpackedFixed64 (608); 1018 message.addUnpackedSfixed32(609); 1019 message.addUnpackedSfixed64(610); 1020 message.addUnpackedFloat (611); 1021 message.addUnpackedDouble (612); 1022 message.addUnpackedBool (true); 1023 message.addUnpackedEnum (ForeignEnum.FOREIGN_BAR); 1024 // Add a second one of each field. 1025 message.addUnpackedInt32 (701); 1026 message.addUnpackedInt64 (702); 1027 message.addUnpackedUint32 (703); 1028 message.addUnpackedUint64 (704); 1029 message.addUnpackedSint32 (705); 1030 message.addUnpackedSint64 (706); 1031 message.addUnpackedFixed32 (707); 1032 message.addUnpackedFixed64 (708); 1033 message.addUnpackedSfixed32(709); 1034 message.addUnpackedSfixed64(710); 1035 message.addUnpackedFloat (711); 1036 message.addUnpackedDouble (712); 1037 message.addUnpackedBool (false); 1038 message.addUnpackedEnum (ForeignEnum.FOREIGN_BAZ); 1039 } 1040 1041 /** 1042 * Assert (using {@code junit.framework.Assert}} that all fields of 1043 * {@code message} are set to the values assigned by {@code setPackedFields}. 1044 */ 1045 public static void assertPackedFieldsSet(TestPackedTypes message) { 1046 Assert.assertEquals(2, message.getPackedInt32Count ()); 1047 Assert.assertEquals(2, message.getPackedInt64Count ()); 1048 Assert.assertEquals(2, message.getPackedUint32Count ()); 1049 Assert.assertEquals(2, message.getPackedUint64Count ()); 1050 Assert.assertEquals(2, message.getPackedSint32Count ()); 1051 Assert.assertEquals(2, message.getPackedSint64Count ()); 1052 Assert.assertEquals(2, message.getPackedFixed32Count ()); 1053 Assert.assertEquals(2, message.getPackedFixed64Count ()); 1054 Assert.assertEquals(2, message.getPackedSfixed32Count()); 1055 Assert.assertEquals(2, message.getPackedSfixed64Count()); 1056 Assert.assertEquals(2, message.getPackedFloatCount ()); 1057 Assert.assertEquals(2, message.getPackedDoubleCount ()); 1058 Assert.assertEquals(2, message.getPackedBoolCount ()); 1059 Assert.assertEquals(2, message.getPackedEnumCount ()); 1060 Assert.assertEquals(601 , message.getPackedInt32 (0)); 1061 Assert.assertEquals(602 , message.getPackedInt64 (0)); 1062 Assert.assertEquals(603 , message.getPackedUint32 (0)); 1063 Assert.assertEquals(604 , message.getPackedUint64 (0)); 1064 Assert.assertEquals(605 , message.getPackedSint32 (0)); 1065 Assert.assertEquals(606 , message.getPackedSint64 (0)); 1066 Assert.assertEquals(607 , message.getPackedFixed32 (0)); 1067 Assert.assertEquals(608 , message.getPackedFixed64 (0)); 1068 Assert.assertEquals(609 , message.getPackedSfixed32(0)); 1069 Assert.assertEquals(610 , message.getPackedSfixed64(0)); 1070 Assert.assertEquals(611 , message.getPackedFloat (0), 0.0); 1071 Assert.assertEquals(612 , message.getPackedDouble (0), 0.0); 1072 Assert.assertEquals(true , message.getPackedBool (0)); 1073 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getPackedEnum(0)); 1074 Assert.assertEquals(701 , message.getPackedInt32 (1)); 1075 Assert.assertEquals(702 , message.getPackedInt64 (1)); 1076 Assert.assertEquals(703 , message.getPackedUint32 (1)); 1077 Assert.assertEquals(704 , message.getPackedUint64 (1)); 1078 Assert.assertEquals(705 , message.getPackedSint32 (1)); 1079 Assert.assertEquals(706 , message.getPackedSint64 (1)); 1080 Assert.assertEquals(707 , message.getPackedFixed32 (1)); 1081 Assert.assertEquals(708 , message.getPackedFixed64 (1)); 1082 Assert.assertEquals(709 , message.getPackedSfixed32(1)); 1083 Assert.assertEquals(710 , message.getPackedSfixed64(1)); 1084 Assert.assertEquals(711 , message.getPackedFloat (1), 0.0); 1085 Assert.assertEquals(712 , message.getPackedDouble (1), 0.0); 1086 Assert.assertEquals(false, message.getPackedBool (1)); 1087 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getPackedEnum(1)); 1088 } 1089 1090 /** 1091 * Assert (using {@code junit.framework.Assert}} that all fields of 1092 * {@code message} are set to the values assigned by {@code setUnpackedFields}. 1093 */ 1094 public static void assertUnpackedFieldsSet(TestUnpackedTypes message) { 1095 Assert.assertEquals(2, message.getUnpackedInt32Count ()); 1096 Assert.assertEquals(2, message.getUnpackedInt64Count ()); 1097 Assert.assertEquals(2, message.getUnpackedUint32Count ()); 1098 Assert.assertEquals(2, message.getUnpackedUint64Count ()); 1099 Assert.assertEquals(2, message.getUnpackedSint32Count ()); 1100 Assert.assertEquals(2, message.getUnpackedSint64Count ()); 1101 Assert.assertEquals(2, message.getUnpackedFixed32Count ()); 1102 Assert.assertEquals(2, message.getUnpackedFixed64Count ()); 1103 Assert.assertEquals(2, message.getUnpackedSfixed32Count()); 1104 Assert.assertEquals(2, message.getUnpackedSfixed64Count()); 1105 Assert.assertEquals(2, message.getUnpackedFloatCount ()); 1106 Assert.assertEquals(2, message.getUnpackedDoubleCount ()); 1107 Assert.assertEquals(2, message.getUnpackedBoolCount ()); 1108 Assert.assertEquals(2, message.getUnpackedEnumCount ()); 1109 Assert.assertEquals(601 , message.getUnpackedInt32 (0)); 1110 Assert.assertEquals(602 , message.getUnpackedInt64 (0)); 1111 Assert.assertEquals(603 , message.getUnpackedUint32 (0)); 1112 Assert.assertEquals(604 , message.getUnpackedUint64 (0)); 1113 Assert.assertEquals(605 , message.getUnpackedSint32 (0)); 1114 Assert.assertEquals(606 , message.getUnpackedSint64 (0)); 1115 Assert.assertEquals(607 , message.getUnpackedFixed32 (0)); 1116 Assert.assertEquals(608 , message.getUnpackedFixed64 (0)); 1117 Assert.assertEquals(609 , message.getUnpackedSfixed32(0)); 1118 Assert.assertEquals(610 , message.getUnpackedSfixed64(0)); 1119 Assert.assertEquals(611 , message.getUnpackedFloat (0), 0.0); 1120 Assert.assertEquals(612 , message.getUnpackedDouble (0), 0.0); 1121 Assert.assertEquals(true , message.getUnpackedBool (0)); 1122 Assert.assertEquals(ForeignEnum.FOREIGN_BAR, message.getUnpackedEnum(0)); 1123 Assert.assertEquals(701 , message.getUnpackedInt32 (1)); 1124 Assert.assertEquals(702 , message.getUnpackedInt64 (1)); 1125 Assert.assertEquals(703 , message.getUnpackedUint32 (1)); 1126 Assert.assertEquals(704 , message.getUnpackedUint64 (1)); 1127 Assert.assertEquals(705 , message.getUnpackedSint32 (1)); 1128 Assert.assertEquals(706 , message.getUnpackedSint64 (1)); 1129 Assert.assertEquals(707 , message.getUnpackedFixed32 (1)); 1130 Assert.assertEquals(708 , message.getUnpackedFixed64 (1)); 1131 Assert.assertEquals(709 , message.getUnpackedSfixed32(1)); 1132 Assert.assertEquals(710 , message.getUnpackedSfixed64(1)); 1133 Assert.assertEquals(711 , message.getUnpackedFloat (1), 0.0); 1134 Assert.assertEquals(712 , message.getUnpackedDouble (1), 0.0); 1135 Assert.assertEquals(false, message.getUnpackedBool (1)); 1136 Assert.assertEquals(ForeignEnum.FOREIGN_BAZ, message.getUnpackedEnum(1)); 1137 } 1138 1139 // =================================================================== 1140 // Like above, but for extensions 1141 1142 // Java gets confused with things like assertEquals(int, Integer): it can't 1143 // decide whether to call assertEquals(int, int) or assertEquals(Object, 1144 // Object). So we define these methods to help it. 1145 private static void assertEqualsExactType(int a, int b) { 1146 Assert.assertEquals(a, b); 1147 } 1148 private static void assertEqualsExactType(long a, long b) { 1149 Assert.assertEquals(a, b); 1150 } 1151 private static void assertEqualsExactType(float a, float b) { 1152 Assert.assertEquals(a, b, 0.0); 1153 } 1154 private static void assertEqualsExactType(double a, double b) { 1155 Assert.assertEquals(a, b, 0.0); 1156 } 1157 private static void assertEqualsExactType(boolean a, boolean b) { 1158 Assert.assertEquals(a, b); 1159 } 1160 private static void assertEqualsExactType(String a, String b) { 1161 Assert.assertEquals(a, b); 1162 } 1163 private static void assertEqualsExactType(ByteString a, ByteString b) { 1164 Assert.assertEquals(a, b); 1165 } 1166 private static void assertEqualsExactType(TestAllTypes.NestedEnum a, 1167 TestAllTypes.NestedEnum b) { 1168 Assert.assertEquals(a, b); 1169 } 1170 private static void assertEqualsExactType(ForeignEnum a, ForeignEnum b) { 1171 Assert.assertEquals(a, b); 1172 } 1173 private static void assertEqualsExactType(ImportEnum a, ImportEnum b) { 1174 Assert.assertEquals(a, b); 1175 } 1176 private static void assertEqualsExactType(TestAllTypesLite.NestedEnum a, 1177 TestAllTypesLite.NestedEnum b) { 1178 Assert.assertEquals(a, b); 1179 } 1180 private static void assertEqualsExactType(ForeignEnumLite a, 1181 ForeignEnumLite b) { 1182 Assert.assertEquals(a, b); 1183 } 1184 private static void assertEqualsExactType(ImportEnumLite a, 1185 ImportEnumLite b) { 1186 Assert.assertEquals(a, b); 1187 } 1188 1189 /** 1190 * Get an unmodifiable {@link ExtensionRegistry} containing all the 1191 * extensions of {@code TestAllExtensions}. 1192 */ 1193 public static ExtensionRegistry getExtensionRegistry() { 1194 ExtensionRegistry registry = ExtensionRegistry.newInstance(); 1195 registerAllExtensions(registry); 1196 return registry.getUnmodifiable(); 1197 } 1198 1199 /** 1200 * Register all of {@code TestAllExtensions}'s extensions with the 1201 * given {@link ExtensionRegistry}. 1202 */ 1203 public static void registerAllExtensions(ExtensionRegistry registry) { 1204 UnittestProto.registerAllExtensions(registry); 1205 TestUtilLite.registerAllExtensionsLite(registry); 1206 } 1207 1208 /** 1209 * Set every field of {@code message} to the values expected by 1210 * {@code assertAllExtensionsSet()}. 1211 */ 1212 public static void setAllExtensions(TestAllExtensions.Builder message) { 1213 message.setExtension(optionalInt32Extension , 101); 1214 message.setExtension(optionalInt64Extension , 102L); 1215 message.setExtension(optionalUint32Extension , 103); 1216 message.setExtension(optionalUint64Extension , 104L); 1217 message.setExtension(optionalSint32Extension , 105); 1218 message.setExtension(optionalSint64Extension , 106L); 1219 message.setExtension(optionalFixed32Extension , 107); 1220 message.setExtension(optionalFixed64Extension , 108L); 1221 message.setExtension(optionalSfixed32Extension, 109); 1222 message.setExtension(optionalSfixed64Extension, 110L); 1223 message.setExtension(optionalFloatExtension , 111F); 1224 message.setExtension(optionalDoubleExtension , 112D); 1225 message.setExtension(optionalBoolExtension , true); 1226 message.setExtension(optionalStringExtension , "115"); 1227 message.setExtension(optionalBytesExtension , toBytes("116")); 1228 1229 message.setExtension(optionalGroupExtension, 1230 OptionalGroup_extension.newBuilder().setA(117).build()); 1231 message.setExtension(optionalNestedMessageExtension, 1232 TestAllTypes.NestedMessage.newBuilder().setBb(118).build()); 1233 message.setExtension(optionalForeignMessageExtension, 1234 ForeignMessage.newBuilder().setC(119).build()); 1235 message.setExtension(optionalImportMessageExtension, 1236 ImportMessage.newBuilder().setD(120).build()); 1237 message.setExtension(optionalPublicImportMessageExtension, 1238 PublicImportMessage.newBuilder().setE(126).build()); 1239 message.setExtension(optionalLazyMessageExtension, 1240 TestAllTypes.NestedMessage.newBuilder().setBb(127).build()); 1241 1242 message.setExtension(optionalNestedEnumExtension, TestAllTypes.NestedEnum.BAZ); 1243 message.setExtension(optionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ); 1244 message.setExtension(optionalImportEnumExtension, ImportEnum.IMPORT_BAZ); 1245 1246 message.setExtension(optionalStringPieceExtension, "124"); 1247 message.setExtension(optionalCordExtension, "125"); 1248 1249 // ----------------------------------------------------------------- 1250 1251 message.addExtension(repeatedInt32Extension , 201); 1252 message.addExtension(repeatedInt64Extension , 202L); 1253 message.addExtension(repeatedUint32Extension , 203); 1254 message.addExtension(repeatedUint64Extension , 204L); 1255 message.addExtension(repeatedSint32Extension , 205); 1256 message.addExtension(repeatedSint64Extension , 206L); 1257 message.addExtension(repeatedFixed32Extension , 207); 1258 message.addExtension(repeatedFixed64Extension , 208L); 1259 message.addExtension(repeatedSfixed32Extension, 209); 1260 message.addExtension(repeatedSfixed64Extension, 210L); 1261 message.addExtension(repeatedFloatExtension , 211F); 1262 message.addExtension(repeatedDoubleExtension , 212D); 1263 message.addExtension(repeatedBoolExtension , true); 1264 message.addExtension(repeatedStringExtension , "215"); 1265 message.addExtension(repeatedBytesExtension , toBytes("216")); 1266 1267 message.addExtension(repeatedGroupExtension, 1268 RepeatedGroup_extension.newBuilder().setA(217).build()); 1269 message.addExtension(repeatedNestedMessageExtension, 1270 TestAllTypes.NestedMessage.newBuilder().setBb(218).build()); 1271 message.addExtension(repeatedForeignMessageExtension, 1272 ForeignMessage.newBuilder().setC(219).build()); 1273 message.addExtension(repeatedImportMessageExtension, 1274 ImportMessage.newBuilder().setD(220).build()); 1275 message.addExtension(repeatedLazyMessageExtension, 1276 TestAllTypes.NestedMessage.newBuilder().setBb(227).build()); 1277 1278 message.addExtension(repeatedNestedEnumExtension, TestAllTypes.NestedEnum.BAR); 1279 message.addExtension(repeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAR); 1280 message.addExtension(repeatedImportEnumExtension, ImportEnum.IMPORT_BAR); 1281 1282 message.addExtension(repeatedStringPieceExtension, "224"); 1283 message.addExtension(repeatedCordExtension, "225"); 1284 1285 // Add a second one of each field. 1286 message.addExtension(repeatedInt32Extension , 301); 1287 message.addExtension(repeatedInt64Extension , 302L); 1288 message.addExtension(repeatedUint32Extension , 303); 1289 message.addExtension(repeatedUint64Extension , 304L); 1290 message.addExtension(repeatedSint32Extension , 305); 1291 message.addExtension(repeatedSint64Extension , 306L); 1292 message.addExtension(repeatedFixed32Extension , 307); 1293 message.addExtension(repeatedFixed64Extension , 308L); 1294 message.addExtension(repeatedSfixed32Extension, 309); 1295 message.addExtension(repeatedSfixed64Extension, 310L); 1296 message.addExtension(repeatedFloatExtension , 311F); 1297 message.addExtension(repeatedDoubleExtension , 312D); 1298 message.addExtension(repeatedBoolExtension , false); 1299 message.addExtension(repeatedStringExtension , "315"); 1300 message.addExtension(repeatedBytesExtension , toBytes("316")); 1301 1302 message.addExtension(repeatedGroupExtension, 1303 RepeatedGroup_extension.newBuilder().setA(317).build()); 1304 message.addExtension(repeatedNestedMessageExtension, 1305 TestAllTypes.NestedMessage.newBuilder().setBb(318).build()); 1306 message.addExtension(repeatedForeignMessageExtension, 1307 ForeignMessage.newBuilder().setC(319).build()); 1308 message.addExtension(repeatedImportMessageExtension, 1309 ImportMessage.newBuilder().setD(320).build()); 1310 message.addExtension(repeatedLazyMessageExtension, 1311 TestAllTypes.NestedMessage.newBuilder().setBb(327).build()); 1312 1313 message.addExtension(repeatedNestedEnumExtension, TestAllTypes.NestedEnum.BAZ); 1314 message.addExtension(repeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ); 1315 message.addExtension(repeatedImportEnumExtension, ImportEnum.IMPORT_BAZ); 1316 1317 message.addExtension(repeatedStringPieceExtension, "324"); 1318 message.addExtension(repeatedCordExtension, "325"); 1319 1320 // ----------------------------------------------------------------- 1321 1322 message.setExtension(defaultInt32Extension , 401); 1323 message.setExtension(defaultInt64Extension , 402L); 1324 message.setExtension(defaultUint32Extension , 403); 1325 message.setExtension(defaultUint64Extension , 404L); 1326 message.setExtension(defaultSint32Extension , 405); 1327 message.setExtension(defaultSint64Extension , 406L); 1328 message.setExtension(defaultFixed32Extension , 407); 1329 message.setExtension(defaultFixed64Extension , 408L); 1330 message.setExtension(defaultSfixed32Extension, 409); 1331 message.setExtension(defaultSfixed64Extension, 410L); 1332 message.setExtension(defaultFloatExtension , 411F); 1333 message.setExtension(defaultDoubleExtension , 412D); 1334 message.setExtension(defaultBoolExtension , false); 1335 message.setExtension(defaultStringExtension , "415"); 1336 message.setExtension(defaultBytesExtension , toBytes("416")); 1337 1338 message.setExtension(defaultNestedEnumExtension, TestAllTypes.NestedEnum.FOO); 1339 message.setExtension(defaultForeignEnumExtension, ForeignEnum.FOREIGN_FOO); 1340 message.setExtension(defaultImportEnumExtension, ImportEnum.IMPORT_FOO); 1341 1342 message.setExtension(defaultStringPieceExtension, "424"); 1343 message.setExtension(defaultCordExtension, "425"); 1344 1345 message.setExtension(oneofUint32Extension, 601); 1346 message.setExtension(oneofNestedMessageExtension, 1347 TestAllTypes.NestedMessage.newBuilder().setBb(602).build()); 1348 message.setExtension(oneofStringExtension, "603"); 1349 message.setExtension(oneofBytesExtension, toBytes("604")); 1350 } 1351 1352 // ------------------------------------------------------------------- 1353 1354 /** 1355 * Modify the repeated extensions of {@code message} to contain the values 1356 * expected by {@code assertRepeatedExtensionsModified()}. 1357 */ 1358 public static void modifyRepeatedExtensions( 1359 TestAllExtensions.Builder message) { 1360 message.setExtension(repeatedInt32Extension , 1, 501); 1361 message.setExtension(repeatedInt64Extension , 1, 502L); 1362 message.setExtension(repeatedUint32Extension , 1, 503); 1363 message.setExtension(repeatedUint64Extension , 1, 504L); 1364 message.setExtension(repeatedSint32Extension , 1, 505); 1365 message.setExtension(repeatedSint64Extension , 1, 506L); 1366 message.setExtension(repeatedFixed32Extension , 1, 507); 1367 message.setExtension(repeatedFixed64Extension , 1, 508L); 1368 message.setExtension(repeatedSfixed32Extension, 1, 509); 1369 message.setExtension(repeatedSfixed64Extension, 1, 510L); 1370 message.setExtension(repeatedFloatExtension , 1, 511F); 1371 message.setExtension(repeatedDoubleExtension , 1, 512D); 1372 message.setExtension(repeatedBoolExtension , 1, true); 1373 message.setExtension(repeatedStringExtension , 1, "515"); 1374 message.setExtension(repeatedBytesExtension , 1, toBytes("516")); 1375 1376 message.setExtension(repeatedGroupExtension, 1, 1377 RepeatedGroup_extension.newBuilder().setA(517).build()); 1378 message.setExtension(repeatedNestedMessageExtension, 1, 1379 TestAllTypes.NestedMessage.newBuilder().setBb(518).build()); 1380 message.setExtension(repeatedForeignMessageExtension, 1, 1381 ForeignMessage.newBuilder().setC(519).build()); 1382 message.setExtension(repeatedImportMessageExtension, 1, 1383 ImportMessage.newBuilder().setD(520).build()); 1384 message.setExtension(repeatedLazyMessageExtension, 1, 1385 TestAllTypes.NestedMessage.newBuilder().setBb(527).build()); 1386 1387 message.setExtension(repeatedNestedEnumExtension , 1, TestAllTypes.NestedEnum.FOO); 1388 message.setExtension(repeatedForeignEnumExtension, 1, ForeignEnum.FOREIGN_FOO); 1389 message.setExtension(repeatedImportEnumExtension , 1, ImportEnum.IMPORT_FOO); 1390 1391 message.setExtension(repeatedStringPieceExtension, 1, "524"); 1392 message.setExtension(repeatedCordExtension, 1, "525"); 1393 } 1394 1395 // ------------------------------------------------------------------- 1396 1397 /** 1398 * Assert (using {@code junit.framework.Assert}} that all extensions of 1399 * {@code message} are set to the values assigned by {@code setAllExtensions}. 1400 */ 1401 public static void assertAllExtensionsSet( 1402 TestAllExtensionsOrBuilder message) { 1403 Assert.assertTrue(message.hasExtension(optionalInt32Extension )); 1404 Assert.assertTrue(message.hasExtension(optionalInt64Extension )); 1405 Assert.assertTrue(message.hasExtension(optionalUint32Extension )); 1406 Assert.assertTrue(message.hasExtension(optionalUint64Extension )); 1407 Assert.assertTrue(message.hasExtension(optionalSint32Extension )); 1408 Assert.assertTrue(message.hasExtension(optionalSint64Extension )); 1409 Assert.assertTrue(message.hasExtension(optionalFixed32Extension )); 1410 Assert.assertTrue(message.hasExtension(optionalFixed64Extension )); 1411 Assert.assertTrue(message.hasExtension(optionalSfixed32Extension)); 1412 Assert.assertTrue(message.hasExtension(optionalSfixed64Extension)); 1413 Assert.assertTrue(message.hasExtension(optionalFloatExtension )); 1414 Assert.assertTrue(message.hasExtension(optionalDoubleExtension )); 1415 Assert.assertTrue(message.hasExtension(optionalBoolExtension )); 1416 Assert.assertTrue(message.hasExtension(optionalStringExtension )); 1417 Assert.assertTrue(message.hasExtension(optionalBytesExtension )); 1418 1419 Assert.assertTrue(message.hasExtension(optionalGroupExtension )); 1420 Assert.assertTrue(message.hasExtension(optionalNestedMessageExtension )); 1421 Assert.assertTrue(message.hasExtension(optionalForeignMessageExtension)); 1422 Assert.assertTrue(message.hasExtension(optionalImportMessageExtension )); 1423 1424 Assert.assertTrue(message.getExtension(optionalGroupExtension ).hasA()); 1425 Assert.assertTrue(message.getExtension(optionalNestedMessageExtension ).hasBb()); 1426 Assert.assertTrue(message.getExtension(optionalForeignMessageExtension).hasC()); 1427 Assert.assertTrue(message.getExtension(optionalImportMessageExtension ).hasD()); 1428 1429 Assert.assertTrue(message.hasExtension(optionalNestedEnumExtension )); 1430 Assert.assertTrue(message.hasExtension(optionalForeignEnumExtension)); 1431 Assert.assertTrue(message.hasExtension(optionalImportEnumExtension )); 1432 1433 Assert.assertTrue(message.hasExtension(optionalStringPieceExtension)); 1434 Assert.assertTrue(message.hasExtension(optionalCordExtension)); 1435 1436 assertEqualsExactType(101 , message.getExtension(optionalInt32Extension )); 1437 assertEqualsExactType(102L , message.getExtension(optionalInt64Extension )); 1438 assertEqualsExactType(103 , message.getExtension(optionalUint32Extension )); 1439 assertEqualsExactType(104L , message.getExtension(optionalUint64Extension )); 1440 assertEqualsExactType(105 , message.getExtension(optionalSint32Extension )); 1441 assertEqualsExactType(106L , message.getExtension(optionalSint64Extension )); 1442 assertEqualsExactType(107 , message.getExtension(optionalFixed32Extension )); 1443 assertEqualsExactType(108L , message.getExtension(optionalFixed64Extension )); 1444 assertEqualsExactType(109 , message.getExtension(optionalSfixed32Extension)); 1445 assertEqualsExactType(110L , message.getExtension(optionalSfixed64Extension)); 1446 assertEqualsExactType(111F , message.getExtension(optionalFloatExtension )); 1447 assertEqualsExactType(112D , message.getExtension(optionalDoubleExtension )); 1448 assertEqualsExactType(true , message.getExtension(optionalBoolExtension )); 1449 assertEqualsExactType("115", message.getExtension(optionalStringExtension )); 1450 assertEqualsExactType(toBytes("116"), message.getExtension(optionalBytesExtension)); 1451 1452 assertEqualsExactType(117, message.getExtension(optionalGroupExtension ).getA()); 1453 assertEqualsExactType(118, message.getExtension(optionalNestedMessageExtension ).getBb()); 1454 assertEqualsExactType(119, message.getExtension(optionalForeignMessageExtension ).getC()); 1455 assertEqualsExactType(120, message.getExtension(optionalImportMessageExtension ).getD()); 1456 assertEqualsExactType(126, message.getExtension(optionalPublicImportMessageExtension).getE()); 1457 assertEqualsExactType(127, message.getExtension(optionalLazyMessageExtension ).getBb()); 1458 1459 assertEqualsExactType(TestAllTypes.NestedEnum.BAZ, 1460 message.getExtension(optionalNestedEnumExtension)); 1461 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ, 1462 message.getExtension(optionalForeignEnumExtension)); 1463 assertEqualsExactType(ImportEnum.IMPORT_BAZ, 1464 message.getExtension(optionalImportEnumExtension)); 1465 1466 assertEqualsExactType("124", message.getExtension(optionalStringPieceExtension)); 1467 assertEqualsExactType("125", message.getExtension(optionalCordExtension)); 1468 1469 // ----------------------------------------------------------------- 1470 1471 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32Extension )); 1472 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64Extension )); 1473 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32Extension )); 1474 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64Extension )); 1475 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32Extension )); 1476 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64Extension )); 1477 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32Extension )); 1478 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64Extension )); 1479 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32Extension)); 1480 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64Extension)); 1481 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtension )); 1482 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtension )); 1483 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtension )); 1484 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtension )); 1485 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtension )); 1486 1487 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtension )); 1488 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtension )); 1489 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExtension)); 1490 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtension )); 1491 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtension )); 1492 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtension )); 1493 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtension )); 1494 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtension )); 1495 1496 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtension)); 1497 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtension)); 1498 1499 assertEqualsExactType(201 , message.getExtension(repeatedInt32Extension , 0)); 1500 assertEqualsExactType(202L , message.getExtension(repeatedInt64Extension , 0)); 1501 assertEqualsExactType(203 , message.getExtension(repeatedUint32Extension , 0)); 1502 assertEqualsExactType(204L , message.getExtension(repeatedUint64Extension , 0)); 1503 assertEqualsExactType(205 , message.getExtension(repeatedSint32Extension , 0)); 1504 assertEqualsExactType(206L , message.getExtension(repeatedSint64Extension , 0)); 1505 assertEqualsExactType(207 , message.getExtension(repeatedFixed32Extension , 0)); 1506 assertEqualsExactType(208L , message.getExtension(repeatedFixed64Extension , 0)); 1507 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32Extension, 0)); 1508 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64Extension, 0)); 1509 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtension , 0)); 1510 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtension , 0)); 1511 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 0)); 1512 assertEqualsExactType("215", message.getExtension(repeatedStringExtension , 0)); 1513 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExtension, 0)); 1514 1515 assertEqualsExactType(217, message.getExtension(repeatedGroupExtension , 0).getA()); 1516 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtension , 0).getBb()); 1517 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtension, 0).getC()); 1518 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtension , 0).getD()); 1519 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtension , 0).getBb()); 1520 1521 assertEqualsExactType(TestAllTypes.NestedEnum.BAR, 1522 message.getExtension(repeatedNestedEnumExtension, 0)); 1523 assertEqualsExactType(ForeignEnum.FOREIGN_BAR, 1524 message.getExtension(repeatedForeignEnumExtension, 0)); 1525 assertEqualsExactType(ImportEnum.IMPORT_BAR, 1526 message.getExtension(repeatedImportEnumExtension, 0)); 1527 1528 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtension, 0)); 1529 assertEqualsExactType("225", message.getExtension(repeatedCordExtension, 0)); 1530 1531 assertEqualsExactType(301 , message.getExtension(repeatedInt32Extension , 1)); 1532 assertEqualsExactType(302L , message.getExtension(repeatedInt64Extension , 1)); 1533 assertEqualsExactType(303 , message.getExtension(repeatedUint32Extension , 1)); 1534 assertEqualsExactType(304L , message.getExtension(repeatedUint64Extension , 1)); 1535 assertEqualsExactType(305 , message.getExtension(repeatedSint32Extension , 1)); 1536 assertEqualsExactType(306L , message.getExtension(repeatedSint64Extension , 1)); 1537 assertEqualsExactType(307 , message.getExtension(repeatedFixed32Extension , 1)); 1538 assertEqualsExactType(308L , message.getExtension(repeatedFixed64Extension , 1)); 1539 assertEqualsExactType(309 , message.getExtension(repeatedSfixed32Extension, 1)); 1540 assertEqualsExactType(310L , message.getExtension(repeatedSfixed64Extension, 1)); 1541 assertEqualsExactType(311F , message.getExtension(repeatedFloatExtension , 1)); 1542 assertEqualsExactType(312D , message.getExtension(repeatedDoubleExtension , 1)); 1543 assertEqualsExactType(false, message.getExtension(repeatedBoolExtension , 1)); 1544 assertEqualsExactType("315", message.getExtension(repeatedStringExtension , 1)); 1545 assertEqualsExactType(toBytes("316"), message.getExtension(repeatedBytesExtension, 1)); 1546 1547 assertEqualsExactType(317, message.getExtension(repeatedGroupExtension , 1).getA()); 1548 assertEqualsExactType(318, message.getExtension(repeatedNestedMessageExtension , 1).getBb()); 1549 assertEqualsExactType(319, message.getExtension(repeatedForeignMessageExtension, 1).getC()); 1550 assertEqualsExactType(320, message.getExtension(repeatedImportMessageExtension , 1).getD()); 1551 assertEqualsExactType(327, message.getExtension(repeatedLazyMessageExtension , 1).getBb()); 1552 1553 assertEqualsExactType(TestAllTypes.NestedEnum.BAZ, 1554 message.getExtension(repeatedNestedEnumExtension, 1)); 1555 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ, 1556 message.getExtension(repeatedForeignEnumExtension, 1)); 1557 assertEqualsExactType(ImportEnum.IMPORT_BAZ, 1558 message.getExtension(repeatedImportEnumExtension, 1)); 1559 1560 assertEqualsExactType("324", message.getExtension(repeatedStringPieceExtension, 1)); 1561 assertEqualsExactType("325", message.getExtension(repeatedCordExtension, 1)); 1562 1563 // ----------------------------------------------------------------- 1564 1565 Assert.assertTrue(message.hasExtension(defaultInt32Extension )); 1566 Assert.assertTrue(message.hasExtension(defaultInt64Extension )); 1567 Assert.assertTrue(message.hasExtension(defaultUint32Extension )); 1568 Assert.assertTrue(message.hasExtension(defaultUint64Extension )); 1569 Assert.assertTrue(message.hasExtension(defaultSint32Extension )); 1570 Assert.assertTrue(message.hasExtension(defaultSint64Extension )); 1571 Assert.assertTrue(message.hasExtension(defaultFixed32Extension )); 1572 Assert.assertTrue(message.hasExtension(defaultFixed64Extension )); 1573 Assert.assertTrue(message.hasExtension(defaultSfixed32Extension)); 1574 Assert.assertTrue(message.hasExtension(defaultSfixed64Extension)); 1575 Assert.assertTrue(message.hasExtension(defaultFloatExtension )); 1576 Assert.assertTrue(message.hasExtension(defaultDoubleExtension )); 1577 Assert.assertTrue(message.hasExtension(defaultBoolExtension )); 1578 Assert.assertTrue(message.hasExtension(defaultStringExtension )); 1579 Assert.assertTrue(message.hasExtension(defaultBytesExtension )); 1580 1581 Assert.assertTrue(message.hasExtension(defaultNestedEnumExtension )); 1582 Assert.assertTrue(message.hasExtension(defaultForeignEnumExtension)); 1583 Assert.assertTrue(message.hasExtension(defaultImportEnumExtension )); 1584 1585 Assert.assertTrue(message.hasExtension(defaultStringPieceExtension)); 1586 Assert.assertTrue(message.hasExtension(defaultCordExtension)); 1587 1588 assertEqualsExactType(401 , message.getExtension(defaultInt32Extension )); 1589 assertEqualsExactType(402L , message.getExtension(defaultInt64Extension )); 1590 assertEqualsExactType(403 , message.getExtension(defaultUint32Extension )); 1591 assertEqualsExactType(404L , message.getExtension(defaultUint64Extension )); 1592 assertEqualsExactType(405 , message.getExtension(defaultSint32Extension )); 1593 assertEqualsExactType(406L , message.getExtension(defaultSint64Extension )); 1594 assertEqualsExactType(407 , message.getExtension(defaultFixed32Extension )); 1595 assertEqualsExactType(408L , message.getExtension(defaultFixed64Extension )); 1596 assertEqualsExactType(409 , message.getExtension(defaultSfixed32Extension)); 1597 assertEqualsExactType(410L , message.getExtension(defaultSfixed64Extension)); 1598 assertEqualsExactType(411F , message.getExtension(defaultFloatExtension )); 1599 assertEqualsExactType(412D , message.getExtension(defaultDoubleExtension )); 1600 assertEqualsExactType(false, message.getExtension(defaultBoolExtension )); 1601 assertEqualsExactType("415", message.getExtension(defaultStringExtension )); 1602 assertEqualsExactType(toBytes("416"), message.getExtension(defaultBytesExtension)); 1603 1604 assertEqualsExactType(TestAllTypes.NestedEnum.FOO, 1605 message.getExtension(defaultNestedEnumExtension )); 1606 assertEqualsExactType(ForeignEnum.FOREIGN_FOO, 1607 message.getExtension(defaultForeignEnumExtension)); 1608 assertEqualsExactType(ImportEnum.IMPORT_FOO, 1609 message.getExtension(defaultImportEnumExtension)); 1610 1611 assertEqualsExactType("424", message.getExtension(defaultStringPieceExtension)); 1612 assertEqualsExactType("425", message.getExtension(defaultCordExtension)); 1613 1614 Assert.assertTrue(message.hasExtension(oneofBytesExtension)); 1615 1616 assertEqualsExactType(toBytes("604"), message.getExtension(oneofBytesExtension)); 1617 } 1618 1619 // ------------------------------------------------------------------- 1620 1621 /** 1622 * Assert (using {@code junit.framework.Assert}} that all extensions of 1623 * {@code message} are cleared, and that getting the extensions returns their 1624 * default values. 1625 */ 1626 public static void assertExtensionsClear(TestAllExtensionsOrBuilder message) { 1627 // hasBlah() should initially be false for all optional fields. 1628 Assert.assertFalse(message.hasExtension(optionalInt32Extension )); 1629 Assert.assertFalse(message.hasExtension(optionalInt64Extension )); 1630 Assert.assertFalse(message.hasExtension(optionalUint32Extension )); 1631 Assert.assertFalse(message.hasExtension(optionalUint64Extension )); 1632 Assert.assertFalse(message.hasExtension(optionalSint32Extension )); 1633 Assert.assertFalse(message.hasExtension(optionalSint64Extension )); 1634 Assert.assertFalse(message.hasExtension(optionalFixed32Extension )); 1635 Assert.assertFalse(message.hasExtension(optionalFixed64Extension )); 1636 Assert.assertFalse(message.hasExtension(optionalSfixed32Extension)); 1637 Assert.assertFalse(message.hasExtension(optionalSfixed64Extension)); 1638 Assert.assertFalse(message.hasExtension(optionalFloatExtension )); 1639 Assert.assertFalse(message.hasExtension(optionalDoubleExtension )); 1640 Assert.assertFalse(message.hasExtension(optionalBoolExtension )); 1641 Assert.assertFalse(message.hasExtension(optionalStringExtension )); 1642 Assert.assertFalse(message.hasExtension(optionalBytesExtension )); 1643 1644 Assert.assertFalse(message.hasExtension(optionalGroupExtension )); 1645 Assert.assertFalse(message.hasExtension(optionalNestedMessageExtension )); 1646 Assert.assertFalse(message.hasExtension(optionalForeignMessageExtension)); 1647 Assert.assertFalse(message.hasExtension(optionalImportMessageExtension )); 1648 1649 Assert.assertFalse(message.hasExtension(optionalNestedEnumExtension )); 1650 Assert.assertFalse(message.hasExtension(optionalForeignEnumExtension)); 1651 Assert.assertFalse(message.hasExtension(optionalImportEnumExtension )); 1652 1653 Assert.assertFalse(message.hasExtension(optionalStringPieceExtension)); 1654 Assert.assertFalse(message.hasExtension(optionalCordExtension)); 1655 1656 // Optional fields without defaults are set to zero or something like it. 1657 assertEqualsExactType(0 , message.getExtension(optionalInt32Extension )); 1658 assertEqualsExactType(0L , message.getExtension(optionalInt64Extension )); 1659 assertEqualsExactType(0 , message.getExtension(optionalUint32Extension )); 1660 assertEqualsExactType(0L , message.getExtension(optionalUint64Extension )); 1661 assertEqualsExactType(0 , message.getExtension(optionalSint32Extension )); 1662 assertEqualsExactType(0L , message.getExtension(optionalSint64Extension )); 1663 assertEqualsExactType(0 , message.getExtension(optionalFixed32Extension )); 1664 assertEqualsExactType(0L , message.getExtension(optionalFixed64Extension )); 1665 assertEqualsExactType(0 , message.getExtension(optionalSfixed32Extension)); 1666 assertEqualsExactType(0L , message.getExtension(optionalSfixed64Extension)); 1667 assertEqualsExactType(0F , message.getExtension(optionalFloatExtension )); 1668 assertEqualsExactType(0D , message.getExtension(optionalDoubleExtension )); 1669 assertEqualsExactType(false, message.getExtension(optionalBoolExtension )); 1670 assertEqualsExactType("" , message.getExtension(optionalStringExtension )); 1671 assertEqualsExactType(ByteString.EMPTY, message.getExtension(optionalBytesExtension)); 1672 1673 // Embedded messages should also be clear. 1674 Assert.assertFalse(message.getExtension(optionalGroupExtension ).hasA()); 1675 Assert.assertFalse(message.getExtension(optionalNestedMessageExtension ).hasBb()); 1676 Assert.assertFalse(message.getExtension(optionalForeignMessageExtension).hasC()); 1677 Assert.assertFalse(message.getExtension(optionalImportMessageExtension ).hasD()); 1678 1679 assertEqualsExactType(0, message.getExtension(optionalGroupExtension ).getA()); 1680 assertEqualsExactType(0, message.getExtension(optionalNestedMessageExtension ).getBb()); 1681 assertEqualsExactType(0, message.getExtension(optionalForeignMessageExtension).getC()); 1682 assertEqualsExactType(0, message.getExtension(optionalImportMessageExtension ).getD()); 1683 1684 // Enums without defaults are set to the first value in the enum. 1685 assertEqualsExactType(TestAllTypes.NestedEnum.FOO, 1686 message.getExtension(optionalNestedEnumExtension )); 1687 assertEqualsExactType(ForeignEnum.FOREIGN_FOO, 1688 message.getExtension(optionalForeignEnumExtension)); 1689 assertEqualsExactType(ImportEnum.IMPORT_FOO, 1690 message.getExtension(optionalImportEnumExtension)); 1691 1692 assertEqualsExactType("", message.getExtension(optionalStringPieceExtension)); 1693 assertEqualsExactType("", message.getExtension(optionalCordExtension)); 1694 1695 // Repeated fields are empty. 1696 Assert.assertEquals(0, message.getExtensionCount(repeatedInt32Extension )); 1697 Assert.assertEquals(0, message.getExtensionCount(repeatedInt64Extension )); 1698 Assert.assertEquals(0, message.getExtensionCount(repeatedUint32Extension )); 1699 Assert.assertEquals(0, message.getExtensionCount(repeatedUint64Extension )); 1700 Assert.assertEquals(0, message.getExtensionCount(repeatedSint32Extension )); 1701 Assert.assertEquals(0, message.getExtensionCount(repeatedSint64Extension )); 1702 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed32Extension )); 1703 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed64Extension )); 1704 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed32Extension)); 1705 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed64Extension)); 1706 Assert.assertEquals(0, message.getExtensionCount(repeatedFloatExtension )); 1707 Assert.assertEquals(0, message.getExtensionCount(repeatedDoubleExtension )); 1708 Assert.assertEquals(0, message.getExtensionCount(repeatedBoolExtension )); 1709 Assert.assertEquals(0, message.getExtensionCount(repeatedStringExtension )); 1710 Assert.assertEquals(0, message.getExtensionCount(repeatedBytesExtension )); 1711 1712 Assert.assertEquals(0, message.getExtensionCount(repeatedGroupExtension )); 1713 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedMessageExtension )); 1714 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignMessageExtension)); 1715 Assert.assertEquals(0, message.getExtensionCount(repeatedImportMessageExtension )); 1716 Assert.assertEquals(0, message.getExtensionCount(repeatedLazyMessageExtension )); 1717 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedEnumExtension )); 1718 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignEnumExtension )); 1719 Assert.assertEquals(0, message.getExtensionCount(repeatedImportEnumExtension )); 1720 1721 Assert.assertEquals(0, message.getExtensionCount(repeatedStringPieceExtension)); 1722 Assert.assertEquals(0, message.getExtensionCount(repeatedCordExtension)); 1723 1724 // Repeated fields are empty via getExtension().size(). 1725 Assert.assertEquals(0, message.getExtension(repeatedInt32Extension ).size()); 1726 Assert.assertEquals(0, message.getExtension(repeatedInt64Extension ).size()); 1727 Assert.assertEquals(0, message.getExtension(repeatedUint32Extension ).size()); 1728 Assert.assertEquals(0, message.getExtension(repeatedUint64Extension ).size()); 1729 Assert.assertEquals(0, message.getExtension(repeatedSint32Extension ).size()); 1730 Assert.assertEquals(0, message.getExtension(repeatedSint64Extension ).size()); 1731 Assert.assertEquals(0, message.getExtension(repeatedFixed32Extension ).size()); 1732 Assert.assertEquals(0, message.getExtension(repeatedFixed64Extension ).size()); 1733 Assert.assertEquals(0, message.getExtension(repeatedSfixed32Extension).size()); 1734 Assert.assertEquals(0, message.getExtension(repeatedSfixed64Extension).size()); 1735 Assert.assertEquals(0, message.getExtension(repeatedFloatExtension ).size()); 1736 Assert.assertEquals(0, message.getExtension(repeatedDoubleExtension ).size()); 1737 Assert.assertEquals(0, message.getExtension(repeatedBoolExtension ).size()); 1738 Assert.assertEquals(0, message.getExtension(repeatedStringExtension ).size()); 1739 Assert.assertEquals(0, message.getExtension(repeatedBytesExtension ).size()); 1740 1741 Assert.assertEquals(0, message.getExtension(repeatedGroupExtension ).size()); 1742 Assert.assertEquals(0, message.getExtension(repeatedNestedMessageExtension ).size()); 1743 Assert.assertEquals(0, message.getExtension(repeatedForeignMessageExtension).size()); 1744 Assert.assertEquals(0, message.getExtension(repeatedImportMessageExtension ).size()); 1745 Assert.assertEquals(0, message.getExtension(repeatedLazyMessageExtension ).size()); 1746 Assert.assertEquals(0, message.getExtension(repeatedNestedEnumExtension ).size()); 1747 Assert.assertEquals(0, message.getExtension(repeatedForeignEnumExtension ).size()); 1748 Assert.assertEquals(0, message.getExtension(repeatedImportEnumExtension ).size()); 1749 1750 Assert.assertEquals(0, message.getExtension(repeatedStringPieceExtension).size()); 1751 Assert.assertEquals(0, message.getExtension(repeatedCordExtension).size()); 1752 1753 // hasBlah() should also be false for all default fields. 1754 Assert.assertFalse(message.hasExtension(defaultInt32Extension )); 1755 Assert.assertFalse(message.hasExtension(defaultInt64Extension )); 1756 Assert.assertFalse(message.hasExtension(defaultUint32Extension )); 1757 Assert.assertFalse(message.hasExtension(defaultUint64Extension )); 1758 Assert.assertFalse(message.hasExtension(defaultSint32Extension )); 1759 Assert.assertFalse(message.hasExtension(defaultSint64Extension )); 1760 Assert.assertFalse(message.hasExtension(defaultFixed32Extension )); 1761 Assert.assertFalse(message.hasExtension(defaultFixed64Extension )); 1762 Assert.assertFalse(message.hasExtension(defaultSfixed32Extension)); 1763 Assert.assertFalse(message.hasExtension(defaultSfixed64Extension)); 1764 Assert.assertFalse(message.hasExtension(defaultFloatExtension )); 1765 Assert.assertFalse(message.hasExtension(defaultDoubleExtension )); 1766 Assert.assertFalse(message.hasExtension(defaultBoolExtension )); 1767 Assert.assertFalse(message.hasExtension(defaultStringExtension )); 1768 Assert.assertFalse(message.hasExtension(defaultBytesExtension )); 1769 1770 Assert.assertFalse(message.hasExtension(defaultNestedEnumExtension )); 1771 Assert.assertFalse(message.hasExtension(defaultForeignEnumExtension)); 1772 Assert.assertFalse(message.hasExtension(defaultImportEnumExtension )); 1773 1774 Assert.assertFalse(message.hasExtension(defaultStringPieceExtension)); 1775 Assert.assertFalse(message.hasExtension(defaultCordExtension)); 1776 1777 // Fields with defaults have their default values (duh). 1778 assertEqualsExactType( 41 , message.getExtension(defaultInt32Extension )); 1779 assertEqualsExactType( 42L , message.getExtension(defaultInt64Extension )); 1780 assertEqualsExactType( 43 , message.getExtension(defaultUint32Extension )); 1781 assertEqualsExactType( 44L , message.getExtension(defaultUint64Extension )); 1782 assertEqualsExactType(-45 , message.getExtension(defaultSint32Extension )); 1783 assertEqualsExactType( 46L , message.getExtension(defaultSint64Extension )); 1784 assertEqualsExactType( 47 , message.getExtension(defaultFixed32Extension )); 1785 assertEqualsExactType( 48L , message.getExtension(defaultFixed64Extension )); 1786 assertEqualsExactType( 49 , message.getExtension(defaultSfixed32Extension)); 1787 assertEqualsExactType(-50L , message.getExtension(defaultSfixed64Extension)); 1788 assertEqualsExactType( 51.5F , message.getExtension(defaultFloatExtension )); 1789 assertEqualsExactType( 52e3D , message.getExtension(defaultDoubleExtension )); 1790 assertEqualsExactType(true , message.getExtension(defaultBoolExtension )); 1791 assertEqualsExactType("hello", message.getExtension(defaultStringExtension )); 1792 assertEqualsExactType(toBytes("world"), message.getExtension(defaultBytesExtension)); 1793 1794 assertEqualsExactType(TestAllTypes.NestedEnum.BAR, 1795 message.getExtension(defaultNestedEnumExtension )); 1796 assertEqualsExactType(ForeignEnum.FOREIGN_BAR, 1797 message.getExtension(defaultForeignEnumExtension)); 1798 assertEqualsExactType(ImportEnum.IMPORT_BAR, 1799 message.getExtension(defaultImportEnumExtension)); 1800 1801 assertEqualsExactType("abc", message.getExtension(defaultStringPieceExtension)); 1802 assertEqualsExactType("123", message.getExtension(defaultCordExtension)); 1803 1804 Assert.assertFalse(message.hasExtension(oneofUint32Extension)); 1805 Assert.assertFalse(message.hasExtension(oneofNestedMessageExtension)); 1806 Assert.assertFalse(message.hasExtension(oneofStringExtension)); 1807 Assert.assertFalse(message.hasExtension(oneofBytesExtension)); 1808 } 1809 1810 // ------------------------------------------------------------------- 1811 1812 /** 1813 * Assert (using {@code junit.framework.Assert}} that all extensions of 1814 * {@code message} are set to the values assigned by {@code setAllExtensions} 1815 * followed by {@code modifyRepeatedExtensions}. 1816 */ 1817 public static void assertRepeatedExtensionsModified( 1818 TestAllExtensionsOrBuilder message) { 1819 // ModifyRepeatedFields only sets the second repeated element of each 1820 // field. In addition to verifying this, we also verify that the first 1821 // element and size were *not* modified. 1822 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32Extension )); 1823 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64Extension )); 1824 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32Extension )); 1825 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64Extension )); 1826 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32Extension )); 1827 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64Extension )); 1828 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32Extension )); 1829 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64Extension )); 1830 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32Extension)); 1831 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64Extension)); 1832 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtension )); 1833 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtension )); 1834 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtension )); 1835 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtension )); 1836 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtension )); 1837 1838 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtension )); 1839 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtension )); 1840 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExtension)); 1841 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtension )); 1842 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtension )); 1843 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtension )); 1844 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtension )); 1845 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtension )); 1846 1847 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtension)); 1848 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtension)); 1849 1850 assertEqualsExactType(201 , message.getExtension(repeatedInt32Extension , 0)); 1851 assertEqualsExactType(202L , message.getExtension(repeatedInt64Extension , 0)); 1852 assertEqualsExactType(203 , message.getExtension(repeatedUint32Extension , 0)); 1853 assertEqualsExactType(204L , message.getExtension(repeatedUint64Extension , 0)); 1854 assertEqualsExactType(205 , message.getExtension(repeatedSint32Extension , 0)); 1855 assertEqualsExactType(206L , message.getExtension(repeatedSint64Extension , 0)); 1856 assertEqualsExactType(207 , message.getExtension(repeatedFixed32Extension , 0)); 1857 assertEqualsExactType(208L , message.getExtension(repeatedFixed64Extension , 0)); 1858 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32Extension, 0)); 1859 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64Extension, 0)); 1860 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtension , 0)); 1861 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtension , 0)); 1862 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 0)); 1863 assertEqualsExactType("215", message.getExtension(repeatedStringExtension , 0)); 1864 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExtension, 0)); 1865 1866 assertEqualsExactType(217, message.getExtension(repeatedGroupExtension , 0).getA()); 1867 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtension , 0).getBb()); 1868 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtension, 0).getC()); 1869 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtension , 0).getD()); 1870 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtension , 0).getBb()); 1871 1872 assertEqualsExactType(TestAllTypes.NestedEnum.BAR, 1873 message.getExtension(repeatedNestedEnumExtension, 0)); 1874 assertEqualsExactType(ForeignEnum.FOREIGN_BAR, 1875 message.getExtension(repeatedForeignEnumExtension, 0)); 1876 assertEqualsExactType(ImportEnum.IMPORT_BAR, 1877 message.getExtension(repeatedImportEnumExtension, 0)); 1878 1879 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtension, 0)); 1880 assertEqualsExactType("225", message.getExtension(repeatedCordExtension, 0)); 1881 1882 // Actually verify the second (modified) elements now. 1883 assertEqualsExactType(501 , message.getExtension(repeatedInt32Extension , 1)); 1884 assertEqualsExactType(502L , message.getExtension(repeatedInt64Extension , 1)); 1885 assertEqualsExactType(503 , message.getExtension(repeatedUint32Extension , 1)); 1886 assertEqualsExactType(504L , message.getExtension(repeatedUint64Extension , 1)); 1887 assertEqualsExactType(505 , message.getExtension(repeatedSint32Extension , 1)); 1888 assertEqualsExactType(506L , message.getExtension(repeatedSint64Extension , 1)); 1889 assertEqualsExactType(507 , message.getExtension(repeatedFixed32Extension , 1)); 1890 assertEqualsExactType(508L , message.getExtension(repeatedFixed64Extension , 1)); 1891 assertEqualsExactType(509 , message.getExtension(repeatedSfixed32Extension, 1)); 1892 assertEqualsExactType(510L , message.getExtension(repeatedSfixed64Extension, 1)); 1893 assertEqualsExactType(511F , message.getExtension(repeatedFloatExtension , 1)); 1894 assertEqualsExactType(512D , message.getExtension(repeatedDoubleExtension , 1)); 1895 assertEqualsExactType(true , message.getExtension(repeatedBoolExtension , 1)); 1896 assertEqualsExactType("515", message.getExtension(repeatedStringExtension , 1)); 1897 assertEqualsExactType(toBytes("516"), message.getExtension(repeatedBytesExtension, 1)); 1898 1899 assertEqualsExactType(517, message.getExtension(repeatedGroupExtension , 1).getA()); 1900 assertEqualsExactType(518, message.getExtension(repeatedNestedMessageExtension , 1).getBb()); 1901 assertEqualsExactType(519, message.getExtension(repeatedForeignMessageExtension, 1).getC()); 1902 assertEqualsExactType(520, message.getExtension(repeatedImportMessageExtension , 1).getD()); 1903 assertEqualsExactType(527, message.getExtension(repeatedLazyMessageExtension , 1).getBb()); 1904 1905 assertEqualsExactType(TestAllTypes.NestedEnum.FOO, 1906 message.getExtension(repeatedNestedEnumExtension, 1)); 1907 assertEqualsExactType(ForeignEnum.FOREIGN_FOO, 1908 message.getExtension(repeatedForeignEnumExtension, 1)); 1909 assertEqualsExactType(ImportEnum.IMPORT_FOO, 1910 message.getExtension(repeatedImportEnumExtension, 1)); 1911 1912 assertEqualsExactType("524", message.getExtension(repeatedStringPieceExtension, 1)); 1913 assertEqualsExactType("525", message.getExtension(repeatedCordExtension, 1)); 1914 } 1915 1916 public static void setPackedExtensions(TestPackedExtensions.Builder message) { 1917 message.addExtension(packedInt32Extension , 601); 1918 message.addExtension(packedInt64Extension , 602L); 1919 message.addExtension(packedUint32Extension , 603); 1920 message.addExtension(packedUint64Extension , 604L); 1921 message.addExtension(packedSint32Extension , 605); 1922 message.addExtension(packedSint64Extension , 606L); 1923 message.addExtension(packedFixed32Extension , 607); 1924 message.addExtension(packedFixed64Extension , 608L); 1925 message.addExtension(packedSfixed32Extension, 609); 1926 message.addExtension(packedSfixed64Extension, 610L); 1927 message.addExtension(packedFloatExtension , 611F); 1928 message.addExtension(packedDoubleExtension , 612D); 1929 message.addExtension(packedBoolExtension , true); 1930 message.addExtension(packedEnumExtension, ForeignEnum.FOREIGN_BAR); 1931 // Add a second one of each field. 1932 message.addExtension(packedInt32Extension , 701); 1933 message.addExtension(packedInt64Extension , 702L); 1934 message.addExtension(packedUint32Extension , 703); 1935 message.addExtension(packedUint64Extension , 704L); 1936 message.addExtension(packedSint32Extension , 705); 1937 message.addExtension(packedSint64Extension , 706L); 1938 message.addExtension(packedFixed32Extension , 707); 1939 message.addExtension(packedFixed64Extension , 708L); 1940 message.addExtension(packedSfixed32Extension, 709); 1941 message.addExtension(packedSfixed64Extension, 710L); 1942 message.addExtension(packedFloatExtension , 711F); 1943 message.addExtension(packedDoubleExtension , 712D); 1944 message.addExtension(packedBoolExtension , false); 1945 message.addExtension(packedEnumExtension, ForeignEnum.FOREIGN_BAZ); 1946 } 1947 1948 public static void assertPackedExtensionsSet(TestPackedExtensions message) { 1949 Assert.assertEquals(2, message.getExtensionCount(packedInt32Extension )); 1950 Assert.assertEquals(2, message.getExtensionCount(packedInt64Extension )); 1951 Assert.assertEquals(2, message.getExtensionCount(packedUint32Extension )); 1952 Assert.assertEquals(2, message.getExtensionCount(packedUint64Extension )); 1953 Assert.assertEquals(2, message.getExtensionCount(packedSint32Extension )); 1954 Assert.assertEquals(2, message.getExtensionCount(packedSint64Extension )); 1955 Assert.assertEquals(2, message.getExtensionCount(packedFixed32Extension )); 1956 Assert.assertEquals(2, message.getExtensionCount(packedFixed64Extension )); 1957 Assert.assertEquals(2, message.getExtensionCount(packedSfixed32Extension)); 1958 Assert.assertEquals(2, message.getExtensionCount(packedSfixed64Extension)); 1959 Assert.assertEquals(2, message.getExtensionCount(packedFloatExtension )); 1960 Assert.assertEquals(2, message.getExtensionCount(packedDoubleExtension )); 1961 Assert.assertEquals(2, message.getExtensionCount(packedBoolExtension )); 1962 Assert.assertEquals(2, message.getExtensionCount(packedEnumExtension)); 1963 assertEqualsExactType(601 , message.getExtension(packedInt32Extension , 0)); 1964 assertEqualsExactType(602L , message.getExtension(packedInt64Extension , 0)); 1965 assertEqualsExactType(603 , message.getExtension(packedUint32Extension , 0)); 1966 assertEqualsExactType(604L , message.getExtension(packedUint64Extension , 0)); 1967 assertEqualsExactType(605 , message.getExtension(packedSint32Extension , 0)); 1968 assertEqualsExactType(606L , message.getExtension(packedSint64Extension , 0)); 1969 assertEqualsExactType(607 , message.getExtension(packedFixed32Extension , 0)); 1970 assertEqualsExactType(608L , message.getExtension(packedFixed64Extension , 0)); 1971 assertEqualsExactType(609 , message.getExtension(packedSfixed32Extension, 0)); 1972 assertEqualsExactType(610L , message.getExtension(packedSfixed64Extension, 0)); 1973 assertEqualsExactType(611F , message.getExtension(packedFloatExtension , 0)); 1974 assertEqualsExactType(612D , message.getExtension(packedDoubleExtension , 0)); 1975 assertEqualsExactType(true , message.getExtension(packedBoolExtension , 0)); 1976 assertEqualsExactType(ForeignEnum.FOREIGN_BAR, 1977 message.getExtension(packedEnumExtension, 0)); 1978 assertEqualsExactType(701 , message.getExtension(packedInt32Extension , 1)); 1979 assertEqualsExactType(702L , message.getExtension(packedInt64Extension , 1)); 1980 assertEqualsExactType(703 , message.getExtension(packedUint32Extension , 1)); 1981 assertEqualsExactType(704L , message.getExtension(packedUint64Extension , 1)); 1982 assertEqualsExactType(705 , message.getExtension(packedSint32Extension , 1)); 1983 assertEqualsExactType(706L , message.getExtension(packedSint64Extension , 1)); 1984 assertEqualsExactType(707 , message.getExtension(packedFixed32Extension , 1)); 1985 assertEqualsExactType(708L , message.getExtension(packedFixed64Extension , 1)); 1986 assertEqualsExactType(709 , message.getExtension(packedSfixed32Extension, 1)); 1987 assertEqualsExactType(710L , message.getExtension(packedSfixed64Extension, 1)); 1988 assertEqualsExactType(711F , message.getExtension(packedFloatExtension , 1)); 1989 assertEqualsExactType(712D , message.getExtension(packedDoubleExtension , 1)); 1990 assertEqualsExactType(false, message.getExtension(packedBoolExtension , 1)); 1991 assertEqualsExactType(ForeignEnum.FOREIGN_BAZ, 1992 message.getExtension(packedEnumExtension, 1)); 1993 } 1994 1995 // =================================================================== 1996 // Lite extensions 1997 1998 /** 1999 * Assert (using {@code junit.framework.Assert}} that all extensions of 2000 * {@code message} are set to the values assigned by {@code setAllExtensions}. 2001 */ 2002 public static void assertAllExtensionsSet( 2003 TestAllExtensionsLiteOrBuilder message) { 2004 Assert.assertTrue(message.hasExtension(optionalInt32ExtensionLite )); 2005 Assert.assertTrue(message.hasExtension(optionalInt64ExtensionLite )); 2006 Assert.assertTrue(message.hasExtension(optionalUint32ExtensionLite )); 2007 Assert.assertTrue(message.hasExtension(optionalUint64ExtensionLite )); 2008 Assert.assertTrue(message.hasExtension(optionalSint32ExtensionLite )); 2009 Assert.assertTrue(message.hasExtension(optionalSint64ExtensionLite )); 2010 Assert.assertTrue(message.hasExtension(optionalFixed32ExtensionLite )); 2011 Assert.assertTrue(message.hasExtension(optionalFixed64ExtensionLite )); 2012 Assert.assertTrue(message.hasExtension(optionalSfixed32ExtensionLite)); 2013 Assert.assertTrue(message.hasExtension(optionalSfixed64ExtensionLite)); 2014 Assert.assertTrue(message.hasExtension(optionalFloatExtensionLite )); 2015 Assert.assertTrue(message.hasExtension(optionalDoubleExtensionLite )); 2016 Assert.assertTrue(message.hasExtension(optionalBoolExtensionLite )); 2017 Assert.assertTrue(message.hasExtension(optionalStringExtensionLite )); 2018 Assert.assertTrue(message.hasExtension(optionalBytesExtensionLite )); 2019 2020 Assert.assertTrue(message.hasExtension(optionalGroupExtensionLite )); 2021 Assert.assertTrue(message.hasExtension(optionalNestedMessageExtensionLite )); 2022 Assert.assertTrue(message.hasExtension(optionalForeignMessageExtensionLite)); 2023 Assert.assertTrue(message.hasExtension(optionalImportMessageExtensionLite )); 2024 2025 Assert.assertTrue(message.getExtension(optionalGroupExtensionLite ).hasA()); 2026 Assert.assertTrue(message.getExtension(optionalNestedMessageExtensionLite ).hasBb()); 2027 Assert.assertTrue(message.getExtension(optionalForeignMessageExtensionLite).hasC()); 2028 Assert.assertTrue(message.getExtension(optionalImportMessageExtensionLite ).hasD()); 2029 2030 Assert.assertTrue(message.hasExtension(optionalNestedEnumExtensionLite )); 2031 Assert.assertTrue(message.hasExtension(optionalForeignEnumExtensionLite)); 2032 Assert.assertTrue(message.hasExtension(optionalImportEnumExtensionLite )); 2033 2034 Assert.assertTrue(message.hasExtension(optionalStringPieceExtensionLite)); 2035 Assert.assertTrue(message.hasExtension(optionalCordExtensionLite)); 2036 2037 assertEqualsExactType(101 , message.getExtension(optionalInt32ExtensionLite )); 2038 assertEqualsExactType(102L , message.getExtension(optionalInt64ExtensionLite )); 2039 assertEqualsExactType(103 , message.getExtension(optionalUint32ExtensionLite )); 2040 assertEqualsExactType(104L , message.getExtension(optionalUint64ExtensionLite )); 2041 assertEqualsExactType(105 , message.getExtension(optionalSint32ExtensionLite )); 2042 assertEqualsExactType(106L , message.getExtension(optionalSint64ExtensionLite )); 2043 assertEqualsExactType(107 , message.getExtension(optionalFixed32ExtensionLite )); 2044 assertEqualsExactType(108L , message.getExtension(optionalFixed64ExtensionLite )); 2045 assertEqualsExactType(109 , message.getExtension(optionalSfixed32ExtensionLite)); 2046 assertEqualsExactType(110L , message.getExtension(optionalSfixed64ExtensionLite)); 2047 assertEqualsExactType(111F , message.getExtension(optionalFloatExtensionLite )); 2048 assertEqualsExactType(112D , message.getExtension(optionalDoubleExtensionLite )); 2049 assertEqualsExactType(true , message.getExtension(optionalBoolExtensionLite )); 2050 assertEqualsExactType("115", message.getExtension(optionalStringExtensionLite )); 2051 assertEqualsExactType(toBytes("116"), message.getExtension(optionalBytesExtensionLite)); 2052 2053 assertEqualsExactType(117, message.getExtension(optionalGroupExtensionLite ).getA()); 2054 assertEqualsExactType(118, message.getExtension(optionalNestedMessageExtensionLite ).getBb()); 2055 assertEqualsExactType(119, message.getExtension(optionalForeignMessageExtensionLite).getC()); 2056 assertEqualsExactType(120, message.getExtension(optionalImportMessageExtensionLite ).getD()); 2057 assertEqualsExactType(126, message.getExtension( 2058 optionalPublicImportMessageExtensionLite).getE()); 2059 assertEqualsExactType(127, message.getExtension(optionalLazyMessageExtensionLite).getBb()); 2060 2061 assertEqualsExactType(TestAllTypesLite.NestedEnum.BAZ, 2062 message.getExtension(optionalNestedEnumExtensionLite)); 2063 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAZ, 2064 message.getExtension(optionalForeignEnumExtensionLite)); 2065 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_BAZ, 2066 message.getExtension(optionalImportEnumExtensionLite)); 2067 2068 assertEqualsExactType("124", message.getExtension(optionalStringPieceExtensionLite)); 2069 assertEqualsExactType("125", message.getExtension(optionalCordExtensionLite)); 2070 2071 // ----------------------------------------------------------------- 2072 2073 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32ExtensionLite )); 2074 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64ExtensionLite )); 2075 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32ExtensionLite )); 2076 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64ExtensionLite )); 2077 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32ExtensionLite )); 2078 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64ExtensionLite )); 2079 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32ExtensionLite )); 2080 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64ExtensionLite )); 2081 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32ExtensionLite)); 2082 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64ExtensionLite)); 2083 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtensionLite )); 2084 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtensionLite )); 2085 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtensionLite )); 2086 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtensionLite )); 2087 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtensionLite )); 2088 2089 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtensionLite )); 2090 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtensionLite )); 2091 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExtensionLite)); 2092 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtensionLite )); 2093 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtensionLite )); 2094 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtensionLite )); 2095 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtensionLite )); 2096 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtensionLite )); 2097 2098 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtensionLite)); 2099 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtensionLite)); 2100 2101 assertEqualsExactType(201 , message.getExtension(repeatedInt32ExtensionLite , 0)); 2102 assertEqualsExactType(202L , message.getExtension(repeatedInt64ExtensionLite , 0)); 2103 assertEqualsExactType(203 , message.getExtension(repeatedUint32ExtensionLite , 0)); 2104 assertEqualsExactType(204L , message.getExtension(repeatedUint64ExtensionLite , 0)); 2105 assertEqualsExactType(205 , message.getExtension(repeatedSint32ExtensionLite , 0)); 2106 assertEqualsExactType(206L , message.getExtension(repeatedSint64ExtensionLite , 0)); 2107 assertEqualsExactType(207 , message.getExtension(repeatedFixed32ExtensionLite , 0)); 2108 assertEqualsExactType(208L , message.getExtension(repeatedFixed64ExtensionLite , 0)); 2109 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32ExtensionLite, 0)); 2110 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64ExtensionLite, 0)); 2111 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtensionLite , 0)); 2112 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtensionLite , 0)); 2113 assertEqualsExactType(true , message.getExtension(repeatedBoolExtensionLite , 0)); 2114 assertEqualsExactType("215", message.getExtension(repeatedStringExtensionLite , 0)); 2115 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExtensionLite, 0)); 2116 2117 assertEqualsExactType(217, message.getExtension(repeatedGroupExtensionLite ,0).getA()); 2118 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtensionLite ,0).getBb()); 2119 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtensionLite,0).getC()); 2120 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtensionLite ,0).getD()); 2121 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtensionLite ,0).getBb()); 2122 2123 assertEqualsExactType(TestAllTypesLite.NestedEnum.BAR, 2124 message.getExtension(repeatedNestedEnumExtensionLite, 0)); 2125 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAR, 2126 message.getExtension(repeatedForeignEnumExtensionLite, 0)); 2127 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_BAR, 2128 message.getExtension(repeatedImportEnumExtensionLite, 0)); 2129 2130 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtensionLite, 0)); 2131 assertEqualsExactType("225", message.getExtension(repeatedCordExtensionLite, 0)); 2132 2133 assertEqualsExactType(301 , message.getExtension(repeatedInt32ExtensionLite , 1)); 2134 assertEqualsExactType(302L , message.getExtension(repeatedInt64ExtensionLite , 1)); 2135 assertEqualsExactType(303 , message.getExtension(repeatedUint32ExtensionLite , 1)); 2136 assertEqualsExactType(304L , message.getExtension(repeatedUint64ExtensionLite , 1)); 2137 assertEqualsExactType(305 , message.getExtension(repeatedSint32ExtensionLite , 1)); 2138 assertEqualsExactType(306L , message.getExtension(repeatedSint64ExtensionLite , 1)); 2139 assertEqualsExactType(307 , message.getExtension(repeatedFixed32ExtensionLite , 1)); 2140 assertEqualsExactType(308L , message.getExtension(repeatedFixed64ExtensionLite , 1)); 2141 assertEqualsExactType(309 , message.getExtension(repeatedSfixed32ExtensionLite, 1)); 2142 assertEqualsExactType(310L , message.getExtension(repeatedSfixed64ExtensionLite, 1)); 2143 assertEqualsExactType(311F , message.getExtension(repeatedFloatExtensionLite , 1)); 2144 assertEqualsExactType(312D , message.getExtension(repeatedDoubleExtensionLite , 1)); 2145 assertEqualsExactType(false, message.getExtension(repeatedBoolExtensionLite , 1)); 2146 assertEqualsExactType("315", message.getExtension(repeatedStringExtensionLite , 1)); 2147 assertEqualsExactType(toBytes("316"), message.getExtension(repeatedBytesExtensionLite, 1)); 2148 2149 assertEqualsExactType(317, message.getExtension(repeatedGroupExtensionLite ,1).getA()); 2150 assertEqualsExactType(318, message.getExtension(repeatedNestedMessageExtensionLite ,1).getBb()); 2151 assertEqualsExactType(319, message.getExtension(repeatedForeignMessageExtensionLite,1).getC()); 2152 assertEqualsExactType(320, message.getExtension(repeatedImportMessageExtensionLite ,1).getD()); 2153 assertEqualsExactType(327, message.getExtension(repeatedLazyMessageExtensionLite ,1).getBb()); 2154 2155 assertEqualsExactType(TestAllTypesLite.NestedEnum.BAZ, 2156 message.getExtension(repeatedNestedEnumExtensionLite, 1)); 2157 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAZ, 2158 message.getExtension(repeatedForeignEnumExtensionLite, 1)); 2159 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_BAZ, 2160 message.getExtension(repeatedImportEnumExtensionLite, 1)); 2161 2162 assertEqualsExactType("324", message.getExtension(repeatedStringPieceExtensionLite, 1)); 2163 assertEqualsExactType("325", message.getExtension(repeatedCordExtensionLite, 1)); 2164 2165 // ----------------------------------------------------------------- 2166 2167 Assert.assertTrue(message.hasExtension(defaultInt32ExtensionLite )); 2168 Assert.assertTrue(message.hasExtension(defaultInt64ExtensionLite )); 2169 Assert.assertTrue(message.hasExtension(defaultUint32ExtensionLite )); 2170 Assert.assertTrue(message.hasExtension(defaultUint64ExtensionLite )); 2171 Assert.assertTrue(message.hasExtension(defaultSint32ExtensionLite )); 2172 Assert.assertTrue(message.hasExtension(defaultSint64ExtensionLite )); 2173 Assert.assertTrue(message.hasExtension(defaultFixed32ExtensionLite )); 2174 Assert.assertTrue(message.hasExtension(defaultFixed64ExtensionLite )); 2175 Assert.assertTrue(message.hasExtension(defaultSfixed32ExtensionLite)); 2176 Assert.assertTrue(message.hasExtension(defaultSfixed64ExtensionLite)); 2177 Assert.assertTrue(message.hasExtension(defaultFloatExtensionLite )); 2178 Assert.assertTrue(message.hasExtension(defaultDoubleExtensionLite )); 2179 Assert.assertTrue(message.hasExtension(defaultBoolExtensionLite )); 2180 Assert.assertTrue(message.hasExtension(defaultStringExtensionLite )); 2181 Assert.assertTrue(message.hasExtension(defaultBytesExtensionLite )); 2182 2183 Assert.assertTrue(message.hasExtension(defaultNestedEnumExtensionLite )); 2184 Assert.assertTrue(message.hasExtension(defaultForeignEnumExtensionLite)); 2185 Assert.assertTrue(message.hasExtension(defaultImportEnumExtensionLite )); 2186 2187 Assert.assertTrue(message.hasExtension(defaultStringPieceExtensionLite)); 2188 Assert.assertTrue(message.hasExtension(defaultCordExtensionLite)); 2189 2190 assertEqualsExactType(401 , message.getExtension(defaultInt32ExtensionLite )); 2191 assertEqualsExactType(402L , message.getExtension(defaultInt64ExtensionLite )); 2192 assertEqualsExactType(403 , message.getExtension(defaultUint32ExtensionLite )); 2193 assertEqualsExactType(404L , message.getExtension(defaultUint64ExtensionLite )); 2194 assertEqualsExactType(405 , message.getExtension(defaultSint32ExtensionLite )); 2195 assertEqualsExactType(406L , message.getExtension(defaultSint64ExtensionLite )); 2196 assertEqualsExactType(407 , message.getExtension(defaultFixed32ExtensionLite )); 2197 assertEqualsExactType(408L , message.getExtension(defaultFixed64ExtensionLite )); 2198 assertEqualsExactType(409 , message.getExtension(defaultSfixed32ExtensionLite)); 2199 assertEqualsExactType(410L , message.getExtension(defaultSfixed64ExtensionLite)); 2200 assertEqualsExactType(411F , message.getExtension(defaultFloatExtensionLite )); 2201 assertEqualsExactType(412D , message.getExtension(defaultDoubleExtensionLite )); 2202 assertEqualsExactType(false, message.getExtension(defaultBoolExtensionLite )); 2203 assertEqualsExactType("415", message.getExtension(defaultStringExtensionLite )); 2204 assertEqualsExactType(toBytes("416"), message.getExtension(defaultBytesExtensionLite)); 2205 2206 assertEqualsExactType(TestAllTypesLite.NestedEnum.FOO, 2207 message.getExtension(defaultNestedEnumExtensionLite )); 2208 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_FOO, 2209 message.getExtension(defaultForeignEnumExtensionLite)); 2210 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_FOO, 2211 message.getExtension(defaultImportEnumExtensionLite)); 2212 2213 assertEqualsExactType("424", message.getExtension(defaultStringPieceExtensionLite)); 2214 assertEqualsExactType("425", message.getExtension(defaultCordExtensionLite)); 2215 2216 Assert.assertTrue(message.hasExtension(oneofBytesExtensionLite)); 2217 2218 assertEqualsExactType(toBytes("604"), message.getExtension(oneofBytesExtensionLite)); 2219 } 2220 2221 // ------------------------------------------------------------------- 2222 2223 /** 2224 * Assert (using {@code junit.framework.Assert}} that all extensions of 2225 * {@code message} are cleared, and that getting the extensions returns their 2226 * default values. 2227 */ 2228 public static void assertExtensionsClear( 2229 TestAllExtensionsLiteOrBuilder message) { 2230 // hasBlah() should initially be false for all optional fields. 2231 Assert.assertFalse(message.hasExtension(optionalInt32ExtensionLite )); 2232 Assert.assertFalse(message.hasExtension(optionalInt64ExtensionLite )); 2233 Assert.assertFalse(message.hasExtension(optionalUint32ExtensionLite )); 2234 Assert.assertFalse(message.hasExtension(optionalUint64ExtensionLite )); 2235 Assert.assertFalse(message.hasExtension(optionalSint32ExtensionLite )); 2236 Assert.assertFalse(message.hasExtension(optionalSint64ExtensionLite )); 2237 Assert.assertFalse(message.hasExtension(optionalFixed32ExtensionLite )); 2238 Assert.assertFalse(message.hasExtension(optionalFixed64ExtensionLite )); 2239 Assert.assertFalse(message.hasExtension(optionalSfixed32ExtensionLite)); 2240 Assert.assertFalse(message.hasExtension(optionalSfixed64ExtensionLite)); 2241 Assert.assertFalse(message.hasExtension(optionalFloatExtensionLite )); 2242 Assert.assertFalse(message.hasExtension(optionalDoubleExtensionLite )); 2243 Assert.assertFalse(message.hasExtension(optionalBoolExtensionLite )); 2244 Assert.assertFalse(message.hasExtension(optionalStringExtensionLite )); 2245 Assert.assertFalse(message.hasExtension(optionalBytesExtensionLite )); 2246 2247 Assert.assertFalse(message.hasExtension(optionalGroupExtensionLite )); 2248 Assert.assertFalse(message.hasExtension(optionalNestedMessageExtensionLite )); 2249 Assert.assertFalse(message.hasExtension(optionalForeignMessageExtensionLite )); 2250 Assert.assertFalse(message.hasExtension(optionalImportMessageExtensionLite )); 2251 Assert.assertFalse(message.hasExtension(optionalPublicImportMessageExtensionLite)); 2252 Assert.assertFalse(message.hasExtension(optionalLazyMessageExtensionLite )); 2253 2254 Assert.assertFalse(message.hasExtension(optionalNestedEnumExtensionLite )); 2255 Assert.assertFalse(message.hasExtension(optionalForeignEnumExtensionLite)); 2256 Assert.assertFalse(message.hasExtension(optionalImportEnumExtensionLite )); 2257 2258 Assert.assertFalse(message.hasExtension(optionalStringPieceExtensionLite)); 2259 Assert.assertFalse(message.hasExtension(optionalCordExtensionLite)); 2260 2261 // Optional fields without defaults are set to zero or something like it. 2262 assertEqualsExactType(0 , message.getExtension(optionalInt32ExtensionLite )); 2263 assertEqualsExactType(0L , message.getExtension(optionalInt64ExtensionLite )); 2264 assertEqualsExactType(0 , message.getExtension(optionalUint32ExtensionLite )); 2265 assertEqualsExactType(0L , message.getExtension(optionalUint64ExtensionLite )); 2266 assertEqualsExactType(0 , message.getExtension(optionalSint32ExtensionLite )); 2267 assertEqualsExactType(0L , message.getExtension(optionalSint64ExtensionLite )); 2268 assertEqualsExactType(0 , message.getExtension(optionalFixed32ExtensionLite )); 2269 assertEqualsExactType(0L , message.getExtension(optionalFixed64ExtensionLite )); 2270 assertEqualsExactType(0 , message.getExtension(optionalSfixed32ExtensionLite)); 2271 assertEqualsExactType(0L , message.getExtension(optionalSfixed64ExtensionLite)); 2272 assertEqualsExactType(0F , message.getExtension(optionalFloatExtensionLite )); 2273 assertEqualsExactType(0D , message.getExtension(optionalDoubleExtensionLite )); 2274 assertEqualsExactType(false, message.getExtension(optionalBoolExtensionLite )); 2275 assertEqualsExactType("" , message.getExtension(optionalStringExtensionLite )); 2276 assertEqualsExactType(ByteString.EMPTY, message.getExtension(optionalBytesExtensionLite)); 2277 2278 // Embedded messages should also be clear. 2279 Assert.assertFalse(message.getExtension(optionalGroupExtensionLite ).hasA()); 2280 Assert.assertFalse(message.getExtension(optionalNestedMessageExtensionLite ).hasBb()); 2281 Assert.assertFalse(message.getExtension(optionalForeignMessageExtensionLite ).hasC()); 2282 Assert.assertFalse(message.getExtension(optionalImportMessageExtensionLite ).hasD()); 2283 Assert.assertFalse(message.getExtension(optionalPublicImportMessageExtensionLite).hasE()); 2284 Assert.assertFalse(message.getExtension(optionalLazyMessageExtensionLite ).hasBb()); 2285 2286 assertEqualsExactType(0, message.getExtension(optionalGroupExtensionLite ).getA()); 2287 assertEqualsExactType(0, message.getExtension(optionalNestedMessageExtensionLite ).getBb()); 2288 assertEqualsExactType(0, message.getExtension(optionalForeignMessageExtensionLite).getC()); 2289 assertEqualsExactType(0, message.getExtension(optionalImportMessageExtensionLite ).getD()); 2290 assertEqualsExactType(0, message.getExtension( 2291 optionalPublicImportMessageExtensionLite).getE()); 2292 assertEqualsExactType(0, message.getExtension(optionalLazyMessageExtensionLite ).getBb()); 2293 2294 // Enums without defaults are set to the first value in the enum. 2295 assertEqualsExactType(TestAllTypesLite.NestedEnum.FOO, 2296 message.getExtension(optionalNestedEnumExtensionLite )); 2297 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_FOO, 2298 message.getExtension(optionalForeignEnumExtensionLite)); 2299 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_FOO, 2300 message.getExtension(optionalImportEnumExtensionLite)); 2301 2302 assertEqualsExactType("", message.getExtension(optionalStringPieceExtensionLite)); 2303 assertEqualsExactType("", message.getExtension(optionalCordExtensionLite)); 2304 2305 // Repeated fields are empty. 2306 Assert.assertEquals(0, message.getExtensionCount(repeatedInt32ExtensionLite )); 2307 Assert.assertEquals(0, message.getExtensionCount(repeatedInt64ExtensionLite )); 2308 Assert.assertEquals(0, message.getExtensionCount(repeatedUint32ExtensionLite )); 2309 Assert.assertEquals(0, message.getExtensionCount(repeatedUint64ExtensionLite )); 2310 Assert.assertEquals(0, message.getExtensionCount(repeatedSint32ExtensionLite )); 2311 Assert.assertEquals(0, message.getExtensionCount(repeatedSint64ExtensionLite )); 2312 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed32ExtensionLite )); 2313 Assert.assertEquals(0, message.getExtensionCount(repeatedFixed64ExtensionLite )); 2314 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed32ExtensionLite)); 2315 Assert.assertEquals(0, message.getExtensionCount(repeatedSfixed64ExtensionLite)); 2316 Assert.assertEquals(0, message.getExtensionCount(repeatedFloatExtensionLite )); 2317 Assert.assertEquals(0, message.getExtensionCount(repeatedDoubleExtensionLite )); 2318 Assert.assertEquals(0, message.getExtensionCount(repeatedBoolExtensionLite )); 2319 Assert.assertEquals(0, message.getExtensionCount(repeatedStringExtensionLite )); 2320 Assert.assertEquals(0, message.getExtensionCount(repeatedBytesExtensionLite )); 2321 2322 Assert.assertEquals(0, message.getExtensionCount(repeatedGroupExtensionLite )); 2323 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedMessageExtensionLite )); 2324 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignMessageExtensionLite)); 2325 Assert.assertEquals(0, message.getExtensionCount(repeatedImportMessageExtensionLite )); 2326 Assert.assertEquals(0, message.getExtensionCount(repeatedLazyMessageExtensionLite )); 2327 Assert.assertEquals(0, message.getExtensionCount(repeatedNestedEnumExtensionLite )); 2328 Assert.assertEquals(0, message.getExtensionCount(repeatedForeignEnumExtensionLite )); 2329 Assert.assertEquals(0, message.getExtensionCount(repeatedImportEnumExtensionLite )); 2330 2331 Assert.assertEquals(0, message.getExtensionCount(repeatedStringPieceExtensionLite)); 2332 Assert.assertEquals(0, message.getExtensionCount(repeatedCordExtensionLite)); 2333 2334 // hasBlah() should also be false for all default fields. 2335 Assert.assertFalse(message.hasExtension(defaultInt32ExtensionLite )); 2336 Assert.assertFalse(message.hasExtension(defaultInt64ExtensionLite )); 2337 Assert.assertFalse(message.hasExtension(defaultUint32ExtensionLite )); 2338 Assert.assertFalse(message.hasExtension(defaultUint64ExtensionLite )); 2339 Assert.assertFalse(message.hasExtension(defaultSint32ExtensionLite )); 2340 Assert.assertFalse(message.hasExtension(defaultSint64ExtensionLite )); 2341 Assert.assertFalse(message.hasExtension(defaultFixed32ExtensionLite )); 2342 Assert.assertFalse(message.hasExtension(defaultFixed64ExtensionLite )); 2343 Assert.assertFalse(message.hasExtension(defaultSfixed32ExtensionLite)); 2344 Assert.assertFalse(message.hasExtension(defaultSfixed64ExtensionLite)); 2345 Assert.assertFalse(message.hasExtension(defaultFloatExtensionLite )); 2346 Assert.assertFalse(message.hasExtension(defaultDoubleExtensionLite )); 2347 Assert.assertFalse(message.hasExtension(defaultBoolExtensionLite )); 2348 Assert.assertFalse(message.hasExtension(defaultStringExtensionLite )); 2349 Assert.assertFalse(message.hasExtension(defaultBytesExtensionLite )); 2350 2351 Assert.assertFalse(message.hasExtension(defaultNestedEnumExtensionLite )); 2352 Assert.assertFalse(message.hasExtension(defaultForeignEnumExtensionLite)); 2353 Assert.assertFalse(message.hasExtension(defaultImportEnumExtensionLite )); 2354 2355 Assert.assertFalse(message.hasExtension(defaultStringPieceExtensionLite)); 2356 Assert.assertFalse(message.hasExtension(defaultCordExtensionLite)); 2357 2358 // Fields with defaults have their default values (duh). 2359 assertEqualsExactType( 41 , message.getExtension(defaultInt32ExtensionLite )); 2360 assertEqualsExactType( 42L , message.getExtension(defaultInt64ExtensionLite )); 2361 assertEqualsExactType( 43 , message.getExtension(defaultUint32ExtensionLite )); 2362 assertEqualsExactType( 44L , message.getExtension(defaultUint64ExtensionLite )); 2363 assertEqualsExactType(-45 , message.getExtension(defaultSint32ExtensionLite )); 2364 assertEqualsExactType( 46L , message.getExtension(defaultSint64ExtensionLite )); 2365 assertEqualsExactType( 47 , message.getExtension(defaultFixed32ExtensionLite )); 2366 assertEqualsExactType( 48L , message.getExtension(defaultFixed64ExtensionLite )); 2367 assertEqualsExactType( 49 , message.getExtension(defaultSfixed32ExtensionLite)); 2368 assertEqualsExactType(-50L , message.getExtension(defaultSfixed64ExtensionLite)); 2369 assertEqualsExactType( 51.5F , message.getExtension(defaultFloatExtensionLite )); 2370 assertEqualsExactType( 52e3D , message.getExtension(defaultDoubleExtensionLite )); 2371 assertEqualsExactType(true , message.getExtension(defaultBoolExtensionLite )); 2372 assertEqualsExactType("hello", message.getExtension(defaultStringExtensionLite )); 2373 assertEqualsExactType(toBytes("world"), message.getExtension(defaultBytesExtensionLite)); 2374 2375 assertEqualsExactType(TestAllTypesLite.NestedEnum.BAR, 2376 message.getExtension(defaultNestedEnumExtensionLite )); 2377 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAR, 2378 message.getExtension(defaultForeignEnumExtensionLite)); 2379 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_BAR, 2380 message.getExtension(defaultImportEnumExtensionLite)); 2381 2382 assertEqualsExactType("abc", message.getExtension(defaultStringPieceExtensionLite)); 2383 assertEqualsExactType("123", message.getExtension(defaultCordExtensionLite)); 2384 2385 Assert.assertFalse(message.hasExtension(oneofUint32ExtensionLite)); 2386 Assert.assertFalse(message.hasExtension(oneofNestedMessageExtensionLite)); 2387 Assert.assertFalse(message.hasExtension(oneofStringExtensionLite)); 2388 Assert.assertFalse(message.hasExtension(oneofBytesExtensionLite)); 2389 } 2390 2391 // ------------------------------------------------------------------- 2392 2393 /** 2394 * Assert (using {@code junit.framework.Assert}} that all extensions of 2395 * {@code message} are set to the values assigned by {@code setAllExtensions} 2396 * followed by {@code modifyRepeatedExtensions}. 2397 */ 2398 public static void assertRepeatedExtensionsModified( 2399 TestAllExtensionsLiteOrBuilder message) { 2400 // ModifyRepeatedFields only sets the second repeated element of each 2401 // field. In addition to verifying this, we also verify that the first 2402 // element and size were *not* modified. 2403 Assert.assertEquals(2, message.getExtensionCount(repeatedInt32ExtensionLite )); 2404 Assert.assertEquals(2, message.getExtensionCount(repeatedInt64ExtensionLite )); 2405 Assert.assertEquals(2, message.getExtensionCount(repeatedUint32ExtensionLite )); 2406 Assert.assertEquals(2, message.getExtensionCount(repeatedUint64ExtensionLite )); 2407 Assert.assertEquals(2, message.getExtensionCount(repeatedSint32ExtensionLite )); 2408 Assert.assertEquals(2, message.getExtensionCount(repeatedSint64ExtensionLite )); 2409 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed32ExtensionLite )); 2410 Assert.assertEquals(2, message.getExtensionCount(repeatedFixed64ExtensionLite )); 2411 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed32ExtensionLite)); 2412 Assert.assertEquals(2, message.getExtensionCount(repeatedSfixed64ExtensionLite)); 2413 Assert.assertEquals(2, message.getExtensionCount(repeatedFloatExtensionLite )); 2414 Assert.assertEquals(2, message.getExtensionCount(repeatedDoubleExtensionLite )); 2415 Assert.assertEquals(2, message.getExtensionCount(repeatedBoolExtensionLite )); 2416 Assert.assertEquals(2, message.getExtensionCount(repeatedStringExtensionLite )); 2417 Assert.assertEquals(2, message.getExtensionCount(repeatedBytesExtensionLite )); 2418 2419 Assert.assertEquals(2, message.getExtensionCount(repeatedGroupExtensionLite )); 2420 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedMessageExtensionLite )); 2421 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignMessageExtensionLite)); 2422 Assert.assertEquals(2, message.getExtensionCount(repeatedImportMessageExtensionLite )); 2423 Assert.assertEquals(2, message.getExtensionCount(repeatedLazyMessageExtensionLite )); 2424 Assert.assertEquals(2, message.getExtensionCount(repeatedNestedEnumExtensionLite )); 2425 Assert.assertEquals(2, message.getExtensionCount(repeatedForeignEnumExtensionLite )); 2426 Assert.assertEquals(2, message.getExtensionCount(repeatedImportEnumExtensionLite )); 2427 2428 Assert.assertEquals(2, message.getExtensionCount(repeatedStringPieceExtensionLite)); 2429 Assert.assertEquals(2, message.getExtensionCount(repeatedCordExtensionLite)); 2430 2431 assertEqualsExactType(201 , message.getExtension(repeatedInt32ExtensionLite , 0)); 2432 assertEqualsExactType(202L , message.getExtension(repeatedInt64ExtensionLite , 0)); 2433 assertEqualsExactType(203 , message.getExtension(repeatedUint32ExtensionLite , 0)); 2434 assertEqualsExactType(204L , message.getExtension(repeatedUint64ExtensionLite , 0)); 2435 assertEqualsExactType(205 , message.getExtension(repeatedSint32ExtensionLite , 0)); 2436 assertEqualsExactType(206L , message.getExtension(repeatedSint64ExtensionLite , 0)); 2437 assertEqualsExactType(207 , message.getExtension(repeatedFixed32ExtensionLite , 0)); 2438 assertEqualsExactType(208L , message.getExtension(repeatedFixed64ExtensionLite , 0)); 2439 assertEqualsExactType(209 , message.getExtension(repeatedSfixed32ExtensionLite, 0)); 2440 assertEqualsExactType(210L , message.getExtension(repeatedSfixed64ExtensionLite, 0)); 2441 assertEqualsExactType(211F , message.getExtension(repeatedFloatExtensionLite , 0)); 2442 assertEqualsExactType(212D , message.getExtension(repeatedDoubleExtensionLite , 0)); 2443 assertEqualsExactType(true , message.getExtension(repeatedBoolExtensionLite , 0)); 2444 assertEqualsExactType("215", message.getExtension(repeatedStringExtensionLite , 0)); 2445 assertEqualsExactType(toBytes("216"), message.getExtension(repeatedBytesExtensionLite, 0)); 2446 2447 assertEqualsExactType(217, message.getExtension(repeatedGroupExtensionLite ,0).getA()); 2448 assertEqualsExactType(218, message.getExtension(repeatedNestedMessageExtensionLite ,0).getBb()); 2449 assertEqualsExactType(219, message.getExtension(repeatedForeignMessageExtensionLite,0).getC()); 2450 assertEqualsExactType(220, message.getExtension(repeatedImportMessageExtensionLite ,0).getD()); 2451 assertEqualsExactType(227, message.getExtension(repeatedLazyMessageExtensionLite ,0).getBb()); 2452 2453 assertEqualsExactType(TestAllTypesLite.NestedEnum.BAR, 2454 message.getExtension(repeatedNestedEnumExtensionLite, 0)); 2455 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAR, 2456 message.getExtension(repeatedForeignEnumExtensionLite, 0)); 2457 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_BAR, 2458 message.getExtension(repeatedImportEnumExtensionLite, 0)); 2459 2460 assertEqualsExactType("224", message.getExtension(repeatedStringPieceExtensionLite, 0)); 2461 assertEqualsExactType("225", message.getExtension(repeatedCordExtensionLite, 0)); 2462 2463 // Actually verify the second (modified) elements now. 2464 assertEqualsExactType(501 , message.getExtension(repeatedInt32ExtensionLite , 1)); 2465 assertEqualsExactType(502L , message.getExtension(repeatedInt64ExtensionLite , 1)); 2466 assertEqualsExactType(503 , message.getExtension(repeatedUint32ExtensionLite , 1)); 2467 assertEqualsExactType(504L , message.getExtension(repeatedUint64ExtensionLite , 1)); 2468 assertEqualsExactType(505 , message.getExtension(repeatedSint32ExtensionLite , 1)); 2469 assertEqualsExactType(506L , message.getExtension(repeatedSint64ExtensionLite , 1)); 2470 assertEqualsExactType(507 , message.getExtension(repeatedFixed32ExtensionLite , 1)); 2471 assertEqualsExactType(508L , message.getExtension(repeatedFixed64ExtensionLite , 1)); 2472 assertEqualsExactType(509 , message.getExtension(repeatedSfixed32ExtensionLite, 1)); 2473 assertEqualsExactType(510L , message.getExtension(repeatedSfixed64ExtensionLite, 1)); 2474 assertEqualsExactType(511F , message.getExtension(repeatedFloatExtensionLite , 1)); 2475 assertEqualsExactType(512D , message.getExtension(repeatedDoubleExtensionLite , 1)); 2476 assertEqualsExactType(true , message.getExtension(repeatedBoolExtensionLite , 1)); 2477 assertEqualsExactType("515", message.getExtension(repeatedStringExtensionLite , 1)); 2478 assertEqualsExactType(toBytes("516"), message.getExtension(repeatedBytesExtensionLite, 1)); 2479 2480 assertEqualsExactType(517, message.getExtension(repeatedGroupExtensionLite ,1).getA()); 2481 assertEqualsExactType(518, message.getExtension(repeatedNestedMessageExtensionLite ,1).getBb()); 2482 assertEqualsExactType(519, message.getExtension(repeatedForeignMessageExtensionLite,1).getC()); 2483 assertEqualsExactType(520, message.getExtension(repeatedImportMessageExtensionLite ,1).getD()); 2484 assertEqualsExactType(527, message.getExtension(repeatedLazyMessageExtensionLite ,1).getBb()); 2485 2486 assertEqualsExactType(TestAllTypesLite.NestedEnum.FOO, 2487 message.getExtension(repeatedNestedEnumExtensionLite, 1)); 2488 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_FOO, 2489 message.getExtension(repeatedForeignEnumExtensionLite, 1)); 2490 assertEqualsExactType(ImportEnumLite.IMPORT_LITE_FOO, 2491 message.getExtension(repeatedImportEnumExtensionLite, 1)); 2492 2493 assertEqualsExactType("524", message.getExtension(repeatedStringPieceExtensionLite, 1)); 2494 assertEqualsExactType("525", message.getExtension(repeatedCordExtensionLite, 1)); 2495 } 2496 2497 public static void assertPackedExtensionsSet(TestPackedExtensionsLite message) { 2498 Assert.assertEquals(2, message.getExtensionCount(packedInt32ExtensionLite )); 2499 Assert.assertEquals(2, message.getExtensionCount(packedInt64ExtensionLite )); 2500 Assert.assertEquals(2, message.getExtensionCount(packedUint32ExtensionLite )); 2501 Assert.assertEquals(2, message.getExtensionCount(packedUint64ExtensionLite )); 2502 Assert.assertEquals(2, message.getExtensionCount(packedSint32ExtensionLite )); 2503 Assert.assertEquals(2, message.getExtensionCount(packedSint64ExtensionLite )); 2504 Assert.assertEquals(2, message.getExtensionCount(packedFixed32ExtensionLite )); 2505 Assert.assertEquals(2, message.getExtensionCount(packedFixed64ExtensionLite )); 2506 Assert.assertEquals(2, message.getExtensionCount(packedSfixed32ExtensionLite)); 2507 Assert.assertEquals(2, message.getExtensionCount(packedSfixed64ExtensionLite)); 2508 Assert.assertEquals(2, message.getExtensionCount(packedFloatExtensionLite )); 2509 Assert.assertEquals(2, message.getExtensionCount(packedDoubleExtensionLite )); 2510 Assert.assertEquals(2, message.getExtensionCount(packedBoolExtensionLite )); 2511 Assert.assertEquals(2, message.getExtensionCount(packedEnumExtensionLite)); 2512 assertEqualsExactType(601 , message.getExtension(packedInt32ExtensionLite , 0)); 2513 assertEqualsExactType(602L , message.getExtension(packedInt64ExtensionLite , 0)); 2514 assertEqualsExactType(603 , message.getExtension(packedUint32ExtensionLite , 0)); 2515 assertEqualsExactType(604L , message.getExtension(packedUint64ExtensionLite , 0)); 2516 assertEqualsExactType(605 , message.getExtension(packedSint32ExtensionLite , 0)); 2517 assertEqualsExactType(606L , message.getExtension(packedSint64ExtensionLite , 0)); 2518 assertEqualsExactType(607 , message.getExtension(packedFixed32ExtensionLite , 0)); 2519 assertEqualsExactType(608L , message.getExtension(packedFixed64ExtensionLite , 0)); 2520 assertEqualsExactType(609 , message.getExtension(packedSfixed32ExtensionLite, 0)); 2521 assertEqualsExactType(610L , message.getExtension(packedSfixed64ExtensionLite, 0)); 2522 assertEqualsExactType(611F , message.getExtension(packedFloatExtensionLite , 0)); 2523 assertEqualsExactType(612D , message.getExtension(packedDoubleExtensionLite , 0)); 2524 assertEqualsExactType(true , message.getExtension(packedBoolExtensionLite , 0)); 2525 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAR, 2526 message.getExtension(packedEnumExtensionLite, 0)); 2527 assertEqualsExactType(701 , message.getExtension(packedInt32ExtensionLite , 1)); 2528 assertEqualsExactType(702L , message.getExtension(packedInt64ExtensionLite , 1)); 2529 assertEqualsExactType(703 , message.getExtension(packedUint32ExtensionLite , 1)); 2530 assertEqualsExactType(704L , message.getExtension(packedUint64ExtensionLite , 1)); 2531 assertEqualsExactType(705 , message.getExtension(packedSint32ExtensionLite , 1)); 2532 assertEqualsExactType(706L , message.getExtension(packedSint64ExtensionLite , 1)); 2533 assertEqualsExactType(707 , message.getExtension(packedFixed32ExtensionLite , 1)); 2534 assertEqualsExactType(708L , message.getExtension(packedFixed64ExtensionLite , 1)); 2535 assertEqualsExactType(709 , message.getExtension(packedSfixed32ExtensionLite, 1)); 2536 assertEqualsExactType(710L , message.getExtension(packedSfixed64ExtensionLite, 1)); 2537 assertEqualsExactType(711F , message.getExtension(packedFloatExtensionLite , 1)); 2538 assertEqualsExactType(712D , message.getExtension(packedDoubleExtensionLite , 1)); 2539 assertEqualsExactType(false, message.getExtension(packedBoolExtensionLite , 1)); 2540 assertEqualsExactType(ForeignEnumLite.FOREIGN_LITE_BAZ, 2541 message.getExtension(packedEnumExtensionLite, 1)); 2542 } 2543 2544 // =================================================================== 2545 // oneof 2546 public static void setOneof(TestOneof2.Builder message) { 2547 message.setFooLazyMessage( 2548 TestOneof2.NestedMessage.newBuilder().setQuxInt(100).build()); 2549 message.setBarString("101"); 2550 message.setBazInt(102); 2551 message.setBazString("103"); 2552 } 2553 2554 public static void assertOneofSet(TestOneof2 message) { 2555 Assert.assertTrue(message.hasFooLazyMessage ()); 2556 Assert.assertTrue(message.getFooLazyMessage().hasQuxInt()); 2557 2558 Assert.assertTrue(message.hasBarString()); 2559 Assert.assertTrue(message.hasBazInt ()); 2560 Assert.assertTrue(message.hasBazString()); 2561 2562 Assert.assertEquals(100 , message.getFooLazyMessage().getQuxInt()); 2563 Assert.assertEquals("101", message.getBarString ()); 2564 Assert.assertEquals(102 , message.getBazInt ()); 2565 Assert.assertEquals("103", message.getBazString ()); 2566 } 2567 2568 public static void assertAtMostOneFieldSetOneof(TestOneof2 message) { 2569 int count = 0; 2570 if (message.hasFooInt()) { ++count; } 2571 if (message.hasFooString()) { ++count; } 2572 if (message.hasFooCord()) { ++count; } 2573 if (message.hasFooStringPiece()) { ++count; } 2574 if (message.hasFooBytes()) { ++count; } 2575 if (message.hasFooEnum()) { ++count; } 2576 if (message.hasFooMessage()) { ++count; } 2577 if (message.hasFooGroup()) { ++count; } 2578 if (message.hasFooLazyMessage()) { ++count; } 2579 Assert.assertTrue(count <= 1); 2580 2581 count = 0; 2582 if (message.hasBarInt()) { ++count; } 2583 if (message.hasBarString()) { ++count; } 2584 if (message.hasBarCord()) { ++count; } 2585 if (message.hasBarStringPiece()) { ++count; } 2586 if (message.hasBarBytes()) { ++count; } 2587 if (message.hasBarEnum()) { ++count; } 2588 Assert.assertTrue(count <= 1); 2589 2590 switch (message.getFooCase()) { 2591 case FOO_INT: 2592 Assert.assertTrue(message.hasFooInt()); 2593 break; 2594 case FOO_STRING: 2595 Assert.assertTrue(message.hasFooString()); 2596 break; 2597 case FOO_CORD: 2598 Assert.assertTrue(message.hasFooCord()); 2599 break; 2600 case FOO_BYTES: 2601 Assert.assertTrue(message.hasFooBytes()); 2602 break; 2603 case FOO_ENUM: 2604 Assert.assertTrue(message.hasFooEnum()); 2605 break; 2606 case FOO_MESSAGE: 2607 Assert.assertTrue(message.hasFooMessage()); 2608 break; 2609 case FOOGROUP: 2610 Assert.assertTrue(message.hasFooGroup()); 2611 break; 2612 case FOO_LAZY_MESSAGE: 2613 Assert.assertTrue(message.hasFooLazyMessage()); 2614 break; 2615 case FOO_NOT_SET: 2616 break; 2617 } 2618 } 2619 2620 // ================================================================= 2621 2622 /** 2623 * Performs the same things that the methods of {@code TestUtil} do, but 2624 * via the reflection interface. This is its own class because it needs 2625 * to know what descriptor to use. 2626 */ 2627 public static class ReflectionTester { 2628 private final Descriptors.Descriptor baseDescriptor; 2629 private final ExtensionRegistry extensionRegistry; 2630 2631 private final Descriptors.FileDescriptor file; 2632 private final Descriptors.FileDescriptor importFile; 2633 private final Descriptors.FileDescriptor publicImportFile; 2634 2635 private final Descriptors.Descriptor optionalGroup; 2636 private final Descriptors.Descriptor repeatedGroup; 2637 private final Descriptors.Descriptor nestedMessage; 2638 private final Descriptors.Descriptor foreignMessage; 2639 private final Descriptors.Descriptor importMessage; 2640 private final Descriptors.Descriptor publicImportMessage; 2641 2642 private final Descriptors.FieldDescriptor groupA; 2643 private final Descriptors.FieldDescriptor repeatedGroupA; 2644 private final Descriptors.FieldDescriptor nestedB; 2645 private final Descriptors.FieldDescriptor foreignC; 2646 private final Descriptors.FieldDescriptor importD; 2647 private final Descriptors.FieldDescriptor importE; 2648 2649 private final Descriptors.EnumDescriptor nestedEnum; 2650 private final Descriptors.EnumDescriptor foreignEnum; 2651 private final Descriptors.EnumDescriptor importEnum; 2652 2653 private final Descriptors.EnumValueDescriptor nestedFoo; 2654 private final Descriptors.EnumValueDescriptor nestedBar; 2655 private final Descriptors.EnumValueDescriptor nestedBaz; 2656 private final Descriptors.EnumValueDescriptor foreignFoo; 2657 private final Descriptors.EnumValueDescriptor foreignBar; 2658 private final Descriptors.EnumValueDescriptor foreignBaz; 2659 private final Descriptors.EnumValueDescriptor importFoo; 2660 private final Descriptors.EnumValueDescriptor importBar; 2661 private final Descriptors.EnumValueDescriptor importBaz; 2662 2663 /** 2664 * Construct a {@code ReflectionTester} that will expect messages using 2665 * the given descriptor. 2666 * 2667 * Normally {@code baseDescriptor} should be a descriptor for the type 2668 * {@code TestAllTypes}, defined in 2669 * {@code google/protobuf/unittest.proto}. However, if 2670 * {@code extensionRegistry} is non-null, then {@code baseDescriptor} should 2671 * be for {@code TestAllExtensions} instead, and instead of reading and 2672 * writing normal fields, the tester will read and write extensions. 2673 * All of {@code TestAllExtensions}' extensions must be registered in the 2674 * registry. 2675 */ 2676 public ReflectionTester(Descriptors.Descriptor baseDescriptor, 2677 ExtensionRegistry extensionRegistry) { 2678 this.baseDescriptor = baseDescriptor; 2679 this.extensionRegistry = extensionRegistry; 2680 2681 this.file = baseDescriptor.getFile(); 2682 Assert.assertEquals(1, file.getDependencies().size()); 2683 this.importFile = file.getDependencies().get(0); 2684 this.publicImportFile = importFile.getDependencies().get(0); 2685 2686 Descriptors.Descriptor testAllTypes; 2687 if (baseDescriptor.getName() == "TestAllTypes") { 2688 testAllTypes = baseDescriptor; 2689 } else { 2690 testAllTypes = file.findMessageTypeByName("TestAllTypes"); 2691 Assert.assertNotNull(testAllTypes); 2692 } 2693 2694 if (extensionRegistry == null) { 2695 // Use testAllTypes, rather than baseDescriptor, to allow 2696 // initialization using TestPackedTypes descriptors. These objects 2697 // won't be used by the methods for packed fields. 2698 this.optionalGroup = 2699 testAllTypes.findNestedTypeByName("OptionalGroup"); 2700 this.repeatedGroup = 2701 testAllTypes.findNestedTypeByName("RepeatedGroup"); 2702 } else { 2703 this.optionalGroup = 2704 file.findMessageTypeByName("OptionalGroup_extension"); 2705 this.repeatedGroup = 2706 file.findMessageTypeByName("RepeatedGroup_extension"); 2707 } 2708 this.nestedMessage = testAllTypes.findNestedTypeByName("NestedMessage"); 2709 this.foreignMessage = file.findMessageTypeByName("ForeignMessage"); 2710 this.importMessage = importFile.findMessageTypeByName("ImportMessage"); 2711 this.publicImportMessage = publicImportFile.findMessageTypeByName( 2712 "PublicImportMessage"); 2713 2714 this.nestedEnum = testAllTypes.findEnumTypeByName("NestedEnum"); 2715 this.foreignEnum = file.findEnumTypeByName("ForeignEnum"); 2716 this.importEnum = importFile.findEnumTypeByName("ImportEnum"); 2717 2718 Assert.assertNotNull(optionalGroup ); 2719 Assert.assertNotNull(repeatedGroup ); 2720 Assert.assertNotNull(nestedMessage ); 2721 Assert.assertNotNull(foreignMessage); 2722 Assert.assertNotNull(importMessage ); 2723 Assert.assertNotNull(nestedEnum ); 2724 Assert.assertNotNull(foreignEnum ); 2725 Assert.assertNotNull(importEnum ); 2726 2727 this.nestedB = nestedMessage .findFieldByName("bb"); 2728 this.foreignC = foreignMessage.findFieldByName("c"); 2729 this.importD = importMessage .findFieldByName("d"); 2730 this.importE = publicImportMessage.findFieldByName("e"); 2731 this.nestedFoo = nestedEnum.findValueByName("FOO"); 2732 this.nestedBar = nestedEnum.findValueByName("BAR"); 2733 this.nestedBaz = nestedEnum.findValueByName("BAZ"); 2734 this.foreignFoo = foreignEnum.findValueByName("FOREIGN_FOO"); 2735 this.foreignBar = foreignEnum.findValueByName("FOREIGN_BAR"); 2736 this.foreignBaz = foreignEnum.findValueByName("FOREIGN_BAZ"); 2737 this.importFoo = importEnum.findValueByName("IMPORT_FOO"); 2738 this.importBar = importEnum.findValueByName("IMPORT_BAR"); 2739 this.importBaz = importEnum.findValueByName("IMPORT_BAZ"); 2740 2741 this.groupA = optionalGroup.findFieldByName("a"); 2742 this.repeatedGroupA = repeatedGroup.findFieldByName("a"); 2743 2744 Assert.assertNotNull(groupA ); 2745 Assert.assertNotNull(repeatedGroupA); 2746 Assert.assertNotNull(nestedB ); 2747 Assert.assertNotNull(foreignC ); 2748 Assert.assertNotNull(importD ); 2749 Assert.assertNotNull(importE ); 2750 Assert.assertNotNull(nestedFoo ); 2751 Assert.assertNotNull(nestedBar ); 2752 Assert.assertNotNull(nestedBaz ); 2753 Assert.assertNotNull(foreignFoo ); 2754 Assert.assertNotNull(foreignBar ); 2755 Assert.assertNotNull(foreignBaz ); 2756 Assert.assertNotNull(importFoo ); 2757 Assert.assertNotNull(importBar ); 2758 Assert.assertNotNull(importBaz ); 2759 } 2760 2761 /** 2762 * Shorthand to get a FieldDescriptor for a field of unittest::TestAllTypes. 2763 */ 2764 private Descriptors.FieldDescriptor f(String name) { 2765 Descriptors.FieldDescriptor result; 2766 if (extensionRegistry == null) { 2767 result = baseDescriptor.findFieldByName(name); 2768 } else { 2769 result = file.findExtensionByName(name + "_extension"); 2770 } 2771 Assert.assertNotNull(result); 2772 return result; 2773 } 2774 2775 /** 2776 * Calls {@code parent.newBuilderForField()} or uses the 2777 * {@code ExtensionRegistry} to find an appropriate builder, depending 2778 * on what type is being tested. 2779 */ 2780 private Message.Builder newBuilderForField( 2781 Message.Builder parent, Descriptors.FieldDescriptor field) { 2782 if (extensionRegistry == null) { 2783 return parent.newBuilderForField(field); 2784 } else { 2785 ExtensionRegistry.ExtensionInfo extension = 2786 extensionRegistry.findImmutableExtensionByNumber( 2787 field.getContainingType(), field.getNumber()); 2788 Assert.assertNotNull(extension); 2789 Assert.assertNotNull(extension.defaultInstance); 2790 return extension.defaultInstance.newBuilderForType(); 2791 } 2792 } 2793 2794 // ------------------------------------------------------------------- 2795 2796 /** 2797 * Set every field of {@code message} to the values expected by 2798 * {@code assertAllFieldsSet()}, using the {@link Message.Builder} 2799 * reflection interface. 2800 */ 2801 void setAllFieldsViaReflection(Message.Builder message) { 2802 message.setField(f("optional_int32" ), 101 ); 2803 message.setField(f("optional_int64" ), 102L); 2804 message.setField(f("optional_uint32" ), 103 ); 2805 message.setField(f("optional_uint64" ), 104L); 2806 message.setField(f("optional_sint32" ), 105 ); 2807 message.setField(f("optional_sint64" ), 106L); 2808 message.setField(f("optional_fixed32" ), 107 ); 2809 message.setField(f("optional_fixed64" ), 108L); 2810 message.setField(f("optional_sfixed32"), 109 ); 2811 message.setField(f("optional_sfixed64"), 110L); 2812 message.setField(f("optional_float" ), 111F); 2813 message.setField(f("optional_double" ), 112D); 2814 message.setField(f("optional_bool" ), true); 2815 message.setField(f("optional_string" ), "115"); 2816 message.setField(f("optional_bytes" ), toBytes("116")); 2817 2818 message.setField(f("optionalgroup"), 2819 newBuilderForField(message, f("optionalgroup")) 2820 .setField(groupA, 117).build()); 2821 message.setField(f("optional_nested_message"), 2822 newBuilderForField(message, f("optional_nested_message")) 2823 .setField(nestedB, 118).build()); 2824 message.setField(f("optional_foreign_message"), 2825 newBuilderForField(message, f("optional_foreign_message")) 2826 .setField(foreignC, 119).build()); 2827 message.setField(f("optional_import_message"), 2828 newBuilderForField(message, f("optional_import_message")) 2829 .setField(importD, 120).build()); 2830 message.setField(f("optional_public_import_message"), 2831 newBuilderForField(message, f("optional_public_import_message")) 2832 .setField(importE, 126).build()); 2833 message.setField(f("optional_lazy_message"), 2834 newBuilderForField(message, f("optional_lazy_message")) 2835 .setField(nestedB, 127).build()); 2836 2837 message.setField(f("optional_nested_enum" ), nestedBaz); 2838 message.setField(f("optional_foreign_enum"), foreignBaz); 2839 message.setField(f("optional_import_enum" ), importBaz); 2840 2841 message.setField(f("optional_string_piece" ), "124"); 2842 message.setField(f("optional_cord" ), "125"); 2843 2844 // ----------------------------------------------------------------- 2845 2846 message.addRepeatedField(f("repeated_int32" ), 201 ); 2847 message.addRepeatedField(f("repeated_int64" ), 202L); 2848 message.addRepeatedField(f("repeated_uint32" ), 203 ); 2849 message.addRepeatedField(f("repeated_uint64" ), 204L); 2850 message.addRepeatedField(f("repeated_sint32" ), 205 ); 2851 message.addRepeatedField(f("repeated_sint64" ), 206L); 2852 message.addRepeatedField(f("repeated_fixed32" ), 207 ); 2853 message.addRepeatedField(f("repeated_fixed64" ), 208L); 2854 message.addRepeatedField(f("repeated_sfixed32"), 209 ); 2855 message.addRepeatedField(f("repeated_sfixed64"), 210L); 2856 message.addRepeatedField(f("repeated_float" ), 211F); 2857 message.addRepeatedField(f("repeated_double" ), 212D); 2858 message.addRepeatedField(f("repeated_bool" ), true); 2859 message.addRepeatedField(f("repeated_string" ), "215"); 2860 message.addRepeatedField(f("repeated_bytes" ), toBytes("216")); 2861 2862 message.addRepeatedField(f("repeatedgroup"), 2863 newBuilderForField(message, f("repeatedgroup")) 2864 .setField(repeatedGroupA, 217).build()); 2865 message.addRepeatedField(f("repeated_nested_message"), 2866 newBuilderForField(message, f("repeated_nested_message")) 2867 .setField(nestedB, 218).build()); 2868 message.addRepeatedField(f("repeated_foreign_message"), 2869 newBuilderForField(message, f("repeated_foreign_message")) 2870 .setField(foreignC, 219).build()); 2871 message.addRepeatedField(f("repeated_import_message"), 2872 newBuilderForField(message, f("repeated_import_message")) 2873 .setField(importD, 220).build()); 2874 message.addRepeatedField(f("repeated_lazy_message"), 2875 newBuilderForField(message, f("repeated_lazy_message")) 2876 .setField(nestedB, 227).build()); 2877 2878 message.addRepeatedField(f("repeated_nested_enum" ), nestedBar); 2879 message.addRepeatedField(f("repeated_foreign_enum"), foreignBar); 2880 message.addRepeatedField(f("repeated_import_enum" ), importBar); 2881 2882 message.addRepeatedField(f("repeated_string_piece" ), "224"); 2883 message.addRepeatedField(f("repeated_cord" ), "225"); 2884 2885 // Add a second one of each field. 2886 message.addRepeatedField(f("repeated_int32" ), 301 ); 2887 message.addRepeatedField(f("repeated_int64" ), 302L); 2888 message.addRepeatedField(f("repeated_uint32" ), 303 ); 2889 message.addRepeatedField(f("repeated_uint64" ), 304L); 2890 message.addRepeatedField(f("repeated_sint32" ), 305 ); 2891 message.addRepeatedField(f("repeated_sint64" ), 306L); 2892 message.addRepeatedField(f("repeated_fixed32" ), 307 ); 2893 message.addRepeatedField(f("repeated_fixed64" ), 308L); 2894 message.addRepeatedField(f("repeated_sfixed32"), 309 ); 2895 message.addRepeatedField(f("repeated_sfixed64"), 310L); 2896 message.addRepeatedField(f("repeated_float" ), 311F); 2897 message.addRepeatedField(f("repeated_double" ), 312D); 2898 message.addRepeatedField(f("repeated_bool" ), false); 2899 message.addRepeatedField(f("repeated_string" ), "315"); 2900 message.addRepeatedField(f("repeated_bytes" ), toBytes("316")); 2901 2902 message.addRepeatedField(f("repeatedgroup"), 2903 newBuilderForField(message, f("repeatedgroup")) 2904 .setField(repeatedGroupA, 317).build()); 2905 message.addRepeatedField(f("repeated_nested_message"), 2906 newBuilderForField(message, f("repeated_nested_message")) 2907 .setField(nestedB, 318).build()); 2908 message.addRepeatedField(f("repeated_foreign_message"), 2909 newBuilderForField(message, f("repeated_foreign_message")) 2910 .setField(foreignC, 319).build()); 2911 message.addRepeatedField(f("repeated_import_message"), 2912 newBuilderForField(message, f("repeated_import_message")) 2913 .setField(importD, 320).build()); 2914 message.addRepeatedField(f("repeated_lazy_message"), 2915 newBuilderForField(message, f("repeated_lazy_message")) 2916 .setField(nestedB, 327).build()); 2917 2918 message.addRepeatedField(f("repeated_nested_enum" ), nestedBaz); 2919 message.addRepeatedField(f("repeated_foreign_enum"), foreignBaz); 2920 message.addRepeatedField(f("repeated_import_enum" ), importBaz); 2921 2922 message.addRepeatedField(f("repeated_string_piece" ), "324"); 2923 message.addRepeatedField(f("repeated_cord" ), "325"); 2924 2925 // ----------------------------------------------------------------- 2926 2927 message.setField(f("default_int32" ), 401 ); 2928 message.setField(f("default_int64" ), 402L); 2929 message.setField(f("default_uint32" ), 403 ); 2930 message.setField(f("default_uint64" ), 404L); 2931 message.setField(f("default_sint32" ), 405 ); 2932 message.setField(f("default_sint64" ), 406L); 2933 message.setField(f("default_fixed32" ), 407 ); 2934 message.setField(f("default_fixed64" ), 408L); 2935 message.setField(f("default_sfixed32"), 409 ); 2936 message.setField(f("default_sfixed64"), 410L); 2937 message.setField(f("default_float" ), 411F); 2938 message.setField(f("default_double" ), 412D); 2939 message.setField(f("default_bool" ), false); 2940 message.setField(f("default_string" ), "415"); 2941 message.setField(f("default_bytes" ), toBytes("416")); 2942 2943 message.setField(f("default_nested_enum" ), nestedFoo); 2944 message.setField(f("default_foreign_enum"), foreignFoo); 2945 message.setField(f("default_import_enum" ), importFoo); 2946 2947 message.setField(f("default_string_piece" ), "424"); 2948 message.setField(f("default_cord" ), "425"); 2949 2950 message.setField(f("oneof_uint32" ), 601); 2951 message.setField(f("oneof_nested_message"), 2952 newBuilderForField(message, f("oneof_nested_message")) 2953 .setField(nestedB, 602).build()); 2954 message.setField(f("oneof_string" ), "603"); 2955 message.setField(f("oneof_bytes" ), toBytes("604")); 2956 } 2957 2958 // ------------------------------------------------------------------- 2959 2960 /** 2961 * Modify the repeated fields of {@code message} to contain the values 2962 * expected by {@code assertRepeatedFieldsModified()}, using the 2963 * {@link Message.Builder} reflection interface. 2964 */ 2965 void modifyRepeatedFieldsViaReflection(Message.Builder message) { 2966 message.setRepeatedField(f("repeated_int32" ), 1, 501 ); 2967 message.setRepeatedField(f("repeated_int64" ), 1, 502L); 2968 message.setRepeatedField(f("repeated_uint32" ), 1, 503 ); 2969 message.setRepeatedField(f("repeated_uint64" ), 1, 504L); 2970 message.setRepeatedField(f("repeated_sint32" ), 1, 505 ); 2971 message.setRepeatedField(f("repeated_sint64" ), 1, 506L); 2972 message.setRepeatedField(f("repeated_fixed32" ), 1, 507 ); 2973 message.setRepeatedField(f("repeated_fixed64" ), 1, 508L); 2974 message.setRepeatedField(f("repeated_sfixed32"), 1, 509 ); 2975 message.setRepeatedField(f("repeated_sfixed64"), 1, 510L); 2976 message.setRepeatedField(f("repeated_float" ), 1, 511F); 2977 message.setRepeatedField(f("repeated_double" ), 1, 512D); 2978 message.setRepeatedField(f("repeated_bool" ), 1, true); 2979 message.setRepeatedField(f("repeated_string" ), 1, "515"); 2980 message.setRepeatedField(f("repeated_bytes" ), 1, toBytes("516")); 2981 2982 message.setRepeatedField(f("repeatedgroup"), 1, 2983 newBuilderForField(message, f("repeatedgroup")) 2984 .setField(repeatedGroupA, 517).build()); 2985 message.setRepeatedField(f("repeated_nested_message"), 1, 2986 newBuilderForField(message, f("repeated_nested_message")) 2987 .setField(nestedB, 518).build()); 2988 message.setRepeatedField(f("repeated_foreign_message"), 1, 2989 newBuilderForField(message, f("repeated_foreign_message")) 2990 .setField(foreignC, 519).build()); 2991 message.setRepeatedField(f("repeated_import_message"), 1, 2992 newBuilderForField(message, f("repeated_import_message")) 2993 .setField(importD, 520).build()); 2994 message.setRepeatedField(f("repeated_lazy_message"), 1, 2995 newBuilderForField(message, f("repeated_lazy_message")) 2996 .setField(nestedB, 527).build()); 2997 2998 message.setRepeatedField(f("repeated_nested_enum" ), 1, nestedFoo); 2999 message.setRepeatedField(f("repeated_foreign_enum"), 1, foreignFoo); 3000 message.setRepeatedField(f("repeated_import_enum" ), 1, importFoo); 3001 3002 message.setRepeatedField(f("repeated_string_piece"), 1, "524"); 3003 message.setRepeatedField(f("repeated_cord"), 1, "525"); 3004 } 3005 3006 // ------------------------------------------------------------------- 3007 3008 /** 3009 * Assert (using {@code junit.framework.Assert}} that all fields of 3010 * {@code message} are set to the values assigned by {@code setAllFields}, 3011 * using the {@link Message} reflection interface. 3012 */ 3013 public void assertAllFieldsSetViaReflection(MessageOrBuilder message) { 3014 Assert.assertTrue(message.hasField(f("optional_int32" ))); 3015 Assert.assertTrue(message.hasField(f("optional_int64" ))); 3016 Assert.assertTrue(message.hasField(f("optional_uint32" ))); 3017 Assert.assertTrue(message.hasField(f("optional_uint64" ))); 3018 Assert.assertTrue(message.hasField(f("optional_sint32" ))); 3019 Assert.assertTrue(message.hasField(f("optional_sint64" ))); 3020 Assert.assertTrue(message.hasField(f("optional_fixed32" ))); 3021 Assert.assertTrue(message.hasField(f("optional_fixed64" ))); 3022 Assert.assertTrue(message.hasField(f("optional_sfixed32"))); 3023 Assert.assertTrue(message.hasField(f("optional_sfixed64"))); 3024 Assert.assertTrue(message.hasField(f("optional_float" ))); 3025 Assert.assertTrue(message.hasField(f("optional_double" ))); 3026 Assert.assertTrue(message.hasField(f("optional_bool" ))); 3027 Assert.assertTrue(message.hasField(f("optional_string" ))); 3028 Assert.assertTrue(message.hasField(f("optional_bytes" ))); 3029 3030 Assert.assertTrue(message.hasField(f("optionalgroup" ))); 3031 Assert.assertTrue(message.hasField(f("optional_nested_message" ))); 3032 Assert.assertTrue(message.hasField(f("optional_foreign_message"))); 3033 Assert.assertTrue(message.hasField(f("optional_import_message" ))); 3034 3035 Assert.assertTrue( 3036 ((Message)message.getField(f("optionalgroup"))).hasField(groupA)); 3037 Assert.assertTrue( 3038 ((Message)message.getField(f("optional_nested_message"))) 3039 .hasField(nestedB)); 3040 Assert.assertTrue( 3041 ((Message)message.getField(f("optional_foreign_message"))) 3042 .hasField(foreignC)); 3043 Assert.assertTrue( 3044 ((Message)message.getField(f("optional_import_message"))) 3045 .hasField(importD)); 3046 3047 Assert.assertTrue(message.hasField(f("optional_nested_enum" ))); 3048 Assert.assertTrue(message.hasField(f("optional_foreign_enum"))); 3049 Assert.assertTrue(message.hasField(f("optional_import_enum" ))); 3050 3051 Assert.assertTrue(message.hasField(f("optional_string_piece"))); 3052 Assert.assertTrue(message.hasField(f("optional_cord"))); 3053 3054 Assert.assertEquals(101 , message.getField(f("optional_int32" ))); 3055 Assert.assertEquals(102L , message.getField(f("optional_int64" ))); 3056 Assert.assertEquals(103 , message.getField(f("optional_uint32" ))); 3057 Assert.assertEquals(104L , message.getField(f("optional_uint64" ))); 3058 Assert.assertEquals(105 , message.getField(f("optional_sint32" ))); 3059 Assert.assertEquals(106L , message.getField(f("optional_sint64" ))); 3060 Assert.assertEquals(107 , message.getField(f("optional_fixed32" ))); 3061 Assert.assertEquals(108L , message.getField(f("optional_fixed64" ))); 3062 Assert.assertEquals(109 , message.getField(f("optional_sfixed32"))); 3063 Assert.assertEquals(110L , message.getField(f("optional_sfixed64"))); 3064 Assert.assertEquals(111F , message.getField(f("optional_float" ))); 3065 Assert.assertEquals(112D , message.getField(f("optional_double" ))); 3066 Assert.assertEquals(true , message.getField(f("optional_bool" ))); 3067 Assert.assertEquals("115", message.getField(f("optional_string" ))); 3068 Assert.assertEquals(toBytes("116"), message.getField(f("optional_bytes"))); 3069 3070 Assert.assertEquals(117, 3071 ((Message)message.getField(f("optionalgroup"))).getField(groupA)); 3072 Assert.assertEquals(118, 3073 ((Message)message.getField(f("optional_nested_message"))) 3074 .getField(nestedB)); 3075 Assert.assertEquals(119, 3076 ((Message)message.getField(f("optional_foreign_message"))) 3077 .getField(foreignC)); 3078 Assert.assertEquals(120, 3079 ((Message)message.getField(f("optional_import_message"))) 3080 .getField(importD)); 3081 Assert.assertEquals(126, 3082 ((Message)message.getField(f("optional_public_import_message"))) 3083 .getField(importE)); 3084 Assert.assertEquals(127, 3085 ((Message)message.getField(f("optional_lazy_message"))) 3086 .getField(nestedB)); 3087 3088 Assert.assertEquals( nestedBaz, message.getField(f("optional_nested_enum" ))); 3089 Assert.assertEquals(foreignBaz, message.getField(f("optional_foreign_enum"))); 3090 Assert.assertEquals( importBaz, message.getField(f("optional_import_enum" ))); 3091 3092 Assert.assertEquals("124", message.getField(f("optional_string_piece"))); 3093 Assert.assertEquals("125", message.getField(f("optional_cord"))); 3094 3095 // ----------------------------------------------------------------- 3096 3097 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int32" ))); 3098 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int64" ))); 3099 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint32" ))); 3100 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint64" ))); 3101 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint32" ))); 3102 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint64" ))); 3103 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed32" ))); 3104 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed64" ))); 3105 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed32"))); 3106 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed64"))); 3107 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_float" ))); 3108 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_double" ))); 3109 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bool" ))); 3110 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string" ))); 3111 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bytes" ))); 3112 3113 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeatedgroup" ))); 3114 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_message" ))); 3115 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_message"))); 3116 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_message" ))); 3117 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_lazy_message" ))); 3118 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_enum" ))); 3119 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_enum" ))); 3120 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_enum" ))); 3121 3122 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string_piece"))); 3123 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_cord"))); 3124 3125 Assert.assertEquals(201 , message.getRepeatedField(f("repeated_int32" ), 0)); 3126 Assert.assertEquals(202L , message.getRepeatedField(f("repeated_int64" ), 0)); 3127 Assert.assertEquals(203 , message.getRepeatedField(f("repeated_uint32" ), 0)); 3128 Assert.assertEquals(204L , message.getRepeatedField(f("repeated_uint64" ), 0)); 3129 Assert.assertEquals(205 , message.getRepeatedField(f("repeated_sint32" ), 0)); 3130 Assert.assertEquals(206L , message.getRepeatedField(f("repeated_sint64" ), 0)); 3131 Assert.assertEquals(207 , message.getRepeatedField(f("repeated_fixed32" ), 0)); 3132 Assert.assertEquals(208L , message.getRepeatedField(f("repeated_fixed64" ), 0)); 3133 Assert.assertEquals(209 , message.getRepeatedField(f("repeated_sfixed32"), 0)); 3134 Assert.assertEquals(210L , message.getRepeatedField(f("repeated_sfixed64"), 0)); 3135 Assert.assertEquals(211F , message.getRepeatedField(f("repeated_float" ), 0)); 3136 Assert.assertEquals(212D , message.getRepeatedField(f("repeated_double" ), 0)); 3137 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ), 0)); 3138 Assert.assertEquals("215", message.getRepeatedField(f("repeated_string" ), 0)); 3139 Assert.assertEquals(toBytes("216"), message.getRepeatedField(f("repeated_bytes"), 0)); 3140 3141 Assert.assertEquals(217, 3142 ((Message)message.getRepeatedField(f("repeatedgroup"), 0)) 3143 .getField(repeatedGroupA)); 3144 Assert.assertEquals(218, 3145 ((Message)message.getRepeatedField(f("repeated_nested_message"), 0)) 3146 .getField(nestedB)); 3147 Assert.assertEquals(219, 3148 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 0)) 3149 .getField(foreignC)); 3150 Assert.assertEquals(220, 3151 ((Message)message.getRepeatedField(f("repeated_import_message"), 0)) 3152 .getField(importD)); 3153 Assert.assertEquals(227, 3154 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 0)) 3155 .getField(nestedB)); 3156 3157 Assert.assertEquals( nestedBar, message.getRepeatedField(f("repeated_nested_enum" ),0)); 3158 Assert.assertEquals(foreignBar, message.getRepeatedField(f("repeated_foreign_enum"),0)); 3159 Assert.assertEquals( importBar, message.getRepeatedField(f("repeated_import_enum" ),0)); 3160 3161 Assert.assertEquals("224", message.getRepeatedField(f("repeated_string_piece"), 0)); 3162 Assert.assertEquals("225", message.getRepeatedField(f("repeated_cord"), 0)); 3163 3164 Assert.assertEquals(301 , message.getRepeatedField(f("repeated_int32" ), 1)); 3165 Assert.assertEquals(302L , message.getRepeatedField(f("repeated_int64" ), 1)); 3166 Assert.assertEquals(303 , message.getRepeatedField(f("repeated_uint32" ), 1)); 3167 Assert.assertEquals(304L , message.getRepeatedField(f("repeated_uint64" ), 1)); 3168 Assert.assertEquals(305 , message.getRepeatedField(f("repeated_sint32" ), 1)); 3169 Assert.assertEquals(306L , message.getRepeatedField(f("repeated_sint64" ), 1)); 3170 Assert.assertEquals(307 , message.getRepeatedField(f("repeated_fixed32" ), 1)); 3171 Assert.assertEquals(308L , message.getRepeatedField(f("repeated_fixed64" ), 1)); 3172 Assert.assertEquals(309 , message.getRepeatedField(f("repeated_sfixed32"), 1)); 3173 Assert.assertEquals(310L , message.getRepeatedField(f("repeated_sfixed64"), 1)); 3174 Assert.assertEquals(311F , message.getRepeatedField(f("repeated_float" ), 1)); 3175 Assert.assertEquals(312D , message.getRepeatedField(f("repeated_double" ), 1)); 3176 Assert.assertEquals(false, message.getRepeatedField(f("repeated_bool" ), 1)); 3177 Assert.assertEquals("315", message.getRepeatedField(f("repeated_string" ), 1)); 3178 Assert.assertEquals(toBytes("316"), message.getRepeatedField(f("repeated_bytes"), 1)); 3179 3180 Assert.assertEquals(317, 3181 ((Message)message.getRepeatedField(f("repeatedgroup"), 1)) 3182 .getField(repeatedGroupA)); 3183 Assert.assertEquals(318, 3184 ((Message)message.getRepeatedField(f("repeated_nested_message"), 1)) 3185 .getField(nestedB)); 3186 Assert.assertEquals(319, 3187 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 1)) 3188 .getField(foreignC)); 3189 Assert.assertEquals(320, 3190 ((Message)message.getRepeatedField(f("repeated_import_message"), 1)) 3191 .getField(importD)); 3192 Assert.assertEquals(327, 3193 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 1)) 3194 .getField(nestedB)); 3195 3196 Assert.assertEquals( nestedBaz, message.getRepeatedField(f("repeated_nested_enum" ),1)); 3197 Assert.assertEquals(foreignBaz, message.getRepeatedField(f("repeated_foreign_enum"),1)); 3198 Assert.assertEquals( importBaz, message.getRepeatedField(f("repeated_import_enum" ),1)); 3199 3200 Assert.assertEquals("324", message.getRepeatedField(f("repeated_string_piece"), 1)); 3201 Assert.assertEquals("325", message.getRepeatedField(f("repeated_cord"), 1)); 3202 3203 // ----------------------------------------------------------------- 3204 3205 Assert.assertTrue(message.hasField(f("default_int32" ))); 3206 Assert.assertTrue(message.hasField(f("default_int64" ))); 3207 Assert.assertTrue(message.hasField(f("default_uint32" ))); 3208 Assert.assertTrue(message.hasField(f("default_uint64" ))); 3209 Assert.assertTrue(message.hasField(f("default_sint32" ))); 3210 Assert.assertTrue(message.hasField(f("default_sint64" ))); 3211 Assert.assertTrue(message.hasField(f("default_fixed32" ))); 3212 Assert.assertTrue(message.hasField(f("default_fixed64" ))); 3213 Assert.assertTrue(message.hasField(f("default_sfixed32"))); 3214 Assert.assertTrue(message.hasField(f("default_sfixed64"))); 3215 Assert.assertTrue(message.hasField(f("default_float" ))); 3216 Assert.assertTrue(message.hasField(f("default_double" ))); 3217 Assert.assertTrue(message.hasField(f("default_bool" ))); 3218 Assert.assertTrue(message.hasField(f("default_string" ))); 3219 Assert.assertTrue(message.hasField(f("default_bytes" ))); 3220 3221 Assert.assertTrue(message.hasField(f("default_nested_enum" ))); 3222 Assert.assertTrue(message.hasField(f("default_foreign_enum"))); 3223 Assert.assertTrue(message.hasField(f("default_import_enum" ))); 3224 3225 Assert.assertTrue(message.hasField(f("default_string_piece"))); 3226 Assert.assertTrue(message.hasField(f("default_cord"))); 3227 3228 Assert.assertEquals(401 , message.getField(f("default_int32" ))); 3229 Assert.assertEquals(402L , message.getField(f("default_int64" ))); 3230 Assert.assertEquals(403 , message.getField(f("default_uint32" ))); 3231 Assert.assertEquals(404L , message.getField(f("default_uint64" ))); 3232 Assert.assertEquals(405 , message.getField(f("default_sint32" ))); 3233 Assert.assertEquals(406L , message.getField(f("default_sint64" ))); 3234 Assert.assertEquals(407 , message.getField(f("default_fixed32" ))); 3235 Assert.assertEquals(408L , message.getField(f("default_fixed64" ))); 3236 Assert.assertEquals(409 , message.getField(f("default_sfixed32"))); 3237 Assert.assertEquals(410L , message.getField(f("default_sfixed64"))); 3238 Assert.assertEquals(411F , message.getField(f("default_float" ))); 3239 Assert.assertEquals(412D , message.getField(f("default_double" ))); 3240 Assert.assertEquals(false, message.getField(f("default_bool" ))); 3241 Assert.assertEquals("415", message.getField(f("default_string" ))); 3242 Assert.assertEquals(toBytes("416"), message.getField(f("default_bytes"))); 3243 3244 Assert.assertEquals( nestedFoo, message.getField(f("default_nested_enum" ))); 3245 Assert.assertEquals(foreignFoo, message.getField(f("default_foreign_enum"))); 3246 Assert.assertEquals( importFoo, message.getField(f("default_import_enum" ))); 3247 3248 Assert.assertEquals("424", message.getField(f("default_string_piece"))); 3249 Assert.assertEquals("425", message.getField(f("default_cord"))); 3250 3251 Assert.assertTrue(message.hasField(f("oneof_bytes"))); 3252 Assert.assertEquals(toBytes("604"), message.getField(f("oneof_bytes"))); 3253 3254 if (extensionRegistry == null) { 3255 Assert.assertFalse(message.hasField(f("oneof_uint32"))); 3256 Assert.assertFalse(message.hasField(f("oneof_nested_message"))); 3257 Assert.assertFalse(message.hasField(f("oneof_string"))); 3258 } else { 3259 Assert.assertTrue(message.hasField(f("oneof_uint32"))); 3260 Assert.assertTrue(message.hasField(f("oneof_nested_message"))); 3261 Assert.assertTrue(message.hasField(f("oneof_string"))); 3262 Assert.assertEquals(601, message.getField(f("oneof_uint32"))); 3263 Assert.assertEquals(602, 3264 ((MessageOrBuilder) message.getField(f("oneof_nested_message"))) 3265 .getField(nestedB)); 3266 Assert.assertEquals("603", message.getField(f("oneof_string"))); 3267 } 3268 } 3269 3270 // ------------------------------------------------------------------- 3271 3272 /** 3273 * Assert (using {@code junit.framework.Assert}} that all fields of 3274 * {@code message} are cleared, and that getting the fields returns their 3275 * default values, using the {@link Message} reflection interface. 3276 */ 3277 public void assertClearViaReflection(MessageOrBuilder message) { 3278 // has_blah() should initially be false for all optional fields. 3279 Assert.assertFalse(message.hasField(f("optional_int32" ))); 3280 Assert.assertFalse(message.hasField(f("optional_int64" ))); 3281 Assert.assertFalse(message.hasField(f("optional_uint32" ))); 3282 Assert.assertFalse(message.hasField(f("optional_uint64" ))); 3283 Assert.assertFalse(message.hasField(f("optional_sint32" ))); 3284 Assert.assertFalse(message.hasField(f("optional_sint64" ))); 3285 Assert.assertFalse(message.hasField(f("optional_fixed32" ))); 3286 Assert.assertFalse(message.hasField(f("optional_fixed64" ))); 3287 Assert.assertFalse(message.hasField(f("optional_sfixed32"))); 3288 Assert.assertFalse(message.hasField(f("optional_sfixed64"))); 3289 Assert.assertFalse(message.hasField(f("optional_float" ))); 3290 Assert.assertFalse(message.hasField(f("optional_double" ))); 3291 Assert.assertFalse(message.hasField(f("optional_bool" ))); 3292 Assert.assertFalse(message.hasField(f("optional_string" ))); 3293 Assert.assertFalse(message.hasField(f("optional_bytes" ))); 3294 3295 Assert.assertFalse(message.hasField(f("optionalgroup" ))); 3296 Assert.assertFalse(message.hasField(f("optional_nested_message" ))); 3297 Assert.assertFalse(message.hasField(f("optional_foreign_message"))); 3298 Assert.assertFalse(message.hasField(f("optional_import_message" ))); 3299 3300 Assert.assertFalse(message.hasField(f("optional_nested_enum" ))); 3301 Assert.assertFalse(message.hasField(f("optional_foreign_enum"))); 3302 Assert.assertFalse(message.hasField(f("optional_import_enum" ))); 3303 3304 Assert.assertFalse(message.hasField(f("optional_string_piece"))); 3305 Assert.assertFalse(message.hasField(f("optional_cord"))); 3306 3307 // Optional fields without defaults are set to zero or something like it. 3308 Assert.assertEquals(0 , message.getField(f("optional_int32" ))); 3309 Assert.assertEquals(0L , message.getField(f("optional_int64" ))); 3310 Assert.assertEquals(0 , message.getField(f("optional_uint32" ))); 3311 Assert.assertEquals(0L , message.getField(f("optional_uint64" ))); 3312 Assert.assertEquals(0 , message.getField(f("optional_sint32" ))); 3313 Assert.assertEquals(0L , message.getField(f("optional_sint64" ))); 3314 Assert.assertEquals(0 , message.getField(f("optional_fixed32" ))); 3315 Assert.assertEquals(0L , message.getField(f("optional_fixed64" ))); 3316 Assert.assertEquals(0 , message.getField(f("optional_sfixed32"))); 3317 Assert.assertEquals(0L , message.getField(f("optional_sfixed64"))); 3318 Assert.assertEquals(0F , message.getField(f("optional_float" ))); 3319 Assert.assertEquals(0D , message.getField(f("optional_double" ))); 3320 Assert.assertEquals(false, message.getField(f("optional_bool" ))); 3321 Assert.assertEquals("" , message.getField(f("optional_string" ))); 3322 Assert.assertEquals(ByteString.EMPTY, message.getField(f("optional_bytes"))); 3323 3324 // Embedded messages should also be clear. 3325 Assert.assertFalse( 3326 ((Message)message.getField(f("optionalgroup"))).hasField(groupA)); 3327 Assert.assertFalse( 3328 ((Message)message.getField(f("optional_nested_message"))) 3329 .hasField(nestedB)); 3330 Assert.assertFalse( 3331 ((Message)message.getField(f("optional_foreign_message"))) 3332 .hasField(foreignC)); 3333 Assert.assertFalse( 3334 ((Message)message.getField(f("optional_import_message"))) 3335 .hasField(importD)); 3336 Assert.assertFalse( 3337 ((Message)message.getField(f("optional_public_import_message"))) 3338 .hasField(importE)); 3339 Assert.assertFalse( 3340 ((Message)message.getField(f("optional_lazy_message"))) 3341 .hasField(nestedB)); 3342 3343 Assert.assertEquals(0, 3344 ((Message)message.getField(f("optionalgroup"))).getField(groupA)); 3345 Assert.assertEquals(0, 3346 ((Message)message.getField(f("optional_nested_message"))) 3347 .getField(nestedB)); 3348 Assert.assertEquals(0, 3349 ((Message)message.getField(f("optional_foreign_message"))) 3350 .getField(foreignC)); 3351 Assert.assertEquals(0, 3352 ((Message)message.getField(f("optional_import_message"))) 3353 .getField(importD)); 3354 Assert.assertEquals(0, 3355 ((Message)message.getField(f("optional_public_import_message"))) 3356 .getField(importE)); 3357 Assert.assertEquals(0, 3358 ((Message)message.getField(f("optional_lazy_message"))) 3359 .getField(nestedB)); 3360 3361 // Enums without defaults are set to the first value in the enum. 3362 Assert.assertEquals( nestedFoo, message.getField(f("optional_nested_enum" ))); 3363 Assert.assertEquals(foreignFoo, message.getField(f("optional_foreign_enum"))); 3364 Assert.assertEquals( importFoo, message.getField(f("optional_import_enum" ))); 3365 3366 Assert.assertEquals("", message.getField(f("optional_string_piece"))); 3367 Assert.assertEquals("", message.getField(f("optional_cord"))); 3368 3369 // Repeated fields are empty. 3370 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_int32" ))); 3371 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_int64" ))); 3372 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_uint32" ))); 3373 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_uint64" ))); 3374 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sint32" ))); 3375 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sint64" ))); 3376 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_fixed32" ))); 3377 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_fixed64" ))); 3378 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sfixed32"))); 3379 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_sfixed64"))); 3380 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_float" ))); 3381 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_double" ))); 3382 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_bool" ))); 3383 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_string" ))); 3384 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_bytes" ))); 3385 3386 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeatedgroup" ))); 3387 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_nested_message" ))); 3388 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_foreign_message"))); 3389 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_import_message" ))); 3390 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_lazy_message" ))); 3391 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_nested_enum" ))); 3392 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_foreign_enum" ))); 3393 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_import_enum" ))); 3394 3395 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_string_piece"))); 3396 Assert.assertEquals(0, message.getRepeatedFieldCount(f("repeated_cord"))); 3397 3398 // has_blah() should also be false for all default fields. 3399 Assert.assertFalse(message.hasField(f("default_int32" ))); 3400 Assert.assertFalse(message.hasField(f("default_int64" ))); 3401 Assert.assertFalse(message.hasField(f("default_uint32" ))); 3402 Assert.assertFalse(message.hasField(f("default_uint64" ))); 3403 Assert.assertFalse(message.hasField(f("default_sint32" ))); 3404 Assert.assertFalse(message.hasField(f("default_sint64" ))); 3405 Assert.assertFalse(message.hasField(f("default_fixed32" ))); 3406 Assert.assertFalse(message.hasField(f("default_fixed64" ))); 3407 Assert.assertFalse(message.hasField(f("default_sfixed32"))); 3408 Assert.assertFalse(message.hasField(f("default_sfixed64"))); 3409 Assert.assertFalse(message.hasField(f("default_float" ))); 3410 Assert.assertFalse(message.hasField(f("default_double" ))); 3411 Assert.assertFalse(message.hasField(f("default_bool" ))); 3412 Assert.assertFalse(message.hasField(f("default_string" ))); 3413 Assert.assertFalse(message.hasField(f("default_bytes" ))); 3414 3415 Assert.assertFalse(message.hasField(f("default_nested_enum" ))); 3416 Assert.assertFalse(message.hasField(f("default_foreign_enum"))); 3417 Assert.assertFalse(message.hasField(f("default_import_enum" ))); 3418 3419 Assert.assertFalse(message.hasField(f("default_string_piece" ))); 3420 Assert.assertFalse(message.hasField(f("default_cord" ))); 3421 3422 // Fields with defaults have their default values (duh). 3423 Assert.assertEquals( 41 , message.getField(f("default_int32" ))); 3424 Assert.assertEquals( 42L , message.getField(f("default_int64" ))); 3425 Assert.assertEquals( 43 , message.getField(f("default_uint32" ))); 3426 Assert.assertEquals( 44L , message.getField(f("default_uint64" ))); 3427 Assert.assertEquals(-45 , message.getField(f("default_sint32" ))); 3428 Assert.assertEquals( 46L , message.getField(f("default_sint64" ))); 3429 Assert.assertEquals( 47 , message.getField(f("default_fixed32" ))); 3430 Assert.assertEquals( 48L , message.getField(f("default_fixed64" ))); 3431 Assert.assertEquals( 49 , message.getField(f("default_sfixed32"))); 3432 Assert.assertEquals(-50L , message.getField(f("default_sfixed64"))); 3433 Assert.assertEquals( 51.5F , message.getField(f("default_float" ))); 3434 Assert.assertEquals( 52e3D , message.getField(f("default_double" ))); 3435 Assert.assertEquals(true , message.getField(f("default_bool" ))); 3436 Assert.assertEquals("hello", message.getField(f("default_string" ))); 3437 Assert.assertEquals(toBytes("world"), message.getField(f("default_bytes"))); 3438 3439 Assert.assertEquals( nestedBar, message.getField(f("default_nested_enum" ))); 3440 Assert.assertEquals(foreignBar, message.getField(f("default_foreign_enum"))); 3441 Assert.assertEquals( importBar, message.getField(f("default_import_enum" ))); 3442 3443 Assert.assertEquals("abc", message.getField(f("default_string_piece"))); 3444 Assert.assertEquals("123", message.getField(f("default_cord"))); 3445 3446 Assert.assertFalse(message.hasField(f("oneof_uint32"))); 3447 Assert.assertFalse(message.hasField(f("oneof_nested_message"))); 3448 Assert.assertFalse(message.hasField(f("oneof_string"))); 3449 Assert.assertFalse(message.hasField(f("oneof_bytes"))); 3450 3451 Assert.assertEquals(0, message.getField(f("oneof_uint32"))); 3452 Assert.assertEquals("", message.getField(f("oneof_string"))); 3453 Assert.assertEquals(toBytes(""), message.getField(f("oneof_bytes"))); 3454 } 3455 3456 3457 // --------------------------------------------------------------- 3458 3459 public void assertRepeatedFieldsModifiedViaReflection( 3460 MessageOrBuilder message) { 3461 // ModifyRepeatedFields only sets the second repeated element of each 3462 // field. In addition to verifying this, we also verify that the first 3463 // element and size were *not* modified. 3464 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int32" ))); 3465 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_int64" ))); 3466 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint32" ))); 3467 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_uint64" ))); 3468 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint32" ))); 3469 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sint64" ))); 3470 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed32" ))); 3471 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_fixed64" ))); 3472 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed32"))); 3473 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_sfixed64"))); 3474 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_float" ))); 3475 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_double" ))); 3476 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bool" ))); 3477 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string" ))); 3478 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_bytes" ))); 3479 3480 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeatedgroup" ))); 3481 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_message" ))); 3482 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_message"))); 3483 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_message" ))); 3484 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_lazy_message" ))); 3485 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_nested_enum" ))); 3486 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_foreign_enum" ))); 3487 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_import_enum" ))); 3488 3489 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_string_piece"))); 3490 Assert.assertEquals(2, message.getRepeatedFieldCount(f("repeated_cord"))); 3491 3492 Assert.assertEquals(201 , message.getRepeatedField(f("repeated_int32" ), 0)); 3493 Assert.assertEquals(202L , message.getRepeatedField(f("repeated_int64" ), 0)); 3494 Assert.assertEquals(203 , message.getRepeatedField(f("repeated_uint32" ), 0)); 3495 Assert.assertEquals(204L , message.getRepeatedField(f("repeated_uint64" ), 0)); 3496 Assert.assertEquals(205 , message.getRepeatedField(f("repeated_sint32" ), 0)); 3497 Assert.assertEquals(206L , message.getRepeatedField(f("repeated_sint64" ), 0)); 3498 Assert.assertEquals(207 , message.getRepeatedField(f("repeated_fixed32" ), 0)); 3499 Assert.assertEquals(208L , message.getRepeatedField(f("repeated_fixed64" ), 0)); 3500 Assert.assertEquals(209 , message.getRepeatedField(f("repeated_sfixed32"), 0)); 3501 Assert.assertEquals(210L , message.getRepeatedField(f("repeated_sfixed64"), 0)); 3502 Assert.assertEquals(211F , message.getRepeatedField(f("repeated_float" ), 0)); 3503 Assert.assertEquals(212D , message.getRepeatedField(f("repeated_double" ), 0)); 3504 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ), 0)); 3505 Assert.assertEquals("215", message.getRepeatedField(f("repeated_string" ), 0)); 3506 Assert.assertEquals(toBytes("216"), message.getRepeatedField(f("repeated_bytes"), 0)); 3507 3508 Assert.assertEquals(217, 3509 ((Message)message.getRepeatedField(f("repeatedgroup"), 0)) 3510 .getField(repeatedGroupA)); 3511 Assert.assertEquals(218, 3512 ((Message)message.getRepeatedField(f("repeated_nested_message"), 0)) 3513 .getField(nestedB)); 3514 Assert.assertEquals(219, 3515 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 0)) 3516 .getField(foreignC)); 3517 Assert.assertEquals(220, 3518 ((Message)message.getRepeatedField(f("repeated_import_message"), 0)) 3519 .getField(importD)); 3520 Assert.assertEquals(227, 3521 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 0)) 3522 .getField(nestedB)); 3523 3524 Assert.assertEquals( nestedBar, message.getRepeatedField(f("repeated_nested_enum" ),0)); 3525 Assert.assertEquals(foreignBar, message.getRepeatedField(f("repeated_foreign_enum"),0)); 3526 Assert.assertEquals( importBar, message.getRepeatedField(f("repeated_import_enum" ),0)); 3527 3528 Assert.assertEquals("224", message.getRepeatedField(f("repeated_string_piece"), 0)); 3529 Assert.assertEquals("225", message.getRepeatedField(f("repeated_cord"), 0)); 3530 3531 Assert.assertEquals(501 , message.getRepeatedField(f("repeated_int32" ), 1)); 3532 Assert.assertEquals(502L , message.getRepeatedField(f("repeated_int64" ), 1)); 3533 Assert.assertEquals(503 , message.getRepeatedField(f("repeated_uint32" ), 1)); 3534 Assert.assertEquals(504L , message.getRepeatedField(f("repeated_uint64" ), 1)); 3535 Assert.assertEquals(505 , message.getRepeatedField(f("repeated_sint32" ), 1)); 3536 Assert.assertEquals(506L , message.getRepeatedField(f("repeated_sint64" ), 1)); 3537 Assert.assertEquals(507 , message.getRepeatedField(f("repeated_fixed32" ), 1)); 3538 Assert.assertEquals(508L , message.getRepeatedField(f("repeated_fixed64" ), 1)); 3539 Assert.assertEquals(509 , message.getRepeatedField(f("repeated_sfixed32"), 1)); 3540 Assert.assertEquals(510L , message.getRepeatedField(f("repeated_sfixed64"), 1)); 3541 Assert.assertEquals(511F , message.getRepeatedField(f("repeated_float" ), 1)); 3542 Assert.assertEquals(512D , message.getRepeatedField(f("repeated_double" ), 1)); 3543 Assert.assertEquals(true , message.getRepeatedField(f("repeated_bool" ), 1)); 3544 Assert.assertEquals("515", message.getRepeatedField(f("repeated_string" ), 1)); 3545 Assert.assertEquals(toBytes("516"), message.getRepeatedField(f("repeated_bytes"), 1)); 3546 3547 Assert.assertEquals(517, 3548 ((Message)message.getRepeatedField(f("repeatedgroup"), 1)) 3549 .getField(repeatedGroupA)); 3550 Assert.assertEquals(518, 3551 ((Message)message.getRepeatedField(f("repeated_nested_message"), 1)) 3552 .getField(nestedB)); 3553 Assert.assertEquals(519, 3554 ((Message)message.getRepeatedField(f("repeated_foreign_message"), 1)) 3555 .getField(foreignC)); 3556 Assert.assertEquals(520, 3557 ((Message)message.getRepeatedField(f("repeated_import_message"), 1)) 3558 .getField(importD)); 3559 Assert.assertEquals(527, 3560 ((Message)message.getRepeatedField(f("repeated_lazy_message"), 1)) 3561 .getField(nestedB)); 3562 3563 Assert.assertEquals( nestedFoo, message.getRepeatedField(f("repeated_nested_enum" ),1)); 3564 Assert.assertEquals(foreignFoo, message.getRepeatedField(f("repeated_foreign_enum"),1)); 3565 Assert.assertEquals( importFoo, message.getRepeatedField(f("repeated_import_enum" ),1)); 3566 3567 Assert.assertEquals("524", message.getRepeatedField(f("repeated_string_piece"), 1)); 3568 Assert.assertEquals("525", message.getRepeatedField(f("repeated_cord"), 1)); 3569 } 3570 3571 public void setPackedFieldsViaReflection(Message.Builder message) { 3572 message.addRepeatedField(f("packed_int32" ), 601 ); 3573 message.addRepeatedField(f("packed_int64" ), 602L); 3574 message.addRepeatedField(f("packed_uint32" ), 603 ); 3575 message.addRepeatedField(f("packed_uint64" ), 604L); 3576 message.addRepeatedField(f("packed_sint32" ), 605 ); 3577 message.addRepeatedField(f("packed_sint64" ), 606L); 3578 message.addRepeatedField(f("packed_fixed32" ), 607 ); 3579 message.addRepeatedField(f("packed_fixed64" ), 608L); 3580 message.addRepeatedField(f("packed_sfixed32"), 609 ); 3581 message.addRepeatedField(f("packed_sfixed64"), 610L); 3582 message.addRepeatedField(f("packed_float" ), 611F); 3583 message.addRepeatedField(f("packed_double" ), 612D); 3584 message.addRepeatedField(f("packed_bool" ), true); 3585 message.addRepeatedField(f("packed_enum" ), foreignBar); 3586 // Add a second one of each field. 3587 message.addRepeatedField(f("packed_int32" ), 701 ); 3588 message.addRepeatedField(f("packed_int64" ), 702L); 3589 message.addRepeatedField(f("packed_uint32" ), 703 ); 3590 message.addRepeatedField(f("packed_uint64" ), 704L); 3591 message.addRepeatedField(f("packed_sint32" ), 705 ); 3592 message.addRepeatedField(f("packed_sint64" ), 706L); 3593 message.addRepeatedField(f("packed_fixed32" ), 707 ); 3594 message.addRepeatedField(f("packed_fixed64" ), 708L); 3595 message.addRepeatedField(f("packed_sfixed32"), 709 ); 3596 message.addRepeatedField(f("packed_sfixed64"), 710L); 3597 message.addRepeatedField(f("packed_float" ), 711F); 3598 message.addRepeatedField(f("packed_double" ), 712D); 3599 message.addRepeatedField(f("packed_bool" ), false); 3600 message.addRepeatedField(f("packed_enum" ), foreignBaz); 3601 } 3602 3603 public void assertPackedFieldsSetViaReflection(MessageOrBuilder message) { 3604 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_int32" ))); 3605 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_int64" ))); 3606 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_uint32" ))); 3607 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_uint64" ))); 3608 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sint32" ))); 3609 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sint64" ))); 3610 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_fixed32" ))); 3611 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_fixed64" ))); 3612 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sfixed32"))); 3613 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_sfixed64"))); 3614 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_float" ))); 3615 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_double" ))); 3616 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_bool" ))); 3617 Assert.assertEquals(2, message.getRepeatedFieldCount(f("packed_enum" ))); 3618 Assert.assertEquals(601 , message.getRepeatedField(f("packed_int32" ), 0)); 3619 Assert.assertEquals(602L , message.getRepeatedField(f("packed_int64" ), 0)); 3620 Assert.assertEquals(603 , message.getRepeatedField(f("packed_uint32" ), 0)); 3621 Assert.assertEquals(604L , message.getRepeatedField(f("packed_uint64" ), 0)); 3622 Assert.assertEquals(605 , message.getRepeatedField(f("packed_sint32" ), 0)); 3623 Assert.assertEquals(606L , message.getRepeatedField(f("packed_sint64" ), 0)); 3624 Assert.assertEquals(607 , message.getRepeatedField(f("packed_fixed32" ), 0)); 3625 Assert.assertEquals(608L , message.getRepeatedField(f("packed_fixed64" ), 0)); 3626 Assert.assertEquals(609 , message.getRepeatedField(f("packed_sfixed32"), 0)); 3627 Assert.assertEquals(610L , message.getRepeatedField(f("packed_sfixed64"), 0)); 3628 Assert.assertEquals(611F , message.getRepeatedField(f("packed_float" ), 0)); 3629 Assert.assertEquals(612D , message.getRepeatedField(f("packed_double" ), 0)); 3630 Assert.assertEquals(true , message.getRepeatedField(f("packed_bool" ), 0)); 3631 Assert.assertEquals(foreignBar, message.getRepeatedField(f("packed_enum" ),0)); 3632 Assert.assertEquals(701 , message.getRepeatedField(f("packed_int32" ), 1)); 3633 Assert.assertEquals(702L , message.getRepeatedField(f("packed_int64" ), 1)); 3634 Assert.assertEquals(703 , message.getRepeatedField(f("packed_uint32" ), 1)); 3635 Assert.assertEquals(704L , message.getRepeatedField(f("packed_uint64" ), 1)); 3636 Assert.assertEquals(705 , message.getRepeatedField(f("packed_sint32" ), 1)); 3637 Assert.assertEquals(706L , message.getRepeatedField(f("packed_sint64" ), 1)); 3638 Assert.assertEquals(707 , message.getRepeatedField(f("packed_fixed32" ), 1)); 3639 Assert.assertEquals(708L , message.getRepeatedField(f("packed_fixed64" ), 1)); 3640 Assert.assertEquals(709 , message.getRepeatedField(f("packed_sfixed32"), 1)); 3641 Assert.assertEquals(710L , message.getRepeatedField(f("packed_sfixed64"), 1)); 3642 Assert.assertEquals(711F , message.getRepeatedField(f("packed_float" ), 1)); 3643 Assert.assertEquals(712D , message.getRepeatedField(f("packed_double" ), 1)); 3644 Assert.assertEquals(false, message.getRepeatedField(f("packed_bool" ), 1)); 3645 Assert.assertEquals(foreignBaz, message.getRepeatedField(f("packed_enum" ),1)); 3646 } 3647 3648 /** 3649 * Verifies that the reflection setters for the given.Builder object throw a 3650 * NullPointerException if they are passed a null value. Uses Assert to throw an 3651 * appropriate assertion failure, if the condition is not verified. 3652 */ 3653 public void assertReflectionSettersRejectNull(Message.Builder builder) 3654 throws Exception { 3655 try { 3656 builder.setField(f("optional_string"), null); 3657 Assert.fail("Exception was not thrown"); 3658 } catch (NullPointerException e) { 3659 // We expect this exception. 3660 } 3661 try { 3662 builder.setField(f("optional_bytes"), null); 3663 Assert.fail("Exception was not thrown"); 3664 } catch (NullPointerException e) { 3665 // We expect this exception. 3666 } 3667 try { 3668 builder.setField(f("optional_nested_enum"), null); 3669 Assert.fail("Exception was not thrown"); 3670 } catch (NullPointerException e) { 3671 // We expect this exception. 3672 } 3673 try { 3674 builder.setField(f("optional_nested_message"), 3675 (TestAllTypes.NestedMessage) null); 3676 Assert.fail("Exception was not thrown"); 3677 } catch (NullPointerException e) { 3678 // We expect this exception. 3679 } 3680 try { 3681 builder.setField(f("optional_nested_message"), 3682 (TestAllTypes.NestedMessage.Builder) null); 3683 Assert.fail("Exception was not thrown"); 3684 } catch (NullPointerException e) { 3685 // We expect this exception. 3686 } 3687 3688 try { 3689 builder.addRepeatedField(f("repeated_string"), null); 3690 Assert.fail("Exception was not thrown"); 3691 } catch (NullPointerException e) { 3692 // We expect this exception. 3693 } 3694 try { 3695 builder.addRepeatedField(f("repeated_bytes"), null); 3696 Assert.fail("Exception was not thrown"); 3697 } catch (NullPointerException e) { 3698 // We expect this exception. 3699 } 3700 try { 3701 builder.addRepeatedField(f("repeated_nested_enum"), null); 3702 Assert.fail("Exception was not thrown"); 3703 } catch (NullPointerException e) { 3704 // We expect this exception. 3705 } 3706 try { 3707 builder.addRepeatedField(f("repeated_nested_message"), null); 3708 Assert.fail("Exception was not thrown"); 3709 } catch (NullPointerException e) { 3710 // We expect this exception. 3711 } 3712 } 3713 3714 /** 3715 * Verifies that the reflection repeated setters for the given Builder object throw a 3716 * NullPointerException if they are passed a null value. Uses Assert to throw an appropriate 3717 * assertion failure, if the condition is not verified. 3718 */ 3719 public void assertReflectionRepeatedSettersRejectNull(Message.Builder builder) 3720 throws Exception { 3721 builder.addRepeatedField(f("repeated_string"), "one"); 3722 try { 3723 builder.setRepeatedField(f("repeated_string"), 0, null); 3724 Assert.fail("Exception was not thrown"); 3725 } catch (NullPointerException e) { 3726 // We expect this exception. 3727 } 3728 3729 builder.addRepeatedField(f("repeated_bytes"), toBytes("one")); 3730 try { 3731 builder.setRepeatedField(f("repeated_bytes"), 0, null); 3732 Assert.fail("Exception was not thrown"); 3733 } catch (NullPointerException e) { 3734 // We expect this exception. 3735 } 3736 3737 builder.addRepeatedField(f("repeated_nested_enum"), nestedBaz); 3738 try { 3739 builder.setRepeatedField(f("repeated_nested_enum"), 0, null); 3740 Assert.fail("Exception was not thrown"); 3741 } catch (NullPointerException e) { 3742 // We expect this exception. 3743 } 3744 3745 builder.addRepeatedField( 3746 f("repeated_nested_message"), 3747 TestAllTypes.NestedMessage.newBuilder().setBb(218).build()); 3748 try { 3749 builder.setRepeatedField(f("repeated_nested_message"), 0, null); 3750 Assert.fail("Exception was not thrown"); 3751 } catch (NullPointerException e) { 3752 // We expect this exception. 3753 } 3754 } 3755 } 3756 3757 /** 3758 * @param filePath The path relative to 3759 * {@link #getTestDataDir}. 3760 */ 3761 public static String readTextFromFile(String filePath) { 3762 return readBytesFromFile(filePath).toStringUtf8(); 3763 } 3764 3765 private static File getTestDataDir() { 3766 // Search each parent directory looking for "src/google/protobuf". 3767 File ancestor = new File("."); 3768 try { 3769 ancestor = ancestor.getCanonicalFile(); 3770 } catch (IOException e) { 3771 throw new RuntimeException( 3772 "Couldn't get canonical name of working directory.", e); 3773 } 3774 while (ancestor != null && ancestor.exists()) { 3775 if (new File(ancestor, "src/google/protobuf").exists()) { 3776 return new File(ancestor, "src/google/protobuf/testdata"); 3777 } 3778 ancestor = ancestor.getParentFile(); 3779 } 3780 3781 throw new RuntimeException( 3782 "Could not find golden files. This test must be run from within the " + 3783 "protobuf source package so that it can read test data files from the " + 3784 "C++ source tree."); 3785 } 3786 3787 /** 3788 * @param filename The path relative to 3789 * {@link #getTestDataDir}. 3790 */ 3791 public static ByteString readBytesFromFile(String filename) { 3792 File fullPath = new File(getTestDataDir(), filename); 3793 try { 3794 RandomAccessFile file = new RandomAccessFile(fullPath, "r"); 3795 byte[] content = new byte[(int) file.length()]; 3796 file.readFully(content); 3797 return ByteString.copyFrom(content); 3798 } catch (IOException e) { 3799 // Throw a RuntimeException here so that we can call this function from 3800 // static initializers. 3801 throw new IllegalArgumentException( 3802 "Couldn't read file: " + fullPath.getPath(), e); 3803 } 3804 } 3805 3806 /** 3807 * Get the bytes of the "golden message". This is a serialized TestAllTypes 3808 * with all fields set as they would be by 3809 * {@link #setAllFields(TestAllTypes.Builder)}, but it is loaded from a file 3810 * on disk rather than generated dynamically. The file is actually generated 3811 * by C++ code, so testing against it verifies compatibility with C++. 3812 */ 3813 public static ByteString getGoldenMessage() { 3814 if (goldenMessage == null) { 3815 goldenMessage = readBytesFromFile("golden_message_oneof_implemented"); 3816 } 3817 return goldenMessage; 3818 } 3819 private static ByteString goldenMessage = null; 3820 3821 /** 3822 * Get the bytes of the "golden packed fields message". This is a serialized 3823 * TestPackedTypes with all fields set as they would be by 3824 * {@link #setPackedFields(TestPackedTypes.Builder)}, but it is loaded from a 3825 * file on disk rather than generated dynamically. The file is actually 3826 * generated by C++ code, so testing against it verifies compatibility with 3827 * C++. 3828 */ 3829 public static ByteString getGoldenPackedFieldsMessage() { 3830 if (goldenPackedFieldsMessage == null) { 3831 goldenPackedFieldsMessage = 3832 readBytesFromFile("golden_packed_fields_message"); 3833 } 3834 return goldenPackedFieldsMessage; 3835 } 3836 private static ByteString goldenPackedFieldsMessage = null; 3837 3838 /** 3839 * Mock implementation of {@link GeneratedMessage.BuilderParent} for testing. 3840 * 3841 * @author jonp (at) google.com (Jon Perlow) 3842 */ 3843 public static class MockBuilderParent 3844 implements GeneratedMessage.BuilderParent { 3845 3846 private int invalidations; 3847 3848 @Override 3849 public void markDirty() { 3850 invalidations++; 3851 } 3852 3853 public int getInvalidationCount() { 3854 return invalidations; 3855 } 3856 } 3857 } 3858