activerecord-sqlserver-adapter 6.0.0.rc1 → 6.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +29 -0
  4. data/CHANGELOG.md +20 -0
  5. data/Gemfile +11 -5
  6. data/Guardfile +9 -8
  7. data/Rakefile +12 -16
  8. data/VERSION +1 -1
  9. data/activerecord-sqlserver-adapter.gemspec +3 -3
  10. data/lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb +0 -4
  11. data/lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb +1 -4
  12. data/lib/active_record/connection_adapters/sqlserver/core_ext/calculations.rb +3 -4
  13. data/lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb +1 -3
  14. data/lib/active_record/connection_adapters/sqlserver/core_ext/finder_methods.rb +2 -3
  15. data/lib/active_record/connection_adapters/sqlserver/core_ext/query_methods.rb +2 -3
  16. data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +35 -32
  17. data/lib/active_record/connection_adapters/sqlserver/database_tasks.rb +7 -12
  18. data/lib/active_record/connection_adapters/sqlserver/errors.rb +0 -3
  19. data/lib/active_record/connection_adapters/sqlserver/quoting.rb +8 -8
  20. data/lib/active_record/connection_adapters/sqlserver/schema_creation.rb +0 -2
  21. data/lib/active_record/connection_adapters/sqlserver/schema_dumper.rb +7 -7
  22. data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +106 -103
  23. data/lib/active_record/connection_adapters/sqlserver/showplan.rb +6 -8
  24. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_table.rb +2 -2
  25. data/lib/active_record/connection_adapters/sqlserver/showplan/printer_xml.rb +1 -1
  26. data/lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb +0 -2
  27. data/lib/active_record/connection_adapters/sqlserver/table_definition.rb +1 -4
  28. data/lib/active_record/connection_adapters/sqlserver/transaction.rb +4 -8
  29. data/lib/active_record/connection_adapters/sqlserver/type.rb +35 -35
  30. data/lib/active_record/connection_adapters/sqlserver/type/big_integer.rb +0 -2
  31. data/lib/active_record/connection_adapters/sqlserver/type/binary.rb +0 -2
  32. data/lib/active_record/connection_adapters/sqlserver/type/boolean.rb +0 -2
  33. data/lib/active_record/connection_adapters/sqlserver/type/char.rb +2 -2
  34. data/lib/active_record/connection_adapters/sqlserver/type/data.rb +0 -2
  35. data/lib/active_record/connection_adapters/sqlserver/type/date.rb +2 -3
  36. data/lib/active_record/connection_adapters/sqlserver/type/datetime.rb +2 -3
  37. data/lib/active_record/connection_adapters/sqlserver/type/datetime2.rb +0 -2
  38. data/lib/active_record/connection_adapters/sqlserver/type/datetimeoffset.rb +0 -2
  39. data/lib/active_record/connection_adapters/sqlserver/type/decimal.rb +0 -2
  40. data/lib/active_record/connection_adapters/sqlserver/type/float.rb +0 -2
  41. data/lib/active_record/connection_adapters/sqlserver/type/integer.rb +0 -2
  42. data/lib/active_record/connection_adapters/sqlserver/type/json.rb +0 -1
  43. data/lib/active_record/connection_adapters/sqlserver/type/money.rb +0 -2
  44. data/lib/active_record/connection_adapters/sqlserver/type/real.rb +0 -2
  45. data/lib/active_record/connection_adapters/sqlserver/type/small_integer.rb +0 -2
  46. data/lib/active_record/connection_adapters/sqlserver/type/small_money.rb +0 -2
  47. data/lib/active_record/connection_adapters/sqlserver/type/smalldatetime.rb +0 -2
  48. data/lib/active_record/connection_adapters/sqlserver/type/string.rb +0 -2
  49. data/lib/active_record/connection_adapters/sqlserver/type/text.rb +0 -2
  50. data/lib/active_record/connection_adapters/sqlserver/type/time.rb +2 -3
  51. data/lib/active_record/connection_adapters/sqlserver/type/time_value_fractional.rb +6 -9
  52. data/lib/active_record/connection_adapters/sqlserver/type/timestamp.rb +0 -2
  53. data/lib/active_record/connection_adapters/sqlserver/type/tiny_integer.rb +0 -2
  54. data/lib/active_record/connection_adapters/sqlserver/type/unicode_char.rb +1 -3
  55. data/lib/active_record/connection_adapters/sqlserver/type/unicode_string.rb +0 -2
  56. data/lib/active_record/connection_adapters/sqlserver/type/unicode_text.rb +0 -2
  57. data/lib/active_record/connection_adapters/sqlserver/type/unicode_varchar.rb +0 -2
  58. data/lib/active_record/connection_adapters/sqlserver/type/unicode_varchar_max.rb +0 -2
  59. data/lib/active_record/connection_adapters/sqlserver/type/uuid.rb +1 -2
  60. data/lib/active_record/connection_adapters/sqlserver/type/varbinary.rb +1 -3
  61. data/lib/active_record/connection_adapters/sqlserver/type/varbinary_max.rb +0 -2
  62. data/lib/active_record/connection_adapters/sqlserver/type/varchar.rb +1 -3
  63. data/lib/active_record/connection_adapters/sqlserver/type/varchar_max.rb +0 -2
  64. data/lib/active_record/connection_adapters/sqlserver/utils.rb +8 -11
  65. data/lib/active_record/connection_adapters/sqlserver/version.rb +0 -2
  66. data/lib/active_record/connection_adapters/sqlserver_adapter.rb +85 -83
  67. data/lib/active_record/connection_adapters/sqlserver_column.rb +0 -2
  68. data/lib/active_record/sqlserver_base.rb +1 -1
  69. data/lib/active_record/tasks/sqlserver_database_tasks.rb +26 -32
  70. data/lib/activerecord-sqlserver-adapter.rb +1 -1
  71. data/lib/arel/visitors/sqlserver.rb +18 -14
  72. data/lib/arel_sqlserver.rb +2 -2
  73. data/test/cases/adapter_test_sqlserver.rb +161 -182
  74. data/test/cases/change_column_null_test_sqlserver.rb +12 -12
  75. data/test/cases/coerced_tests.rb +88 -270
  76. data/test/cases/column_test_sqlserver.rb +281 -283
  77. data/test/cases/connection_test_sqlserver.rb +15 -20
  78. data/test/cases/execute_procedure_test_sqlserver.rb +18 -20
  79. data/test/cases/fetch_test_sqlserver.rb +14 -22
  80. data/test/cases/fully_qualified_identifier_test_sqlserver.rb +12 -18
  81. data/test/cases/helper_sqlserver.rb +13 -15
  82. data/test/cases/in_clause_test_sqlserver.rb +9 -9
  83. data/test/cases/index_test_sqlserver.rb +13 -15
  84. data/test/cases/json_test_sqlserver.rb +23 -25
  85. data/test/cases/migration_test_sqlserver.rb +22 -28
  86. data/test/cases/order_test_sqlserver.rb +51 -54
  87. data/test/cases/pessimistic_locking_test_sqlserver.rb +25 -33
  88. data/test/cases/rake_test_sqlserver.rb +31 -45
  89. data/test/cases/schema_dumper_test_sqlserver.rb +104 -108
  90. data/test/cases/schema_test_sqlserver.rb +18 -26
  91. data/test/cases/scratchpad_test_sqlserver.rb +2 -4
  92. data/test/cases/showplan_test_sqlserver.rb +24 -33
  93. data/test/cases/specific_schema_test_sqlserver.rb +66 -65
  94. data/test/cases/transaction_test_sqlserver.rb +16 -19
  95. data/test/cases/trigger_test_sqlserver.rb +12 -12
  96. data/test/cases/utils_test_sqlserver.rb +68 -70
  97. data/test/cases/uuid_test_sqlserver.rb +11 -13
  98. data/test/debug.rb +6 -6
  99. data/test/migrations/create_clients_and_change_column_null.rb +1 -1
  100. data/test/migrations/transaction_table/1_table_will_never_be_created.rb +2 -4
  101. data/test/models/sqlserver/booking.rb +1 -1
  102. data/test/models/sqlserver/customers_view.rb +1 -1
  103. data/test/models/sqlserver/dollar_table_name.rb +1 -1
  104. data/test/models/sqlserver/edge_schema.rb +1 -3
  105. data/test/models/sqlserver/fk_has_fk.rb +1 -1
  106. data/test/models/sqlserver/fk_has_pk.rb +1 -1
  107. data/test/models/sqlserver/natural_pk_data.rb +2 -2
  108. data/test/models/sqlserver/natural_pk_int_data.rb +1 -1
  109. data/test/models/sqlserver/no_pk_data.rb +1 -1
  110. data/test/models/sqlserver/object_default.rb +1 -1
  111. data/test/models/sqlserver/quoted_table.rb +2 -2
  112. data/test/models/sqlserver/quoted_view_1.rb +1 -1
  113. data/test/models/sqlserver/quoted_view_2.rb +1 -1
  114. data/test/models/sqlserver/sst_memory.rb +1 -1
  115. data/test/models/sqlserver/string_default.rb +1 -1
  116. data/test/models/sqlserver/string_defaults_big_view.rb +1 -1
  117. data/test/models/sqlserver/string_defaults_view.rb +1 -1
  118. data/test/models/sqlserver/tinyint_pk.rb +1 -1
  119. data/test/models/sqlserver/trigger.rb +2 -2
  120. data/test/models/sqlserver/trigger_history.rb +1 -1
  121. data/test/models/sqlserver/upper.rb +1 -1
  122. data/test/models/sqlserver/uppered.rb +1 -1
  123. data/test/models/sqlserver/uuid.rb +1 -1
  124. data/test/schema/sqlserver_specific_schema.rb +20 -22
  125. data/test/support/coerceable_test_sqlserver.rb +1 -4
  126. data/test/support/connection_reflection.rb +1 -2
  127. data/test/support/core_ext/query_cache.rb +1 -1
  128. data/test/support/load_schema_sqlserver.rb +3 -5
  129. data/test/support/minitest_sqlserver.rb +1 -1
  130. data/test/support/paths_sqlserver.rb +9 -11
  131. data/test/support/rake_helpers.rb +12 -10
  132. data/test/support/sql_counter_sqlserver.rb +0 -4
  133. data/test/support/test_in_memory_oltp.rb +7 -7
  134. metadata +5 -4
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cases/helper_sqlserver'
4
- require 'migrations/create_clients_and_change_column_null'
3
+ require "cases/helper_sqlserver"
4
+ require "migrations/create_clients_and_change_column_null"
5
5
 
6
6
  class ChangeColumnNullTestSqlServer < ActiveRecord::TestCase
7
7
  before do
@@ -19,25 +19,25 @@ class ChangeColumnNullTestSqlServer < ActiveRecord::TestCase
19
19
  table.find { |column| column.name == name }
20
20
  end
21
21
 
22
- let(:clients_table) { connection.columns('clients') }
23
- let(:name_column) { find_column(clients_table, 'name') }
24
- let(:code_column) { find_column(clients_table, 'code') }
25
- let(:value_column) { find_column(clients_table, 'value') }
22
+ let(:clients_table) { connection.columns("clients") }
23
+ let(:name_column) { find_column(clients_table, "name") }
24
+ let(:code_column) { find_column(clients_table, "code") }
25
+ let(:value_column) { find_column(clients_table, "value") }
26
26
 
27
- describe '#change_column_null' do
28
- it 'does not change the column limit' do
27
+ describe "#change_column_null" do
28
+ it "does not change the column limit" do
29
29
  _(name_column.limit).must_equal 15
30
30
  end
31
31
 
32
- it 'does not change the column default' do
33
- _(code_column.default).must_equal 'n/a'
32
+ it "does not change the column default" do
33
+ _(code_column.default).must_equal "n/a"
34
34
  end
35
35
 
36
- it 'does not change the column precision' do
36
+ it "does not change the column precision" do
37
37
  _(value_column.precision).must_equal 32
38
38
  end
39
39
 
40
- it 'does not change the column scale' do
40
+ it "does not change the column scale" do
41
41
  _(value_column.scale).must_equal 8
42
42
  end
43
43
  end
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'cases/helper_sqlserver'
3
+ require "cases/helper_sqlserver"
4
4
 
5
-
6
-
7
- require 'models/event'
5
+ require "models/event"
8
6
  class UniquenessValidationTest < ActiveRecord::TestCase
9
7
  # So sp_executesql swallows this exception. Run without prepared to see it.
10
8
  coerce_tests! :test_validate_uniqueness_with_limit
@@ -30,16 +28,13 @@ class UniquenessValidationTest < ActiveRecord::TestCase
30
28
  coerce_tests! :test_validate_case_sensitive_uniqueness_by_default
31
29
  def test_validate_case_sensitive_uniqueness_by_default_coerced
32
30
  database_collation = connection.select_one("SELECT collation_name FROM sys.databases WHERE name = 'activerecord_unittest'").values.first
33
- skip if database_collation.include?('_CI_')
31
+ skip if database_collation.include?("_CI_")
34
32
 
35
33
  original_test_validate_case_sensitive_uniqueness_by_default_coerced
36
34
  end
37
35
  end
38
36
 
39
-
40
-
41
-
42
- require 'models/event'
37
+ require "models/event"
43
38
  module ActiveRecord
44
39
  class AdapterTest < ActiveRecord::TestCase
45
40
  # I really don`t think we can support legacy binds.
@@ -54,7 +49,7 @@ module ActiveRecord
54
49
  def test_value_limit_violations_are_translated_to_specific_exception_coerced
55
50
  connection.unprepared_statement do
56
51
  error = assert_raises(ActiveRecord::ValueTooLong) do
57
- Event.create(title: 'abcdefgh')
52
+ Event.create(title: "abcdefgh")
58
53
  end
59
54
  assert_not_nil error.cause
60
55
  end
@@ -69,9 +64,6 @@ module ActiveRecord
69
64
  end
70
65
  end
71
66
 
72
-
73
-
74
-
75
67
  module ActiveRecord
76
68
  class AdapterTestWithoutTransaction < ActiveRecord::TestCase
77
69
  # SQL Server does not allow truncation of tables that are referenced by foreign key
@@ -125,15 +117,12 @@ module ActiveRecord
125
117
  end
126
118
  end
127
119
 
128
-
129
-
130
-
131
- require 'models/topic'
120
+ require "models/topic"
132
121
  class AttributeMethodsTest < ActiveRecord::TestCase
133
122
  # Use IFF for boolean statement in SELECT
134
123
  coerce_tests! %r{typecast attribute from select to false}
135
124
  def test_typecast_attribute_from_select_to_false_coerced
136
- Topic.create(:title => 'Budget')
125
+ Topic.create(:title => "Budget")
137
126
  topic = Topic.all.merge!(:select => "topics.*, IIF (1 = 2, 1, 0) as is_test").first
138
127
  assert_not_predicate topic, :is_test?
139
128
  end
@@ -141,21 +130,18 @@ class AttributeMethodsTest < ActiveRecord::TestCase
141
130
  # Use IFF for boolean statement in SELECT
142
131
  coerce_tests! %r{typecast attribute from select to true}
143
132
  def test_typecast_attribute_from_select_to_true_coerced
144
- Topic.create(:title => 'Budget')
133
+ Topic.create(:title => "Budget")
145
134
  topic = Topic.all.merge!(:select => "topics.*, IIF (1 = 1, 1, 0) as is_test").first
146
135
  assert_predicate topic, :is_test?
147
136
  end
148
137
  end
149
138
 
150
-
151
-
152
-
153
139
  class BasicsTest < ActiveRecord::TestCase
154
140
  # Use square brackets as SQL Server escaped character
155
141
  coerce_tests! :test_column_names_are_escaped
156
142
  def test_column_names_are_escaped_coerced
157
143
  conn = ActiveRecord::Base.connection
158
- assert_equal '[t]]]', conn.quote_column_name('t]')
144
+ assert_equal "[t]]]", conn.quote_column_name("t]")
159
145
  end
160
146
 
161
147
  # Just like PostgreSQLAdapter does.
@@ -175,7 +161,7 @@ class BasicsTest < ActiveRecord::TestCase
175
161
  end
176
162
 
177
163
  def test_update_date_time_attributes_with_default_timezone_local
178
- with_env_tz 'America/New_York' do
164
+ with_env_tz "America/New_York" do
179
165
  with_timezone_config default: :local do
180
166
  Time.use_zone("Eastern Time (US & Canada)") do
181
167
  topic = Topic.find(1)
@@ -200,9 +186,6 @@ class BasicsTest < ActiveRecord::TestCase
200
186
  end
201
187
  end
202
188
 
203
-
204
-
205
-
206
189
  class BelongsToAssociationsTest < ActiveRecord::TestCase
207
190
  # Since @client.firm is a single first/top, and we use FETCH the order clause is used.
208
191
  coerce_tests! :test_belongs_to_does_not_use_order_by
@@ -227,9 +210,6 @@ class BelongsToAssociationsTest < ActiveRecord::TestCase
227
210
  end
228
211
  end
229
212
 
230
-
231
-
232
-
233
213
  module ActiveRecord
234
214
  class BindParameterTest < ActiveRecord::TestCase
235
215
  # Same as original coerced test except log is found using `EXEC sp_executesql` wrapper.
@@ -257,9 +237,6 @@ module ActiveRecord
257
237
  end
258
238
  end
259
239
 
260
-
261
-
262
-
263
240
  module ActiveRecord
264
241
  class InstrumentationTest < ActiveRecord::TestCase
265
242
  # Fix randomly failing test. The loading of the model's schema was affecting the test.
@@ -271,9 +248,6 @@ module ActiveRecord
271
248
  end
272
249
  end
273
250
 
274
-
275
-
276
-
277
251
  class CalculationsTest < ActiveRecord::TestCase
278
252
  # Fix randomly failing test. The loading of the model's schema was affecting the test.
279
253
  coerce_tests! :test_offset_is_kept
@@ -286,7 +260,7 @@ class CalculationsTest < ActiveRecord::TestCase
286
260
  coerce_tests! :test_should_return_decimal_average_of_integer_field
287
261
  def test_should_return_decimal_average_of_integer_field_coerced
288
262
  value = Account.average(:id)
289
- assert_equal BigDecimal('3.0').to_s, BigDecimal(value).to_s
263
+ assert_equal BigDecimal("3.0").to_s, BigDecimal(value).to_s
290
264
  end
291
265
 
292
266
  # Match SQL Server limit implementation
@@ -317,9 +291,6 @@ class CalculationsTest < ActiveRecord::TestCase
317
291
  coerce_tests! :test_having_with_strong_parameters
318
292
  end
319
293
 
320
-
321
-
322
-
323
294
  module ActiveRecord
324
295
  class Migration
325
296
  class ChangeSchemaTest < ActiveRecord::TestCase
@@ -351,9 +322,6 @@ module ActiveRecord
351
322
  end
352
323
  end
353
324
 
354
-
355
-
356
-
357
325
  module ActiveRecord
358
326
  module ConnectionAdapters
359
327
  class QuoteARBaseTest < ActiveRecord::TestCase
@@ -361,22 +329,19 @@ module ActiveRecord
361
329
  coerce_tests! :test_quote_ar_object
362
330
  def test_quote_ar_object_coerced
363
331
  value = DatetimePrimaryKey.new(id: @time)
364
- assert_equal "'02-14-2017 12:34:56.79'", @connection.quote(value)
332
+ assert_equal "'02-14-2017 12:34:56.79'", @connection.quote(value)
365
333
  end
366
334
 
367
335
  # Use our date format.
368
336
  coerce_tests! :test_type_cast_ar_object
369
337
  def test_type_cast_ar_object_coerced
370
338
  value = DatetimePrimaryKey.new(id: @time)
371
- assert_equal "02-14-2017 12:34:56.79", @connection.type_cast(value)
339
+ assert_equal "02-14-2017 12:34:56.79", @connection.type_cast(value)
372
340
  end
373
341
  end
374
342
  end
375
343
  end
376
344
 
377
-
378
-
379
-
380
345
  module ActiveRecord
381
346
  class Migration
382
347
  class ColumnAttributesTest < ActiveRecord::TestCase
@@ -391,16 +356,13 @@ module ActiveRecord
391
356
  end
392
357
  end
393
358
 
394
-
395
-
396
-
397
359
  module ActiveRecord
398
360
  class Migration
399
361
  class ColumnsTest < ActiveRecord::TestCase
400
362
  # Our defaults are real 70000 integers vs '70000' strings.
401
363
  coerce_tests! :test_rename_column_preserves_default_value_not_null
402
364
  def test_rename_column_preserves_default_value_not_null_coerced
403
- add_column 'test_models', 'salary', :integer, :default => 70000
365
+ add_column "test_models", "salary", :integer, :default => 70000
404
366
  default_before = connection.columns("test_models").find { |c| c.name == "salary" }.default
405
367
  assert_equal 70000, default_before
406
368
  rename_column "test_models", "salary", "annual_salary"
@@ -416,9 +378,9 @@ module ActiveRecord
416
378
  add_column "test_models", :hat_size, :integer
417
379
  add_column "test_models", :hat_style, :string, :limit => 100
418
380
  add_index "test_models", ["hat_style", "hat_size"], :unique => true
419
- assert_equal 1, connection.indexes('test_models').size
381
+ assert_equal 1, connection.indexes("test_models").size
420
382
  remove_column("test_models", "hat_size")
421
- assert_equal [], connection.indexes('test_models').map(&:name)
383
+ assert_equal [], connection.indexes("test_models").map(&:name)
422
384
  end
423
385
 
424
386
  # Choose `StatementInvalid` vs `ActiveRecordError`.
@@ -433,9 +395,6 @@ module ActiveRecord
433
395
  end
434
396
  end
435
397
 
436
-
437
-
438
-
439
398
  class MigrationTest < ActiveRecord::TestCase
440
399
  # We do not have do the DecimalWithoutScale type.
441
400
  coerce_tests! :test_add_table_with_decimals
@@ -459,7 +418,7 @@ class MigrationTest < ActiveRecord::TestCase
459
418
  assert_not_nil b.my_house_population
460
419
  assert_not_nil b.value_of_e
461
420
  assert_kind_of BigDecimal, b.world_population
462
- assert_equal '6000000000.0', b.world_population.to_s
421
+ assert_equal "6000000000.0", b.world_population.to_s
463
422
  assert_kind_of Integer, b.my_house_population
464
423
  assert_equal 3, b.my_house_population
465
424
  assert_kind_of BigDecimal, b.bank_balance
@@ -475,9 +434,6 @@ class MigrationTest < ActiveRecord::TestCase
475
434
  coerce_tests! :test_internal_metadata_stores_environment
476
435
  end
477
436
 
478
-
479
-
480
-
481
437
  class CoreTest < ActiveRecord::TestCase
482
438
  # I think fixtures are using the wrong time zone and the `:first`
483
439
  # `topics`.`bonus_time` attribute of 2005-01-30t15:28:00.00+01:00 is
@@ -485,9 +441,6 @@ class CoreTest < ActiveRecord::TestCase
485
441
  coerce_tests! :test_pretty_print_persisted
486
442
  end
487
443
 
488
-
489
-
490
-
491
444
  module ActiveRecord
492
445
  module ConnectionAdapters
493
446
  # Just like PostgreSQLAdapter does.
@@ -501,23 +454,26 @@ module ActiveRecord
501
454
  end
502
455
  end
503
456
 
504
-
505
-
506
-
507
457
  module ActiveRecord
508
458
  # The original module is hardcoded for PostgreSQL/SQLite/MySQL tests.
509
459
  module DatabaseTasksSetupper
510
460
  def setup
511
461
  @sqlserver_tasks =
512
- Class.new do
513
- def create; end
514
- def drop; end
515
- def purge; end
516
- def charset; end
517
- def collation; end
518
- def structure_dump(*); end
519
- def structure_load(*); end
520
- end.new
462
+ Class.new do
463
+ def create; end
464
+
465
+ def drop; end
466
+
467
+ def purge; end
468
+
469
+ def charset; end
470
+
471
+ def collation; end
472
+
473
+ def structure_dump(*); end
474
+
475
+ def structure_load(*); end
476
+ end.new
521
477
 
522
478
  $stdout, @original_stdout = StringIO.new, $stdout
523
479
  $stderr, @original_stderr = StringIO.new, $stderr
@@ -580,7 +536,6 @@ module ActiveRecord
580
536
  end
581
537
  end
582
538
  end
583
-
584
539
  end
585
540
 
586
541
  class DatabaseTasksCollationTest < ActiveRecord::TestCase
@@ -603,8 +558,8 @@ module ActiveRecord
603
558
  def test_sqlserver_structure_dump
604
559
  with_stubbed_new do
605
560
  assert_called_with(
606
- eval("@sqlserver_tasks"), :structure_dump,
607
- ["awesome-file.sql", nil]
561
+ eval("@sqlserver_tasks"), :structure_dump,
562
+ ["awesome-file.sql", nil]
608
563
  ) do
609
564
  ActiveRecord::Tasks::DatabaseTasks.structure_dump({ "adapter" => :sqlserver }, "awesome-file.sql")
610
565
  end
@@ -619,9 +574,9 @@ module ActiveRecord
619
574
  def test_sqlserver_structure_load
620
575
  with_stubbed_new do
621
576
  assert_called_with(
622
- eval("@sqlserver_tasks"),
623
- :structure_load,
624
- ["awesome-file.sql", nil]
577
+ eval("@sqlserver_tasks"),
578
+ :structure_load,
579
+ ["awesome-file.sql", nil]
625
580
  ) do
626
581
  ActiveRecord::Tasks::DatabaseTasks.structure_load({ "adapter" => :sqlserver }, "awesome-file.sql")
627
582
  end
@@ -631,7 +586,7 @@ module ActiveRecord
631
586
 
632
587
  class DatabaseTasksDumpSchemaCacheTest < ActiveRecord::TestCase
633
588
  # Skip this test with /tmp/my_schema_cache.yml path on Windows.
634
- coerce_tests! :test_dump_schema_cache if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
589
+ coerce_tests! :test_dump_schema_cache if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
635
590
  end
636
591
 
637
592
  class DatabaseTasksCreateAllTest < ActiveRecord::TestCase
@@ -645,9 +600,6 @@ module ActiveRecord
645
600
  end
646
601
  end
647
602
 
648
-
649
-
650
-
651
603
  class DefaultScopingTest < ActiveRecord::TestCase
652
604
  # We are not doing order duplicate removal anymore.
653
605
  coerce_tests! :test_order_in_default_scope_should_not_prevail
@@ -661,16 +613,13 @@ class DefaultScopingTest < ActiveRecord::TestCase
661
613
  end
662
614
  end
663
615
 
664
-
665
-
666
-
667
- require 'models/post'
668
- require 'models/subscriber'
616
+ require "models/post"
617
+ require "models/subscriber"
669
618
  class EachTest < ActiveRecord::TestCase
670
619
  # Quoting in tests does not cope with bracket quoting.
671
620
  coerce_tests! :test_find_in_batches_should_quote_batch_order
672
621
  def test_find_in_batches_should_quote_batch_order_coerced
673
- c = Post.connection
622
+ Post.connection
674
623
  assert_sql(/ORDER BY \[posts\]\.\[id\]/) do
675
624
  Post.find_in_batches(:batch_size => 1) do |batch|
676
625
  assert_kind_of Array, batch
@@ -682,7 +631,7 @@ class EachTest < ActiveRecord::TestCase
682
631
  # Quoting in tests does not cope with bracket quoting.
683
632
  coerce_tests! :test_in_batches_should_quote_batch_order
684
633
  def test_in_batches_should_quote_batch_order_coerced
685
- c = Post.connection
634
+ Post.connection
686
635
  assert_sql(/ORDER BY \[posts\]\.\[id\]/) do
687
636
  Post.in_batches(of: 1) do |relation|
688
637
  assert_kind_of ActiveRecord::Relation, relation
@@ -692,9 +641,6 @@ class EachTest < ActiveRecord::TestCase
692
641
  end
693
642
  end
694
643
 
695
-
696
-
697
-
698
644
  class EagerAssociationTest < ActiveRecord::TestCase
699
645
  # Use LEN() vs length() function.
700
646
  coerce_tests! :test_count_with_include
@@ -706,10 +652,7 @@ class EagerAssociationTest < ActiveRecord::TestCase
706
652
  coerce_tests! %r{including association based on sql condition and no database column}
707
653
  end
708
654
 
709
-
710
-
711
-
712
- require 'models/topic'
655
+ require "models/topic"
713
656
  class FinderTest < ActiveRecord::TestCase
714
657
  # We have implicit ordering, via FETCH.
715
658
  coerce_tests! %r{doesn't have implicit ordering},
@@ -737,7 +680,7 @@ class FinderTest < ActiveRecord::TestCase
737
680
  # Can not use array condition due to not finding right type and hence fractional second quoting.
738
681
  coerce_tests! :test_condition_utc_time_interpolation_with_default_timezone_local
739
682
  def test_condition_utc_time_interpolation_with_default_timezone_local_coerced
740
- with_env_tz 'America/New_York' do
683
+ with_env_tz "America/New_York" do
741
684
  with_timezone_config default: :local do
742
685
  topic = Topic.first
743
686
  assert_equal topic, Topic.where(written_on: topic.written_on.getutc).first
@@ -748,7 +691,7 @@ class FinderTest < ActiveRecord::TestCase
748
691
  # Can not use array condition due to not finding right type and hence fractional second quoting.
749
692
  coerce_tests! :test_condition_local_time_interpolation_with_default_timezone_utc
750
693
  def test_condition_local_time_interpolation_with_default_timezone_utc_coerced
751
- with_env_tz 'America/New_York' do
694
+ with_env_tz "America/New_York" do
752
695
  with_timezone_config default: :utc do
753
696
  topic = Topic.first
754
697
  assert_equal topic, Topic.where(written_on: topic.written_on.getlocal).first
@@ -757,9 +700,6 @@ class FinderTest < ActiveRecord::TestCase
757
700
  end
758
701
  end
759
702
 
760
-
761
-
762
-
763
703
  module ActiveRecord
764
704
  class Migration
765
705
  class ForeignKeyTest < ActiveRecord::TestCase
@@ -777,9 +717,6 @@ module ActiveRecord
777
717
  end
778
718
  end
779
719
 
780
-
781
-
782
-
783
720
  class HasOneAssociationsTest < ActiveRecord::TestCase
784
721
  # We use OFFSET/FETCH vs TOP. So we always have an order.
785
722
  coerce_tests! :test_has_one_does_not_use_order_by
@@ -796,9 +733,6 @@ class HasOneAssociationsTest < ActiveRecord::TestCase
796
733
  end
797
734
  end
798
735
 
799
-
800
-
801
-
802
736
  class HasOneThroughAssociationsTest < ActiveRecord::TestCase
803
737
  # Asserted SQL to get one row different from original test.
804
738
  coerce_tests! :test_has_one_through_executes_limited_query
@@ -810,16 +744,12 @@ class HasOneThroughAssociationsTest < ActiveRecord::TestCase
810
744
  end
811
745
  end
812
746
 
813
-
814
-
815
-
816
-
817
- require 'models/company'
747
+ require "models/company"
818
748
  class InheritanceTest < ActiveRecord::TestCase
819
749
  # Rails test required inserting to a identity column.
820
750
  coerce_tests! :test_a_bad_type_column
821
751
  def test_a_bad_type_column_coerced
822
- Company.connection.with_identity_insert_enabled('companies') do
752
+ Company.connection.with_identity_insert_enabled("companies") do
823
753
  Company.connection.insert "INSERT INTO companies (id, #{QUOTED_TYPE}, name) VALUES(100, 'bad_class!', 'Not happening')"
824
754
  end
825
755
  assert_raise(ActiveRecord::SubclassNotFound) { Company.find(100) }
@@ -828,45 +758,36 @@ class InheritanceTest < ActiveRecord::TestCase
828
758
  # Use Square brackets around column name
829
759
  coerce_tests! :test_eager_load_belongs_to_primary_key_quoting
830
760
  def test_eager_load_belongs_to_primary_key_quoting_coerced
831
- con = Account.connection
761
+ Account.connection
832
762
  assert_sql(/\[companies\]\.\[id\] = @0.* @0 = 1/) do
833
763
  Account.all.merge!(:includes => :firm).find(1)
834
764
  end
835
765
  end
836
766
  end
837
767
 
838
-
839
-
840
-
841
768
  class LeftOuterJoinAssociationTest < ActiveRecord::TestCase
842
769
  # Uses || operator in SQL. Just trust core gets value out of this test.
843
770
  coerce_tests! :test_does_not_override_select
844
771
  end
845
772
 
846
-
847
-
848
-
849
- require 'models/developer'
850
- require 'models/computer'
773
+ require "models/developer"
774
+ require "models/computer"
851
775
  class NestedRelationScopingTest < ActiveRecord::TestCase
852
776
  # Assert SQL Server limit implementation
853
777
  coerce_tests! :test_merge_options
854
778
  def test_merge_options_coerced
855
- Developer.where('salary = 80000').scoping do
779
+ Developer.where("salary = 80000").scoping do
856
780
  Developer.limit(10).scoping do
857
781
  devs = Developer.all
858
782
  sql = devs.to_sql
859
- assert_match '(salary = 80000)', sql
860
- assert_match 'FETCH NEXT 10 ROWS ONLY', sql
783
+ assert_match "(salary = 80000)", sql
784
+ assert_match "FETCH NEXT 10 ROWS ONLY", sql
861
785
  end
862
786
  end
863
787
  end
864
788
  end
865
789
 
866
-
867
-
868
-
869
- require 'models/topic'
790
+ require "models/topic"
870
791
  class PersistenceTest < ActiveRecord::TestCase
871
792
  # Rails test required updating a identity column.
872
793
  coerce_tests! :test_update_columns_changing_id
@@ -890,10 +811,7 @@ class PersistenceTest < ActiveRecord::TestCase
890
811
  end
891
812
  end
892
813
 
893
-
894
-
895
-
896
- require 'models/author'
814
+ require "models/author"
897
815
  class UpdateAllTest < ActiveRecord::TestCase
898
816
  # Rails test required updating a identity column.
899
817
  coerce_tests! :test_update_all_doesnt_ignore_order
@@ -903,17 +821,14 @@ class UpdateAllTest < ActiveRecord::TestCase
903
821
  _(mary.id).must_equal 2
904
822
  _(david.name).wont_equal mary.name
905
823
  assert_sql(/UPDATE.*\(SELECT \[authors\].\[id\] FROM \[authors\].*ORDER BY \[authors\].\[id\]/i) do
906
- Author.where('[id] > 1').order(:id).update_all(name: 'Test')
824
+ Author.where("[id] > 1").order(:id).update_all(name: "Test")
907
825
  end
908
- _(david.reload.name).must_equal 'David'
909
- _(mary.reload.name).must_equal 'Test'
826
+ _(david.reload.name).must_equal "David"
827
+ _(mary.reload.name).must_equal "Test"
910
828
  end
911
829
  end
912
830
 
913
-
914
-
915
-
916
- require 'models/topic'
831
+ require "models/topic"
917
832
  module ActiveRecord
918
833
  class PredicateBuilderTest < ActiveRecord::TestCase
919
834
  # Same as original test except string has `N` prefix to indicate unicode string.
@@ -930,9 +845,6 @@ module ActiveRecord
930
845
  end
931
846
  end
932
847
 
933
-
934
-
935
-
936
848
  class PrimaryKeysTest < ActiveRecord::TestCase
937
849
  # SQL Server does not have query for release_savepoint
938
850
  coerce_tests! :test_create_without_primary_key_no_extra_query
@@ -945,10 +857,7 @@ class PrimaryKeysTest < ActiveRecord::TestCase
945
857
  end
946
858
  end
947
859
 
948
-
949
-
950
-
951
- require 'models/task'
860
+ require "models/task"
952
861
  class QueryCacheTest < ActiveRecord::TestCase
953
862
  # SQL Server adapter not in list of supported adapters in original test.
954
863
  coerce_tests! :test_cache_does_not_wrap_results_in_arrays
@@ -980,15 +889,12 @@ class QueryCacheTest < ActiveRecord::TestCase
980
889
  Task.find(1)
981
890
  end
982
891
 
983
- assert_includes ActiveRecord::SQLCounter.log_all.first , "TC.CONSTRAINT_TYPE = N''PRIMARY KEY''"
892
+ assert_includes ActiveRecord::SQLCounter.log_all.first, "TC.CONSTRAINT_TYPE = N''PRIMARY KEY''"
984
893
  end
985
894
  end
986
895
  end
987
896
 
988
-
989
-
990
-
991
- require 'models/post'
897
+ require "models/post"
992
898
  class RelationTest < ActiveRecord::TestCase
993
899
  # Use LEN vs LENGTH function.
994
900
  coerce_tests! :test_reverse_order_with_function
@@ -1029,7 +935,6 @@ class RelationTest < ActiveRecord::TestCase
1029
935
  assert sql_log.all? { |sql| /order by \[posts\]\.\[id\]/i.match?(sql) }, "default ORDER BY ID was not used in the query: #{sql_log}"
1030
936
  end
1031
937
 
1032
-
1033
938
  # We are not doing order duplicate removal anymore.
1034
939
  coerce_tests! :test_order_using_scoping
1035
940
 
@@ -1055,7 +960,7 @@ class RelationTest < ActiveRecord::TestCase
1055
960
 
1056
961
  # Can't apply offset without ORDER
1057
962
  coerce_tests! %r{using a custom table affects the wheres}
1058
- test 'using a custom table affects the wheres coerced' do
963
+ test "using a custom table affects the wheres coerced" do
1059
964
  post = posts(:welcome)
1060
965
 
1061
966
  assert_equal post, custom_post_relation.where!(title: post.title).order(:id).take
@@ -1063,7 +968,7 @@ class RelationTest < ActiveRecord::TestCase
1063
968
 
1064
969
  # Can't apply offset without ORDER
1065
970
  coerce_tests! %r{using a custom table with joins affects the joins}
1066
- test 'using a custom table with joins affects the joins coerced' do
971
+ test "using a custom table with joins affects the joins coerced" do
1067
972
  post = posts(:welcome)
1068
973
 
1069
974
  assert_equal post, custom_post_relation.joins(:author).where!(title: post.title).order(:id).take
@@ -1077,10 +982,7 @@ class RelationTest < ActiveRecord::TestCase
1077
982
  end
1078
983
  end
1079
984
 
1080
-
1081
-
1082
-
1083
- require 'models/post'
985
+ require "models/post"
1084
986
  class SanitizeTest < ActiveRecord::TestCase
1085
987
  # Use nvarchar string (N'') in assert
1086
988
  coerce_tests! :test_sanitize_sql_like_example_use_case
@@ -1090,7 +992,7 @@ class SanitizeTest < ActiveRecord::TestCase
1090
992
  where("title LIKE ?", sanitize_sql_like(term, "!"))
1091
993
  end
1092
994
 
1093
- scope :search_as_scope, -> (term) {
995
+ scope :search_as_scope, ->(term) {
1094
996
  where("title LIKE ?", sanitize_sql_like(term, "!"))
1095
997
  }
1096
998
  end
@@ -1105,9 +1007,6 @@ class SanitizeTest < ActiveRecord::TestCase
1105
1007
  end
1106
1008
  end
1107
1009
 
1108
-
1109
-
1110
-
1111
1010
  class SchemaDumperTest < ActiveRecord::TestCase
1112
1011
  # We have precision to 38.
1113
1012
  coerce_tests! :test_schema_dump_keeps_large_precision_integer_columns_as_decimal
@@ -1134,26 +1033,17 @@ class SchemaDumperTest < ActiveRecord::TestCase
1134
1033
  end
1135
1034
  end
1136
1035
 
1137
-
1138
-
1139
-
1140
1036
  class SchemaDumperDefaultsTest < ActiveRecord::TestCase
1141
1037
  # These date formats do not match ours. We got these covered in our dumper tests.
1142
1038
  coerce_tests! :test_schema_dump_defaults_with_universally_supported_types
1143
1039
  end
1144
1040
 
1145
-
1146
-
1147
-
1148
1041
  class TestAdapterWithInvalidConnection < ActiveRecord::TestCase
1149
1042
  # We trust Rails on this since we do not want to install mysql.
1150
1043
  coerce_tests! %r{inspect on Model class does not raise}
1151
1044
  end
1152
1045
 
1153
-
1154
-
1155
-
1156
- require 'models/topic'
1046
+ require "models/topic"
1157
1047
  class TransactionTest < ActiveRecord::TestCase
1158
1048
  # SQL Server does not have query for release_savepoint
1159
1049
  coerce_tests! :test_releasing_named_savepoints
@@ -1167,10 +1057,7 @@ class TransactionTest < ActiveRecord::TestCase
1167
1057
  end
1168
1058
  end
1169
1059
 
1170
-
1171
-
1172
-
1173
- require 'models/tag'
1060
+ require "models/tag"
1174
1061
  class TransactionIsolationTest < ActiveRecord::TestCase
1175
1062
  # SQL Server will lock the table for counts even when both
1176
1063
  # connections are `READ COMMITTED`. So we bypass with `READPAST`.
@@ -1180,7 +1067,7 @@ class TransactionIsolationTest < ActiveRecord::TestCase
1180
1067
  assert_equal 0, Tag.count
1181
1068
  Tag2.transaction do
1182
1069
  Tag2.create
1183
- assert_equal 0, Tag.lock('WITH(READPAST)').count
1070
+ assert_equal 0, Tag.lock("WITH(READPAST)").count
1184
1071
  end
1185
1072
  end
1186
1073
  assert_equal 1, Tag.count
@@ -1190,10 +1077,7 @@ class TransactionIsolationTest < ActiveRecord::TestCase
1190
1077
  coerce_tests! %r{repeatable read}
1191
1078
  end
1192
1079
 
1193
-
1194
-
1195
-
1196
- require 'models/book'
1080
+ require "models/book"
1197
1081
  class ViewWithPrimaryKeyTest < ActiveRecord::TestCase
1198
1082
  # We have a few view tables. use includes vs equality.
1199
1083
  coerce_tests! :test_views
@@ -1205,13 +1089,10 @@ class ViewWithPrimaryKeyTest < ActiveRecord::TestCase
1205
1089
  coerce_tests! :test_does_not_assume_id_column_as_primary_key
1206
1090
  def test_does_not_assume_id_column_as_primary_key_coerced
1207
1091
  model = Class.new(ActiveRecord::Base) { self.table_name = "ebooks" }
1208
- assert_equal 'id', model.primary_key
1092
+ assert_equal "id", model.primary_key
1209
1093
  end
1210
1094
  end
1211
1095
 
1212
-
1213
-
1214
-
1215
1096
  class ViewWithoutPrimaryKeyTest < ActiveRecord::TestCase
1216
1097
  # We have a few view tables. use includes vs equality.
1217
1098
  coerce_tests! :test_views
@@ -1220,23 +1101,17 @@ class ViewWithoutPrimaryKeyTest < ActiveRecord::TestCase
1220
1101
  end
1221
1102
  end
1222
1103
 
1223
-
1224
-
1225
-
1226
- require 'models/author'
1104
+ require "models/author"
1227
1105
  class YamlSerializationTest < ActiveRecord::TestCase
1228
1106
  coerce_tests! :test_types_of_virtual_columns_are_not_changed_on_round_trip
1229
1107
  def test_types_of_virtual_columns_are_not_changed_on_round_trip_coerced
1230
- author = Author.select('authors.*, 5 as posts_count').first
1108
+ author = Author.select("authors.*, 5 as posts_count").first
1231
1109
  dumped = YAML.load(YAML.dump(author))
1232
1110
  assert_equal 5, author.posts_count
1233
1111
  assert_equal 5, dumped.posts_count
1234
1112
  end
1235
1113
  end
1236
1114
 
1237
-
1238
-
1239
-
1240
1115
  class DateTimePrecisionTest < ActiveRecord::TestCase
1241
1116
  # Original test had `7` which we support vs `8` which we use.
1242
1117
  coerce_tests! :test_invalid_datetime_precision_raises_error
@@ -1252,7 +1127,7 @@ class DateTimePrecisionTest < ActiveRecord::TestCase
1252
1127
  coerce_tests! :test_datetime_precision_is_truncated_on_assignment
1253
1128
  def test_datetime_precision_is_truncated_on_assignment_coerced
1254
1129
  @connection.create_table(:foos, force: true)
1255
- @connection.add_column :foos, :created_at, :datetime, precision: 0
1130
+ @connection.add_column :foos, :created_at, :datetime, precision: 0
1256
1131
  @connection.add_column :foos, :updated_at, :datetime, precision: 6
1257
1132
 
1258
1133
  time = ::Time.now.change(nsec: 123456789)
@@ -1269,9 +1144,6 @@ class DateTimePrecisionTest < ActiveRecord::TestCase
1269
1144
  end
1270
1145
  end
1271
1146
 
1272
-
1273
-
1274
-
1275
1147
  class TimePrecisionTest < ActiveRecord::TestCase
1276
1148
  # datetime is rounded to increments of .000, .003, or .007 seconds
1277
1149
  coerce_tests! :test_time_precision_is_truncated_on_assignment
@@ -1297,9 +1169,6 @@ class TimePrecisionTest < ActiveRecord::TestCase
1297
1169
  coerce_tests! :test_no_time_precision_isnt_truncated_on_assignment
1298
1170
  end
1299
1171
 
1300
-
1301
-
1302
-
1303
1172
  class DefaultNumbersTest < ActiveRecord::TestCase
1304
1173
  # We do better with native types and do not return strings for everything.
1305
1174
  coerce_tests! :test_default_positive_integer
@@ -1326,9 +1195,6 @@ class DefaultNumbersTest < ActiveRecord::TestCase
1326
1195
  end
1327
1196
  end
1328
1197
 
1329
-
1330
-
1331
-
1332
1198
  module ActiveRecord
1333
1199
  class CollectionCacheKeyTest < ActiveRecord::TestCase
1334
1200
  # Will trust rails has this sorted since you cant offset without a limit.
@@ -1336,9 +1202,6 @@ module ActiveRecord
1336
1202
  end
1337
1203
  end
1338
1204
 
1339
-
1340
-
1341
-
1342
1205
  module ActiveRecord
1343
1206
  class CacheKeyTest < ActiveRecord::TestCase
1344
1207
  # Like Mysql2 and PostgreSQL, SQL Server doesn't return a string value for updated_at. In the Rails tests
@@ -1349,9 +1212,6 @@ module ActiveRecord
1349
1212
  end
1350
1213
  end
1351
1214
 
1352
-
1353
-
1354
-
1355
1215
  require "models/book"
1356
1216
  module ActiveRecord
1357
1217
  class StatementCacheTest < ActiveRecord::TestCase
@@ -1370,28 +1230,23 @@ module ActiveRecord
1370
1230
  end
1371
1231
  end
1372
1232
 
1373
-
1374
-
1375
-
1376
1233
  module ActiveRecord
1377
1234
  module ConnectionAdapters
1378
1235
  class SchemaCacheTest < ActiveRecord::TestCase
1379
1236
  private
1237
+
1380
1238
  # We need to give the full path for this to work.
1381
1239
  def schema_dump_path
1382
- File.join ARTest::SQLServer.root_activerecord, 'test/assets/schema_dump_5_1.yml'
1240
+ File.join ARTest::SQLServer.root_activerecord, "test/assets/schema_dump_5_1.yml"
1383
1241
  end
1384
1242
  end
1385
1243
  end
1386
1244
  end
1387
1245
 
1388
-
1389
-
1390
-
1391
1246
  class UnsafeRawSqlTest < ActiveRecord::TestCase
1392
- # Use LEN() vs length() function.
1247
+ # Use LEN() vs length() function.
1393
1248
  coerce_tests! %r{order: always allows Arel}
1394
- test 'order: always allows Arel' do
1249
+ test "order: always allows Arel" do
1395
1250
  ids_depr = with_unsafe_raw_sql_deprecated { Post.order(Arel.sql("len(title)")).pluck(:title) }
1396
1251
  ids_disabled = with_unsafe_raw_sql_disabled { Post.order(Arel.sql("len(title)")).pluck(:title) }
1397
1252
 
@@ -1420,9 +1275,6 @@ class UnsafeRawSqlTest < ActiveRecord::TestCase
1420
1275
  end
1421
1276
  end
1422
1277
 
1423
-
1424
-
1425
-
1426
1278
  class ReservedWordTest < ActiveRecord::TestCase
1427
1279
  coerce_tests! :test_change_columns
1428
1280
  def test_change_columns_coerced
@@ -1433,33 +1285,27 @@ class ReservedWordTest < ActiveRecord::TestCase
1433
1285
  end
1434
1286
  end
1435
1287
 
1436
-
1437
-
1438
-
1439
1288
  class OptimisticLockingTest < ActiveRecord::TestCase
1440
1289
  # We do not allow updating identities, but we can test using a non-identity key
1441
1290
  coerce_tests! :test_update_with_dirty_primary_key
1442
1291
  def test_update_with_dirty_primary_key_coerced
1443
1292
  assert_raises(ActiveRecord::RecordNotUnique) do
1444
- record = StringKeyObject.find('record1')
1445
- record.id = 'record2'
1293
+ record = StringKeyObject.find("record1")
1294
+ record.id = "record2"
1446
1295
  record.save!
1447
1296
  end
1448
1297
 
1449
- record = StringKeyObject.find('record1')
1450
- record.id = 'record42'
1298
+ record = StringKeyObject.find("record1")
1299
+ record.id = "record42"
1451
1300
  record.save!
1452
1301
 
1453
- assert StringKeyObject.find('record42')
1302
+ assert StringKeyObject.find("record42")
1454
1303
  assert_raises(ActiveRecord::RecordNotFound) do
1455
- StringKeyObject.find('record1')
1304
+ StringKeyObject.find("record1")
1456
1305
  end
1457
1306
  end
1458
1307
  end
1459
1308
 
1460
-
1461
-
1462
-
1463
1309
  class RelationMergingTest < ActiveRecord::TestCase
1464
1310
  # Use nvarchar string (N'') in assert
1465
1311
  coerce_tests! :test_merging_with_order_with_binds
@@ -1469,9 +1315,6 @@ class RelationMergingTest < ActiveRecord::TestCase
1469
1315
  end
1470
1316
  end
1471
1317
 
1472
-
1473
-
1474
-
1475
1318
  module ActiveRecord
1476
1319
  class DatabaseTasksTruncateAllTest < ActiveRecord::TestCase
1477
1320
  # SQL Server does not allow truncation of tables that are referenced by foreign key
@@ -1481,9 +1324,6 @@ module ActiveRecord
1481
1324
  end
1482
1325
  end
1483
1326
 
1484
-
1485
-
1486
-
1487
1327
  require "models/book"
1488
1328
  class EnumTest < ActiveRecord::TestCase
1489
1329
  # Need to remove index as SQL Server considers NULLs on a unique-index to be equal unlike PostgreSQL/MySQL/SQLite.
@@ -1527,13 +1367,8 @@ class EnumTest < ActiveRecord::TestCase
1527
1367
  end
1528
1368
  end
1529
1369
 
1530
-
1531
-
1532
-
1533
-
1534
- require 'models/task'
1370
+ require "models/task"
1535
1371
  class QueryCacheExpiryTest < ActiveRecord::TestCase
1536
-
1537
1372
  # SQL Server does not support skipping or upserting duplicates.
1538
1373
  coerce_tests! :test_insert_all
1539
1374
  def test_insert_all_coerced
@@ -1563,9 +1398,7 @@ class QueryCacheExpiryTest < ActiveRecord::TestCase
1563
1398
  end
1564
1399
  end
1565
1400
 
1566
-
1567
-
1568
- require 'models/citation'
1401
+ require "models/citation"
1569
1402
  class EagerLoadingTooManyIdsTest < ActiveRecord::TestCase
1570
1403
  # Original Rails test fails with SQL Server error message "The query processor ran out of internal resources and
1571
1404
  # could not produce a query plan". This error goes away if you change database compatibility level to 110 (SQL 2012)
@@ -1587,9 +1420,6 @@ class EagerLoadingTooManyIdsTest < ActiveRecord::TestCase
1587
1420
  end
1588
1421
  end
1589
1422
 
1590
-
1591
-
1592
-
1593
1423
  class LogSubscriberTest < ActiveRecord::TestCase
1594
1424
  # Call original test from coerced test. Fixes issue on CI with Rails installed as a gem.
1595
1425
  coerce_tests! :test_vebose_query_logs
@@ -1598,9 +1428,6 @@ class LogSubscriberTest < ActiveRecord::TestCase
1598
1428
  end
1599
1429
  end
1600
1430
 
1601
-
1602
-
1603
-
1604
1431
  class ActiveRecordSchemaTest < ActiveRecord::TestCase
1605
1432
  # Workaround for randomly failing test.
1606
1433
  coerce_tests! :test_has_primary_key
@@ -1610,9 +1437,6 @@ class ActiveRecordSchemaTest < ActiveRecord::TestCase
1610
1437
  end
1611
1438
  end
1612
1439
 
1613
-
1614
-
1615
-
1616
1440
  module ActiveRecord
1617
1441
  module ConnectionAdapters
1618
1442
  class ReaperTest < ActiveRecord::TestCase
@@ -1622,19 +1446,13 @@ module ActiveRecord
1622
1446
  end
1623
1447
  end
1624
1448
 
1625
-
1626
-
1627
-
1628
1449
  class FixturesTest < ActiveRecord::TestCase
1629
1450
  # Skip test on Windows. Skip can be removed when Rails PR https://github.com/rails/rails/pull/39234 has been merged.
1630
- coerce_tests! :test_binary_in_fixtures if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
1451
+ coerce_tests! :test_binary_in_fixtures if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
1631
1452
  end
1632
1453
 
1633
-
1634
-
1635
-
1636
1454
  class ReloadModelsTest < ActiveRecord::TestCase
1637
1455
  # Skip test on Windows. The number of arguements passed to `IO.popen` in
1638
1456
  # `activesupport/lib/active_support/testing/isolation.rb` exceeds what Windows can handle.
1639
- coerce_tests! :test_has_one_with_reload if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
1457
+ coerce_tests! :test_has_one_with_reload if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
1640
1458
  end