protoc 2.6.1.1 → 2.6.1.2

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