ibm_db 3.0.4 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +4 -1
  3. data/LICENSE +1 -1
  4. data/MANIFEST +14 -14
  5. data/README +225 -225
  6. data/ext/Makefile.nt32 +181 -181
  7. data/ext/Makefile.nt32.191 +212 -212
  8. data/ext/extconf.rb +291 -291
  9. data/ext/ibm_db.c +11887 -11884
  10. data/ext/ruby_ibm_db.h +241 -241
  11. data/ext/ruby_ibm_db_cli.c +866 -866
  12. data/ext/ruby_ibm_db_cli.h +500 -500
  13. data/init.rb +41 -41
  14. data/lib/IBM_DB.rb +27 -27
  15. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3177 -3177
  16. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +1 -1
  17. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  18. data/test/active_record/connection_adapters/fake_adapter.rb +46 -46
  19. data/test/assets/example.log +1 -1
  20. data/test/assets/test.txt +1 -1
  21. data/test/cases/adapter_test.rb +276 -261
  22. data/test/cases/aggregations_test.rb +158 -158
  23. data/test/cases/ar_schema_test.rb +161 -161
  24. data/test/cases/associations/association_scope_test.rb +21 -21
  25. data/test/cases/associations/belongs_to_associations_test.rb +1029 -1029
  26. data/test/cases/associations/callbacks_test.rb +192 -192
  27. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  28. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +26 -26
  29. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  30. data/test/cases/associations/eager_load_nested_include_test.rb +128 -128
  31. data/test/cases/associations/eager_singularization_test.rb +148 -148
  32. data/test/cases/associations/eager_test.rb +1429 -1411
  33. data/test/cases/associations/extension_test.rb +82 -82
  34. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +972 -932
  35. data/test/cases/associations/has_many_associations_test.rb +2182 -2162
  36. data/test/cases/associations/has_many_through_associations_test.rb +1204 -1204
  37. data/test/cases/associations/has_one_associations_test.rb +610 -610
  38. data/test/cases/associations/has_one_through_associations_test.rb +380 -380
  39. data/test/cases/associations/inner_join_association_test.rb +139 -139
  40. data/test/cases/associations/inverse_associations_test.rb +706 -693
  41. data/test/cases/associations/join_model_test.rb +754 -754
  42. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  43. data/test/cases/associations/required_test.rb +82 -82
  44. data/test/cases/associations_test.rb +380 -380
  45. data/test/cases/attribute_decorators_test.rb +125 -125
  46. data/test/cases/attribute_methods/read_test.rb +60 -60
  47. data/test/cases/attribute_methods/serialization_test.rb +29 -29
  48. data/test/cases/attribute_methods_test.rb +952 -952
  49. data/test/cases/attribute_set_test.rb +210 -200
  50. data/test/cases/attribute_test.rb +180 -180
  51. data/test/cases/attributes_test.rb +136 -136
  52. data/test/cases/autosave_association_test.rb +1595 -1595
  53. data/test/cases/base_test.rb +1664 -1638
  54. data/test/cases/batches_test.rb +212 -212
  55. data/test/cases/binary_test.rb +52 -52
  56. data/test/cases/bind_parameter_test.rb +100 -100
  57. data/test/cases/calculations_test.rb +646 -646
  58. data/test/cases/callbacks_test.rb +543 -543
  59. data/test/cases/clone_test.rb +40 -40
  60. data/test/cases/coders/yaml_column_test.rb +63 -63
  61. data/test/cases/column_alias_test.rb +17 -17
  62. data/test/cases/column_definition_test.rb +123 -123
  63. data/test/cases/connection_adapters/adapter_leasing_test.rb +54 -54
  64. data/test/cases/connection_adapters/connection_handler_test.rb +53 -53
  65. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  66. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +293 -293
  67. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +65 -65
  68. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  69. data/test/cases/connection_adapters/schema_cache_test.rb +56 -56
  70. data/test/cases/connection_adapters/type_lookup_test.rb +110 -110
  71. data/test/cases/connection_management_test.rb +122 -122
  72. data/test/cases/connection_pool_test.rb +346 -346
  73. data/test/cases/connection_specification/resolver_test.rb +116 -116
  74. data/test/cases/core_test.rb +112 -112
  75. data/test/cases/counter_cache_test.rb +209 -209
  76. data/test/cases/custom_locking_test.rb +17 -17
  77. data/test/cases/database_statements_test.rb +19 -19
  78. data/test/cases/date_time_test.rb +61 -61
  79. data/test/cases/defaults_test.rb +223 -223
  80. data/test/cases/dirty_test.rb +785 -775
  81. data/test/cases/disconnected_test.rb +28 -28
  82. data/test/cases/dup_test.rb +157 -157
  83. data/test/cases/enum_test.rb +290 -290
  84. data/test/cases/explain_subscriber_test.rb +64 -64
  85. data/test/cases/explain_test.rb +76 -76
  86. data/test/cases/finder_respond_to_test.rb +60 -60
  87. data/test/cases/finder_test.rb +1169 -1166
  88. data/test/cases/fixture_set/file_test.rb +138 -138
  89. data/test/cases/fixtures_test.rb +908 -897
  90. data/test/cases/forbidden_attributes_protection_test.rb +99 -99
  91. data/test/cases/habtm_destroy_order_test.rb +61 -61
  92. data/test/cases/helper.rb +210 -210
  93. data/test/cases/hot_compatibility_test.rb +54 -54
  94. data/test/cases/i18n_test.rb +45 -45
  95. data/test/cases/inheritance_test.rb +375 -375
  96. data/test/cases/integration_test.rb +139 -139
  97. data/test/cases/invalid_connection_test.rb +22 -22
  98. data/test/cases/invalid_date_test.rb +32 -32
  99. data/test/cases/invertible_migration_test.rb +295 -295
  100. data/test/cases/json_serialization_test.rb +302 -302
  101. data/test/cases/locking_test.rb +477 -477
  102. data/test/cases/log_subscriber_test.rb +136 -136
  103. data/test/cases/migration/change_schema_test - Copy.rb +448 -448
  104. data/test/cases/migration/change_schema_test.rb +512 -472
  105. data/test/cases/migration/change_table_test.rb +224 -224
  106. data/test/cases/migration/column_attributes_test.rb +192 -192
  107. data/test/cases/migration/column_positioning_test.rb +56 -56
  108. data/test/cases/migration/columns_test.rb +304 -304
  109. data/test/cases/migration/command_recorder_test.rb +305 -305
  110. data/test/cases/migration/create_join_table_test.rb +148 -148
  111. data/test/cases/migration/foreign_key_test - Changed.rb +325 -325
  112. data/test/cases/migration/foreign_key_test.rb +328 -360
  113. data/test/cases/migration/helper.rb +39 -39
  114. data/test/cases/migration/index_test.rb +216 -216
  115. data/test/cases/migration/logger_test.rb +36 -36
  116. data/test/cases/migration/pending_migrations_test.rb +53 -53
  117. data/test/cases/migration/references_foreign_key_test.rb +169 -214
  118. data/test/cases/migration/references_index_test.rb +101 -101
  119. data/test/cases/migration/references_statements_test.rb +116 -116
  120. data/test/cases/migration/rename_table_test.rb +93 -93
  121. data/test/cases/migration/table_and_index_test.rb +24 -24
  122. data/test/cases/migration_test.rb +959 -959
  123. data/test/cases/migrator_test.rb +388 -388
  124. data/test/cases/mixin_test.rb +70 -70
  125. data/test/cases/modules_test.rb +173 -173
  126. data/test/cases/multiparameter_attributes_test.rb +350 -350
  127. data/test/cases/multiple_db_test.rb +115 -115
  128. data/test/cases/nested_attributes_test.rb +1070 -1057
  129. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  130. data/test/cases/persistence_test.rb +909 -909
  131. data/test/cases/pooled_connections_test.rb +81 -81
  132. data/test/cases/primary_keys_test.rb +237 -237
  133. data/test/cases/query_cache_test.rb +326 -326
  134. data/test/cases/quoting_test.rb +156 -156
  135. data/test/cases/readonly_test.rb +118 -118
  136. data/test/cases/reaper_test.rb +85 -85
  137. data/test/cases/reflection_test.rb +463 -454
  138. data/test/cases/relation/delegation_test.rb +68 -68
  139. data/test/cases/relation/merging_test.rb +161 -161
  140. data/test/cases/relation/mutation_test.rb +165 -165
  141. data/test/cases/relation/predicate_builder_test.rb +14 -14
  142. data/test/cases/relation/where_chain_test.rb +181 -181
  143. data/test/cases/relation/where_test.rb +300 -300
  144. data/test/cases/relation/where_test2.rb +36 -36
  145. data/test/cases/relation_test.rb +319 -297
  146. data/test/cases/relations_test.rb +1815 -1815
  147. data/test/cases/reload_models_test.rb +22 -22
  148. data/test/cases/result_test.rb +80 -80
  149. data/test/cases/sanitize_test.rb +83 -83
  150. data/test/cases/schema_dumper_test.rb +463 -463
  151. data/test/cases/scoping/default_scoping_test.rb +454 -454
  152. data/test/cases/scoping/named_scoping_test.rb +524 -524
  153. data/test/cases/scoping/relation_scoping_test.rb +357 -357
  154. data/test/cases/serialization_test.rb +104 -104
  155. data/test/cases/serialized_attribute_test.rb +277 -277
  156. data/test/cases/statement_cache_test.rb +98 -98
  157. data/test/cases/store_test.rb +194 -194
  158. data/test/cases/tasks/database_tasks_test.rb +398 -396
  159. data/test/cases/tasks/mysql_rake_test.rb +324 -311
  160. data/test/cases/tasks/postgresql_rake_test.rb +250 -245
  161. data/test/cases/tasks/sqlite_rake_test.rb +193 -193
  162. data/test/cases/test_case.rb +123 -123
  163. data/test/cases/timestamp_test.rb +467 -468
  164. data/test/cases/transaction_callbacks_test.rb +452 -452
  165. data/test/cases/transaction_isolation_test.rb +106 -106
  166. data/test/cases/transactions_test.rb +817 -817
  167. data/test/cases/type/decimal_test.rb +56 -51
  168. data/test/cases/type/integer_test.rb +121 -121
  169. data/test/cases/type/string_test.rb +36 -36
  170. data/test/cases/type/type_map_test.rb +177 -177
  171. data/test/cases/type/unsigned_integer_test.rb +18 -18
  172. data/test/cases/types_test.rb +141 -141
  173. data/test/cases/unconnected_test.rb +33 -33
  174. data/test/cases/validations/association_validation_test.rb +86 -86
  175. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  176. data/test/cases/validations/i18n_validation_test.rb +90 -90
  177. data/test/cases/validations/length_validation_test.rb +47 -47
  178. data/test/cases/validations/presence_validation_test.rb +68 -68
  179. data/test/cases/validations/uniqueness_validation_test.rb +457 -434
  180. data/test/cases/validations_repair_helper.rb +23 -23
  181. data/test/cases/validations_test.rb +165 -165
  182. data/test/cases/view_test.rb +119 -113
  183. data/test/cases/xml_serialization_test.rb +457 -457
  184. data/test/cases/yaml_serialization_test.rb +126 -86
  185. data/test/config.rb +5 -5
  186. data/test/config.yml +154 -154
  187. data/test/connections/native_ibm_db/connection.rb +43 -43
  188. data/test/fixtures/accounts.yml +29 -29
  189. data/test/fixtures/admin/accounts.yml +2 -2
  190. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  191. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  192. data/test/fixtures/admin/users.yml +10 -10
  193. data/test/fixtures/author_addresses.yml +17 -17
  194. data/test/fixtures/author_favorites.yml +3 -3
  195. data/test/fixtures/authors.yml +23 -23
  196. data/test/fixtures/binaries.yml +133 -133
  197. data/test/fixtures/books.yml +11 -11
  198. data/test/fixtures/bulbs.yml +5 -5
  199. data/test/fixtures/cars.yml +9 -9
  200. data/test/fixtures/categories.yml +19 -19
  201. data/test/fixtures/categories/special_categories.yml +9 -9
  202. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  203. data/test/fixtures/categories_ordered.yml +7 -7
  204. data/test/fixtures/categories_posts.yml +31 -31
  205. data/test/fixtures/categorizations.yml +23 -23
  206. data/test/fixtures/clubs.yml +8 -8
  207. data/test/fixtures/collections.yml +3 -3
  208. data/test/fixtures/colleges.yml +3 -3
  209. data/test/fixtures/comments.yml +65 -65
  210. data/test/fixtures/companies.yml +67 -67
  211. data/test/fixtures/computers.yml +10 -10
  212. data/test/fixtures/courses.yml +8 -8
  213. data/test/fixtures/customers.yml +25 -25
  214. data/test/fixtures/dashboards.yml +6 -6
  215. data/test/fixtures/developers.yml +21 -21
  216. data/test/fixtures/developers_projects.yml +16 -16
  217. data/test/fixtures/dog_lovers.yml +7 -7
  218. data/test/fixtures/dogs.yml +4 -4
  219. data/test/fixtures/doubloons.yml +3 -3
  220. data/test/fixtures/edges.yml +5 -5
  221. data/test/fixtures/entrants.yml +14 -14
  222. data/test/fixtures/essays.yml +6 -6
  223. data/test/fixtures/faces.yml +11 -11
  224. data/test/fixtures/fk_test_has_fk.yml +3 -3
  225. data/test/fixtures/fk_test_has_pk.yml +1 -1
  226. data/test/fixtures/friendships.yml +4 -4
  227. data/test/fixtures/funny_jokes.yml +10 -10
  228. data/test/fixtures/interests.yml +33 -33
  229. data/test/fixtures/items.yml +3 -3
  230. data/test/fixtures/jobs.yml +7 -7
  231. data/test/fixtures/legacy_things.yml +3 -3
  232. data/test/fixtures/mateys.yml +4 -4
  233. data/test/fixtures/member_details.yml +8 -8
  234. data/test/fixtures/member_types.yml +6 -6
  235. data/test/fixtures/members.yml +11 -11
  236. data/test/fixtures/memberships.yml +34 -34
  237. data/test/fixtures/men.yml +5 -5
  238. data/test/fixtures/minimalistics.yml +2 -2
  239. data/test/fixtures/minivans.yml +5 -5
  240. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  241. data/test/fixtures/mixins.yml +29 -29
  242. data/test/fixtures/movies.yml +7 -7
  243. data/test/fixtures/naked/csv/accounts.csv +1 -1
  244. data/test/fixtures/naked/yml/accounts.yml +1 -1
  245. data/test/fixtures/naked/yml/companies.yml +1 -1
  246. data/test/fixtures/naked/yml/courses.yml +1 -1
  247. data/test/fixtures/organizations.yml +5 -5
  248. data/test/fixtures/other_topics.yml +42 -42
  249. data/test/fixtures/owners.yml +9 -9
  250. data/test/fixtures/parrots.yml +27 -27
  251. data/test/fixtures/parrots_pirates.yml +7 -7
  252. data/test/fixtures/people.yml +24 -24
  253. data/test/fixtures/peoples_treasures.yml +3 -3
  254. data/test/fixtures/pets.yml +19 -19
  255. data/test/fixtures/pirates.yml +12 -12
  256. data/test/fixtures/posts.yml +80 -80
  257. data/test/fixtures/price_estimates.yml +7 -7
  258. data/test/fixtures/products.yml +4 -4
  259. data/test/fixtures/projects.yml +7 -7
  260. data/test/fixtures/randomly_named_a9.yml +7 -7
  261. data/test/fixtures/ratings.yml +14 -14
  262. data/test/fixtures/readers.yml +11 -11
  263. data/test/fixtures/references.yml +17 -17
  264. data/test/fixtures/reserved_words/distinct.yml +5 -5
  265. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  266. data/test/fixtures/reserved_words/group.yml +14 -14
  267. data/test/fixtures/reserved_words/select.yml +8 -8
  268. data/test/fixtures/reserved_words/values.yml +7 -7
  269. data/test/fixtures/ships.yml +6 -6
  270. data/test/fixtures/speedometers.yml +8 -8
  271. data/test/fixtures/sponsors.yml +12 -12
  272. data/test/fixtures/string_key_objects.yml +7 -7
  273. data/test/fixtures/subscribers.yml +10 -10
  274. data/test/fixtures/subscriptions.yml +12 -12
  275. data/test/fixtures/taggings.yml +78 -78
  276. data/test/fixtures/tags.yml +11 -11
  277. data/test/fixtures/tasks.yml +7 -7
  278. data/test/fixtures/teapots.yml +3 -3
  279. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  280. data/test/fixtures/to_be_linked/users.yml +10 -10
  281. data/test/fixtures/topics.yml +49 -49
  282. data/test/fixtures/toys.yml +14 -14
  283. data/test/fixtures/traffic_lights.yml +9 -9
  284. data/test/fixtures/treasures.yml +10 -10
  285. data/test/fixtures/uuid_children.yml +3 -3
  286. data/test/fixtures/uuid_parents.yml +2 -2
  287. data/test/fixtures/variants.yml +4 -4
  288. data/test/fixtures/vegetables.yml +19 -19
  289. data/test/fixtures/vertices.yml +3 -3
  290. data/test/fixtures/warehouse_things.yml +2 -2
  291. data/test/fixtures/zines.yml +5 -5
  292. data/test/ibm_db_test.rb +24 -24
  293. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  294. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  295. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  296. data/test/migrations/missing/1000_people_have_middle_names.rb +8 -8
  297. data/test/migrations/missing/1_people_have_last_names.rb +8 -8
  298. data/test/migrations/missing/3_we_need_reminders.rb +11 -11
  299. data/test/migrations/missing/4_innocent_jointable.rb +11 -11
  300. data/test/migrations/rename/1_we_need_things.rb +10 -10
  301. data/test/migrations/rename/2_rename_things.rb +8 -8
  302. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  303. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  304. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  305. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  306. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  307. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  308. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  309. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  310. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  311. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  312. data/test/migrations/valid/2_we_need_reminders.rb +11 -11
  313. data/test/migrations/valid/3_innocent_jointable.rb +11 -11
  314. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  315. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +11 -11
  316. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +11 -11
  317. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  318. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  319. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  320. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  321. data/test/models/admin.rb +4 -4
  322. data/test/models/admin/account.rb +2 -2
  323. data/test/models/admin/randomly_named_c1.rb +3 -3
  324. data/test/models/admin/user.rb +40 -40
  325. data/test/models/aircraft.rb +4 -4
  326. data/test/models/arunit2_model.rb +3 -3
  327. data/test/models/author.rb +212 -212
  328. data/test/models/auto_id.rb +4 -4
  329. data/test/models/autoloadable/extra_firm.rb +2 -2
  330. data/test/models/binary.rb +1 -1
  331. data/test/models/bird.rb +12 -12
  332. data/test/models/book.rb +18 -18
  333. data/test/models/boolean.rb +2 -2
  334. data/test/models/bulb.rb +51 -51
  335. data/test/models/cake_designer.rb +3 -3
  336. data/test/models/car.rb +26 -26
  337. data/test/models/carrier.rb +2 -2
  338. data/test/models/categorization.rb +19 -19
  339. data/test/models/category.rb +35 -35
  340. data/test/models/chef.rb +7 -3
  341. data/test/models/citation.rb +3 -3
  342. data/test/models/club.rb +23 -23
  343. data/test/models/college.rb +10 -10
  344. data/test/models/column.rb +3 -3
  345. data/test/models/column_name.rb +3 -3
  346. data/test/models/comment.rb +64 -64
  347. data/test/models/company.rb +228 -225
  348. data/test/models/company_in_module.rb +98 -98
  349. data/test/models/computer.rb +3 -3
  350. data/test/models/contact.rb +41 -41
  351. data/test/models/contract.rb +20 -20
  352. data/test/models/country.rb +7 -7
  353. data/test/models/course.rb +6 -6
  354. data/test/models/customer.rb +77 -77
  355. data/test/models/customer_carrier.rb +14 -14
  356. data/test/models/dashboard.rb +3 -3
  357. data/test/models/default.rb +2 -2
  358. data/test/models/department.rb +4 -4
  359. data/test/models/developer.rb +255 -252
  360. data/test/models/dog.rb +5 -5
  361. data/test/models/dog_lover.rb +5 -5
  362. data/test/models/doubloon.rb +12 -12
  363. data/test/models/drink_designer.rb +3 -3
  364. data/test/models/edge.rb +5 -5
  365. data/test/models/electron.rb +5 -5
  366. data/test/models/engine.rb +4 -4
  367. data/test/models/entrant.rb +3 -3
  368. data/test/models/essay.rb +5 -5
  369. data/test/models/event.rb +2 -2
  370. data/test/models/eye.rb +37 -37
  371. data/test/models/face.rb +9 -9
  372. data/test/models/friendship.rb +6 -6
  373. data/test/models/guid.rb +1 -1
  374. data/test/models/hotel.rb +9 -6
  375. data/test/models/image.rb +3 -3
  376. data/test/models/interest.rb +5 -5
  377. data/test/models/invoice.rb +4 -4
  378. data/test/models/item.rb +7 -7
  379. data/test/models/job.rb +7 -7
  380. data/test/models/joke.rb +7 -7
  381. data/test/models/keyboard.rb +3 -3
  382. data/test/models/legacy_thing.rb +3 -3
  383. data/test/models/lesson.rb +11 -11
  384. data/test/models/line_item.rb +3 -3
  385. data/test/models/liquid.rb +4 -4
  386. data/test/models/man.rb +11 -11
  387. data/test/models/matey.rb +4 -4
  388. data/test/models/member.rb +41 -41
  389. data/test/models/member_detail.rb +7 -7
  390. data/test/models/member_type.rb +3 -3
  391. data/test/models/membership.rb +35 -35
  392. data/test/models/minimalistic.rb +2 -2
  393. data/test/models/minivan.rb +9 -9
  394. data/test/models/mixed_case_monkey.rb +3 -3
  395. data/test/models/molecule.rb +6 -6
  396. data/test/models/movie.rb +5 -5
  397. data/test/models/order.rb +4 -4
  398. data/test/models/organization.rb +14 -14
  399. data/test/models/owner.rb +34 -34
  400. data/test/models/parrot.rb +29 -29
  401. data/test/models/person.rb +143 -143
  402. data/test/models/personal_legacy_thing.rb +4 -4
  403. data/test/models/pet.rb +15 -15
  404. data/test/models/pirate.rb +92 -92
  405. data/test/models/possession.rb +3 -3
  406. data/test/models/post.rb +264 -264
  407. data/test/models/price_estimate.rb +4 -4
  408. data/test/models/professor.rb +5 -5
  409. data/test/models/project.rb +31 -29
  410. data/test/models/publisher.rb +2 -2
  411. data/test/models/publisher/article.rb +4 -4
  412. data/test/models/publisher/magazine.rb +3 -3
  413. data/test/models/randomly_named_c1.rb +3 -3
  414. data/test/models/rating.rb +4 -4
  415. data/test/models/reader.rb +23 -23
  416. data/test/models/record.rb +2 -2
  417. data/test/models/reference.rb +22 -22
  418. data/test/models/reply.rb +61 -61
  419. data/test/models/ship.rb +33 -33
  420. data/test/models/ship_part.rb +7 -7
  421. data/test/models/shop.rb +17 -17
  422. data/test/models/shop_account.rb +6 -6
  423. data/test/models/speedometer.rb +6 -6
  424. data/test/models/sponsor.rb +7 -7
  425. data/test/models/string_key_object.rb +3 -3
  426. data/test/models/student.rb +4 -4
  427. data/test/models/subject.rb +16 -16
  428. data/test/models/subscriber.rb +8 -8
  429. data/test/models/subscription.rb +4 -4
  430. data/test/models/tag.rb +7 -7
  431. data/test/models/tagging.rb +13 -13
  432. data/test/models/task.rb +5 -5
  433. data/test/models/topic.rb +124 -124
  434. data/test/models/toy.rb +6 -6
  435. data/test/models/traffic_light.rb +4 -4
  436. data/test/models/treasure.rb +14 -14
  437. data/test/models/treaty.rb +7 -7
  438. data/test/models/tyre.rb +11 -11
  439. data/test/models/uuid_child.rb +3 -3
  440. data/test/models/uuid_parent.rb +3 -3
  441. data/test/models/vegetables.rb +24 -24
  442. data/test/models/vehicle.rb +6 -6
  443. data/test/models/vertex.rb +9 -9
  444. data/test/models/warehouse_thing.rb +5 -5
  445. data/test/models/wheel.rb +3 -3
  446. data/test/models/without_table.rb +3 -3
  447. data/test/models/zine.rb +3 -3
  448. data/test/schema/mysql2_specific_schema.rb +58 -58
  449. data/test/schema/mysql_specific_schema.rb +70 -70
  450. data/test/schema/oracle_specific_schema.rb +43 -43
  451. data/test/schema/postgresql_specific_schema.rb +202 -202
  452. data/test/schema/schema.rb +952 -938
  453. data/test/schema/sqlite_specific_schema.rb +21 -21
  454. data/test/support/config.rb +43 -43
  455. data/test/support/connection.rb +22 -22
  456. data/test/support/connection_helper.rb +14 -14
  457. data/test/support/ddl_helper.rb +8 -8
  458. data/test/support/schema_dumping_helper.rb +20 -20
  459. metadata +3 -3
@@ -1,86 +1,126 @@
1
- require 'cases/helper'
2
- require 'models/topic'
3
- require 'models/reply'
4
- require 'models/post'
5
- require 'models/author'
6
-
7
- class YamlSerializationTest < ActiveRecord::TestCase
8
- fixtures :topics, :authors, :posts, :author_addresses
9
-
10
- def test_to_yaml_with_time_with_zone_should_not_raise_exception
11
- with_timezone_config aware_attributes: true, zone: "Pacific Time (US & Canada)" do
12
- topic = Topic.new(:written_on => DateTime.now)
13
- assert_nothing_raised { topic.to_yaml }
14
- end
15
- end
16
-
17
- def test_roundtrip
18
- topic = Topic.first
19
- assert topic
20
- t = YAML.load YAML.dump topic
21
- assert_equal topic, t
22
- end
23
-
24
- def test_roundtrip_serialized_column
25
- topic = Topic.new(:content => {:omg=>:lol})
26
- assert_equal({:omg=>:lol}, YAML.load(YAML.dump(topic)).content)
27
- end
28
-
29
- def test_psych_roundtrip
30
- topic = Topic.first
31
- assert topic
32
- t = Psych.load Psych.dump topic
33
- assert_equal topic, t
34
- end
35
-
36
- def test_psych_roundtrip_new_object
37
- topic = Topic.new
38
- assert topic
39
- t = Psych.load Psych.dump topic
40
- assert_equal topic.attributes, t.attributes
41
- end
42
-
43
- def test_active_record_relation_serialization
44
- [Topic.all].to_yaml
45
- end
46
-
47
- def test_raw_types_are_not_changed_on_round_trip
48
- topic = Topic.new(parent_id: "123")
49
- assert_equal "123", topic.parent_id_before_type_cast
50
- assert_equal "123", YAML.load(YAML.dump(topic)).parent_id_before_type_cast
51
- end
52
-
53
- def test_cast_types_are_not_changed_on_round_trip
54
- topic = Topic.new(parent_id: "123")
55
- assert_equal 123, topic.parent_id
56
- assert_equal 123, YAML.load(YAML.dump(topic)).parent_id
57
- end
58
-
59
- def test_new_records_remain_new_after_round_trip
60
- topic = Topic.new
61
-
62
- assert topic.new_record?, "Sanity check that new records are new"
63
- assert YAML.load(YAML.dump(topic)).new_record?, "Record should be new after deserialization"
64
-
65
- topic.save!
66
-
67
- assert_not topic.new_record?, "Saved records are not new"
68
- assert_not YAML.load(YAML.dump(topic)).new_record?, "Saved record should not be new after deserialization"
69
-
70
- topic = Topic.select('title').last
71
-
72
- assert_not topic.new_record?, "Loaded records without ID are not new"
73
- assert_not YAML.load(YAML.dump(topic)).new_record?, "Record should not be new after deserialization"
74
- end
75
-
76
- def test_types_of_virtual_columns_are_not_changed_on_round_trip
77
- author = Author.select('authors.*, count(posts.id) as posts_count')
78
- .joins(:posts)
79
- .group('authors.id')
80
- .first
81
- dumped = YAML.load(YAML.dump(author))
82
-
83
- assert_equal 5, author.posts_count
84
- assert_equal 5, dumped.posts_count
85
- end
86
- end
1
+ require 'cases/helper'
2
+ require 'models/topic'
3
+ require 'models/reply'
4
+ require 'models/post'
5
+ require 'models/author'
6
+
7
+ class YamlSerializationTest < ActiveRecord::TestCase
8
+ fixtures :topics, :authors, :posts, :author_addresses
9
+
10
+ def test_to_yaml_with_time_with_zone_should_not_raise_exception
11
+ with_timezone_config aware_attributes: true, zone: "Pacific Time (US & Canada)" do
12
+ topic = Topic.new(:written_on => DateTime.now)
13
+ assert_nothing_raised { topic.to_yaml }
14
+ end
15
+ end
16
+
17
+ def test_roundtrip
18
+ topic = Topic.first
19
+ assert topic
20
+ t = YAML.load YAML.dump topic
21
+ assert_equal topic, t
22
+ end
23
+
24
+ def test_roundtrip_serialized_column
25
+ topic = Topic.new(:content => {:omg=>:lol})
26
+ assert_equal({:omg=>:lol}, YAML.load(YAML.dump(topic)).content)
27
+ end
28
+
29
+ def test_psych_roundtrip
30
+ topic = Topic.first
31
+ assert topic
32
+ t = Psych.load Psych.dump topic
33
+ assert_equal topic, t
34
+ end
35
+
36
+ def test_psych_roundtrip_new_object
37
+ topic = Topic.new
38
+ assert topic
39
+ t = Psych.load Psych.dump topic
40
+ assert_equal topic.attributes, t.attributes
41
+ end
42
+
43
+ def test_active_record_relation_serialization
44
+ [Topic.all].to_yaml
45
+ end
46
+
47
+ def test_raw_types_are_not_changed_on_round_trip
48
+ topic = Topic.new(parent_id: "123")
49
+ assert_equal "123", topic.parent_id_before_type_cast
50
+ assert_equal "123", YAML.load(YAML.dump(topic)).parent_id_before_type_cast
51
+ end
52
+
53
+ def test_cast_types_are_not_changed_on_round_trip
54
+ topic = Topic.new(parent_id: "123")
55
+ assert_equal 123, topic.parent_id
56
+ assert_equal 123, YAML.load(YAML.dump(topic)).parent_id
57
+ end
58
+
59
+ def test_new_records_remain_new_after_round_trip
60
+ topic = Topic.new
61
+
62
+ assert topic.new_record?, "Sanity check that new records are new"
63
+ assert YAML.load(YAML.dump(topic)).new_record?, "Record should be new after deserialization"
64
+
65
+ topic.save!
66
+
67
+ assert_not topic.new_record?, "Saved records are not new"
68
+ assert_not YAML.load(YAML.dump(topic)).new_record?, "Saved record should not be new after deserialization"
69
+
70
+ topic = Topic.select('title').last
71
+
72
+ assert_not topic.new_record?, "Loaded records without ID are not new"
73
+ assert_not YAML.load(YAML.dump(topic)).new_record?, "Record should not be new after deserialization"
74
+ end
75
+
76
+ def test_types_of_virtual_columns_are_not_changed_on_round_trip
77
+ author = Author.select('authors.*, count(posts.id) as posts_count')
78
+ .joins(:posts)
79
+ .group('authors.id')
80
+ .first
81
+ dumped = YAML.load(YAML.dump(author))
82
+
83
+ assert_equal 5, author.posts_count
84
+ assert_equal 5, dumped.posts_count
85
+ end
86
+
87
+ def test_a_yaml_version_is_provided_for_future_backwards_compat
88
+ coder = {}
89
+ Topic.first.encode_with(coder)
90
+
91
+ assert coder['active_record_yaml_version']
92
+ end
93
+
94
+ def test_deserializing_rails_41_yaml
95
+ yaml = <<-YAML.strip_heredoc
96
+ --- !ruby/object:Topic
97
+ attributes:
98
+ id:
99
+ title: The First Topic
100
+ author_name: David
101
+ author_email_address: david@loudthinking.com
102
+ written_on: 2003-07-16 14:28:11.223300000 Z
103
+ bonus_time: 2000-01-01 14:28:00.000000000 Z
104
+ last_read: 2004-04-15
105
+ content: |
106
+ ---
107
+ :omg: :lol
108
+ important:
109
+ approved: false
110
+ replies_count: 1
111
+ unique_replies_count: 0
112
+ parent_id:
113
+ parent_title:
114
+ type:
115
+ group:
116
+ created_at: 2015-03-10 17:05:42.000000000 Z
117
+ updated_at: 2015-03-10 17:05:42.000000000 Z
118
+ YAML
119
+ topic = YAML.load(yaml)
120
+
121
+ assert topic.new_record?
122
+ assert_equal nil, topic.id
123
+ assert_equal "The First Topic", topic.title
124
+ assert_equal({ omg: :lol }, topic.content)
125
+ end
126
+ end
@@ -1,5 +1,5 @@
1
- TEST_ROOT = File.expand_path(File.dirname(__FILE__))
2
- ASSETS_ROOT = TEST_ROOT + "/assets"
3
- FIXTURES_ROOT = TEST_ROOT + "/fixtures"
4
- MIGRATIONS_ROOT = TEST_ROOT + "/migrations"
5
- SCHEMA_ROOT = TEST_ROOT + "/schema"
1
+ TEST_ROOT = File.expand_path(File.dirname(__FILE__))
2
+ ASSETS_ROOT = TEST_ROOT + "/assets"
3
+ FIXTURES_ROOT = TEST_ROOT + "/fixtures"
4
+ MIGRATIONS_ROOT = TEST_ROOT + "/migrations"
5
+ SCHEMA_ROOT = TEST_ROOT + "/schema"
@@ -1,154 +1,154 @@
1
- default_connection: <%= defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3' %>
2
-
3
- connections:
4
- jdbcderby:
5
- arunit: activerecord_unittest
6
- arunit2: activerecord_unittest2
7
-
8
- jdbch2:
9
- arunit: activerecord_unittest
10
- arunit2: activerecord_unittest2
11
-
12
- jdbchsqldb:
13
- arunit: activerecord_unittest
14
- arunit2: activerecord_unittest2
15
-
16
- jdbcmysql:
17
- arunit:
18
- username: rails
19
- encoding: utf8
20
- arunit2:
21
- username: rails
22
- encoding: utf8
23
-
24
- jdbcpostgresql:
25
- arunit:
26
- username: <%= ENV['user'] || 'rails' %>
27
- arunit2:
28
- username: <%= ENV['user'] || 'rails' %>
29
-
30
- jdbcsqlite3:
31
- arunit:
32
- database: <%= FIXTURES_ROOT %>/fixture_database.sqlite3
33
- timeout: 5000
34
- arunit2:
35
- database: <%= FIXTURES_ROOT %>/fixture_database_2.sqlite3
36
- timeout: 5000
37
-
38
- db2:
39
- arunit:
40
- host: localhost
41
- username: arunit
42
- password: arunit
43
- database: arunit
44
- arunit2:
45
- host: localhost
46
- username: arunit
47
- password: arunit
48
- database: arunit2
49
-
50
- ibm_db:
51
- arunit:
52
- username: db2user
53
- password: secret
54
- database: railsdb
55
- start_id: 1000
56
- arunit2:
57
- username: db2user
58
- password: secret
59
- database: railsdb
60
- start_id: 1000
61
-
62
- firebird:
63
- arunit:
64
- host: localhost
65
- username: rails
66
- password: rails
67
- charset: UTF8
68
- arunit2:
69
- host: localhost
70
- username: rails
71
- password: rails
72
- charset: UTF8
73
-
74
- frontbase:
75
- arunit:
76
- host: localhost
77
- username: rails
78
- session_name: unittest-<%= $$ %>
79
- arunit2:
80
- host: localhost
81
- username: rails
82
- session_name: unittest-<%= $$ %>
83
-
84
- mysql:
85
- arunit:
86
- username: root
87
- password: root123
88
- port: 3306
89
- database: railsdb
90
- encoding: utf8
91
- arunit2:
92
- username: root
93
- password: root123
94
- port: 3306
95
- database: railsdb
96
- encoding: utf8
97
-
98
- mysql2:
99
- arunit:
100
- username: rails
101
- encoding: utf8
102
- arunit2:
103
- username: rails
104
- encoding: utf8
105
-
106
- openbase:
107
- arunit:
108
- username: admin
109
- arunit2:
110
- username: admin
111
-
112
- oracle:
113
- arunit:
114
- adapter: oracle_enhanced
115
- database: <%= ENV['ARUNIT_DB_NAME'] || 'orcl' %>
116
- username: <%= ENV['ARUNIT_USER_NAME'] || 'arunit' %>
117
- password: <%= ENV['ARUNIT_PASSWORD'] || 'arunit' %>
118
- emulate_oracle_adapter: true
119
- arunit2:
120
- adapter: oracle_enhanced
121
- database: <%= ENV['ARUNIT_DB_NAME'] || 'orcl' %>
122
- username: <%= ENV['ARUNIT2_USER_NAME'] || 'arunit2' %>
123
- password: <%= ENV['ARUNIT2_PASSWORD'] || 'arunit2' %>
124
- emulate_oracle_adapter: true
125
-
126
- postgresql:
127
- arunit:
128
- min_messages: warning
129
- arunit2:
130
- min_messages: warning
131
-
132
- sqlite3:
133
- arunit:
134
- database: <%= FIXTURES_ROOT %>/fixture_database.sqlite3
135
- timeout: 5000
136
- arunit2:
137
- database: <%= FIXTURES_ROOT %>/fixture_database_2.sqlite3
138
- timeout: 5000
139
-
140
- sqlite3_mem:
141
- arunit:
142
- adapter: sqlite3
143
- database: ':memory:'
144
- arunit2:
145
- adapter: sqlite3
146
- database: ':memory:'
147
-
148
- sybase:
149
- arunit:
150
- host: database_ASE
151
- username: sa
152
- arunit2:
153
- host: database_ASE
154
- username: sa
1
+ default_connection: <%= defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3' %>
2
+
3
+ connections:
4
+ jdbcderby:
5
+ arunit: activerecord_unittest
6
+ arunit2: activerecord_unittest2
7
+
8
+ jdbch2:
9
+ arunit: activerecord_unittest
10
+ arunit2: activerecord_unittest2
11
+
12
+ jdbchsqldb:
13
+ arunit: activerecord_unittest
14
+ arunit2: activerecord_unittest2
15
+
16
+ jdbcmysql:
17
+ arunit:
18
+ username: rails
19
+ encoding: utf8
20
+ arunit2:
21
+ username: rails
22
+ encoding: utf8
23
+
24
+ jdbcpostgresql:
25
+ arunit:
26
+ username: <%= ENV['user'] || 'rails' %>
27
+ arunit2:
28
+ username: <%= ENV['user'] || 'rails' %>
29
+
30
+ jdbcsqlite3:
31
+ arunit:
32
+ database: <%= FIXTURES_ROOT %>/fixture_database.sqlite3
33
+ timeout: 5000
34
+ arunit2:
35
+ database: <%= FIXTURES_ROOT %>/fixture_database_2.sqlite3
36
+ timeout: 5000
37
+
38
+ db2:
39
+ arunit:
40
+ host: localhost
41
+ username: arunit
42
+ password: arunit
43
+ database: arunit
44
+ arunit2:
45
+ host: localhost
46
+ username: arunit
47
+ password: arunit
48
+ database: arunit2
49
+
50
+ ibm_db:
51
+ arunit:
52
+ username: db2user
53
+ password: secret
54
+ database: railsdb
55
+ start_id: 1000
56
+ arunit2:
57
+ username: db2user
58
+ password: secret
59
+ database: railsdb
60
+ start_id: 1000
61
+
62
+ firebird:
63
+ arunit:
64
+ host: localhost
65
+ username: rails
66
+ password: rails
67
+ charset: UTF8
68
+ arunit2:
69
+ host: localhost
70
+ username: rails
71
+ password: rails
72
+ charset: UTF8
73
+
74
+ frontbase:
75
+ arunit:
76
+ host: localhost
77
+ username: rails
78
+ session_name: unittest-<%= $$ %>
79
+ arunit2:
80
+ host: localhost
81
+ username: rails
82
+ session_name: unittest-<%= $$ %>
83
+
84
+ mysql:
85
+ arunit:
86
+ username: root
87
+ password: root123
88
+ port: 3306
89
+ database: railsdb
90
+ encoding: utf8
91
+ arunit2:
92
+ username: root
93
+ password: root123
94
+ port: 3306
95
+ database: railsdb
96
+ encoding: utf8
97
+
98
+ mysql2:
99
+ arunit:
100
+ username: rails
101
+ encoding: utf8
102
+ arunit2:
103
+ username: rails
104
+ encoding: utf8
105
+
106
+ openbase:
107
+ arunit:
108
+ username: admin
109
+ arunit2:
110
+ username: admin
111
+
112
+ oracle:
113
+ arunit:
114
+ adapter: oracle_enhanced
115
+ database: <%= ENV['ARUNIT_DB_NAME'] || 'orcl' %>
116
+ username: <%= ENV['ARUNIT_USER_NAME'] || 'arunit' %>
117
+ password: <%= ENV['ARUNIT_PASSWORD'] || 'arunit' %>
118
+ emulate_oracle_adapter: true
119
+ arunit2:
120
+ adapter: oracle_enhanced
121
+ database: <%= ENV['ARUNIT_DB_NAME'] || 'orcl' %>
122
+ username: <%= ENV['ARUNIT2_USER_NAME'] || 'arunit2' %>
123
+ password: <%= ENV['ARUNIT2_PASSWORD'] || 'arunit2' %>
124
+ emulate_oracle_adapter: true
125
+
126
+ postgresql:
127
+ arunit:
128
+ min_messages: warning
129
+ arunit2:
130
+ min_messages: warning
131
+
132
+ sqlite3:
133
+ arunit:
134
+ database: <%= FIXTURES_ROOT %>/fixture_database.sqlite3
135
+ timeout: 5000
136
+ arunit2:
137
+ database: <%= FIXTURES_ROOT %>/fixture_database_2.sqlite3
138
+ timeout: 5000
139
+
140
+ sqlite3_mem:
141
+ arunit:
142
+ adapter: sqlite3
143
+ database: ':memory:'
144
+ arunit2:
145
+ adapter: sqlite3
146
+ database: ':memory:'
147
+
148
+ sybase:
149
+ arunit:
150
+ host: database_ASE
151
+ username: sa
152
+ arunit2:
153
+ host: database_ASE
154
+ username: sa