Merge pull request #26634 from kamipo/extract_numeric_data
Extract `NumericData` model for tests
This commit is contained in:
commit
908b136cf2
@ -907,80 +907,6 @@ def test_default
|
||||
end
|
||||
end
|
||||
|
||||
class NumericData < ActiveRecord::Base
|
||||
self.table_name = "numeric_data"
|
||||
|
||||
attribute :my_house_population, :integer
|
||||
attribute :atoms_in_universe, :integer
|
||||
end
|
||||
|
||||
def test_big_decimal_conditions
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43,
|
||||
big_bank_balance: BigDecimal("1000234000567.95"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
assert_equal 0, NumericData.where("bank_balance > ?", 2000.0).count
|
||||
end
|
||||
|
||||
def test_numeric_fields
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43,
|
||||
big_bank_balance: BigDecimal("1000234000567.95"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
|
||||
m1 = NumericData.find(m.id)
|
||||
assert_not_nil m1
|
||||
|
||||
# As with migration_test.rb, we should make world_population >= 2**62
|
||||
# to cover 64-bit platforms and test it is a Bignum, but the main thing
|
||||
# is that it's an Integer.
|
||||
assert_kind_of Integer, m1.world_population
|
||||
assert_equal 6000000000, m1.world_population
|
||||
|
||||
assert_kind_of Integer, m1.my_house_population
|
||||
assert_equal 3, m1.my_house_population
|
||||
|
||||
assert_kind_of BigDecimal, m1.bank_balance
|
||||
assert_equal BigDecimal("1586.43"), m1.bank_balance
|
||||
|
||||
assert_kind_of BigDecimal, m1.big_bank_balance
|
||||
assert_equal BigDecimal("1000234000567.95"), m1.big_bank_balance
|
||||
end
|
||||
|
||||
def test_numeric_fields_with_scale
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43122334,
|
||||
big_bank_balance: BigDecimal("234000567.952344"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
|
||||
m1 = NumericData.find(m.id)
|
||||
assert_not_nil m1
|
||||
|
||||
# As with migration_test.rb, we should make world_population >= 2**62
|
||||
# to cover 64-bit platforms and test it is a Bignum, but the main thing
|
||||
# is that it's an Integer.
|
||||
assert_kind_of Integer, m1.world_population
|
||||
assert_equal 6000000000, m1.world_population
|
||||
|
||||
assert_kind_of Integer, m1.my_house_population
|
||||
assert_equal 3, m1.my_house_population
|
||||
|
||||
assert_kind_of BigDecimal, m1.bank_balance
|
||||
assert_equal BigDecimal("1586.43"), m1.bank_balance
|
||||
|
||||
assert_kind_of BigDecimal, m1.big_bank_balance
|
||||
assert_equal BigDecimal("234000567.95"), m1.big_bank_balance
|
||||
end
|
||||
|
||||
def test_auto_id
|
||||
auto = AutoId.new
|
||||
auto.save
|
||||
|
@ -8,6 +8,7 @@
|
||||
require "models/possession"
|
||||
require "models/topic"
|
||||
require "models/reply"
|
||||
require "models/numeric_data"
|
||||
require "models/minivan"
|
||||
require "models/speedometer"
|
||||
require "models/ship_part"
|
||||
@ -17,14 +18,6 @@
|
||||
require "models/comment"
|
||||
require "models/rating"
|
||||
|
||||
class NumericData < ActiveRecord::Base
|
||||
self.table_name = "numeric_data"
|
||||
|
||||
attribute :world_population, :integer
|
||||
attribute :my_house_population, :integer
|
||||
attribute :atoms_in_universe, :integer
|
||||
end
|
||||
|
||||
class CalculationsTest < ActiveRecord::TestCase
|
||||
fixtures :companies, :accounts, :topics, :speedometers, :minivans, :books
|
||||
|
||||
|
@ -4,10 +4,7 @@
|
||||
require "models/parrot"
|
||||
require "models/person" # For optimistic locking
|
||||
require "models/aircraft"
|
||||
|
||||
class NumericData < ActiveRecord::Base
|
||||
self.table_name = "numeric_data"
|
||||
end
|
||||
require "models/numeric_data"
|
||||
|
||||
class DirtyTest < ActiveRecord::TestCase
|
||||
include InTimeZone
|
||||
|
71
activerecord/test/cases/numeric_data_test.rb
Normal file
71
activerecord/test/cases/numeric_data_test.rb
Normal file
@ -0,0 +1,71 @@
|
||||
require "cases/helper"
|
||||
require "models/numeric_data"
|
||||
|
||||
class NumericDataTest < ActiveRecord::TestCase
|
||||
def test_big_decimal_conditions
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43,
|
||||
big_bank_balance: BigDecimal("1000234000567.95"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
assert_equal 0, NumericData.where("bank_balance > ?", 2000.0).count
|
||||
end
|
||||
|
||||
def test_numeric_fields
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43,
|
||||
big_bank_balance: BigDecimal("1000234000567.95"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
|
||||
m1 = NumericData.find(m.id)
|
||||
assert_not_nil m1
|
||||
|
||||
# As with migration_test.rb, we should make world_population >= 2**62
|
||||
# to cover 64-bit platforms and test it is a Bignum, but the main thing
|
||||
# is that it's an Integer.
|
||||
assert_kind_of Integer, m1.world_population
|
||||
assert_equal 6000000000, m1.world_population
|
||||
|
||||
assert_kind_of Integer, m1.my_house_population
|
||||
assert_equal 3, m1.my_house_population
|
||||
|
||||
assert_kind_of BigDecimal, m1.bank_balance
|
||||
assert_equal BigDecimal("1586.43"), m1.bank_balance
|
||||
|
||||
assert_kind_of BigDecimal, m1.big_bank_balance
|
||||
assert_equal BigDecimal("1000234000567.95"), m1.big_bank_balance
|
||||
end
|
||||
|
||||
def test_numeric_fields_with_scale
|
||||
m = NumericData.new(
|
||||
bank_balance: 1586.43122334,
|
||||
big_bank_balance: BigDecimal("234000567.952344"),
|
||||
world_population: 6000000000,
|
||||
my_house_population: 3
|
||||
)
|
||||
assert m.save
|
||||
|
||||
m1 = NumericData.find(m.id)
|
||||
assert_not_nil m1
|
||||
|
||||
# As with migration_test.rb, we should make world_population >= 2**62
|
||||
# to cover 64-bit platforms and test it is a Bignum, but the main thing
|
||||
# is that it's an Integer.
|
||||
assert_kind_of Integer, m1.world_population
|
||||
assert_equal 6000000000, m1.world_population
|
||||
|
||||
assert_kind_of Integer, m1.my_house_population
|
||||
assert_equal 3, m1.my_house_population
|
||||
|
||||
assert_kind_of BigDecimal, m1.bank_balance
|
||||
assert_equal BigDecimal("1586.43"), m1.bank_balance
|
||||
|
||||
assert_kind_of BigDecimal, m1.big_bank_balance
|
||||
assert_equal BigDecimal("234000567.95"), m1.big_bank_balance
|
||||
end
|
||||
end
|
8
activerecord/test/models/numeric_data.rb
Normal file
8
activerecord/test/models/numeric_data.rb
Normal file
@ -0,0 +1,8 @@
|
||||
class NumericData < ActiveRecord::Base
|
||||
self.table_name = "numeric_data"
|
||||
# Decimal columns with 0 scale being automatically treated as integers
|
||||
# is deprecated, and will be removed in a future version of Rails.
|
||||
attribute :world_population, :big_integer
|
||||
attribute :my_house_population, :big_integer
|
||||
attribute :atoms_in_universe, :big_integer
|
||||
end
|
Loading…
Reference in New Issue
Block a user