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
|
||||||
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
|
def test_auto_id
|
||||||
auto = AutoId.new
|
auto = AutoId.new
|
||||||
auto.save
|
auto.save
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
require "models/possession"
|
require "models/possession"
|
||||||
require "models/topic"
|
require "models/topic"
|
||||||
require "models/reply"
|
require "models/reply"
|
||||||
|
require "models/numeric_data"
|
||||||
require "models/minivan"
|
require "models/minivan"
|
||||||
require "models/speedometer"
|
require "models/speedometer"
|
||||||
require "models/ship_part"
|
require "models/ship_part"
|
||||||
@ -17,14 +18,6 @@
|
|||||||
require "models/comment"
|
require "models/comment"
|
||||||
require "models/rating"
|
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
|
class CalculationsTest < ActiveRecord::TestCase
|
||||||
fixtures :companies, :accounts, :topics, :speedometers, :minivans, :books
|
fixtures :companies, :accounts, :topics, :speedometers, :minivans, :books
|
||||||
|
|
||||||
|
@ -4,10 +4,7 @@
|
|||||||
require "models/parrot"
|
require "models/parrot"
|
||||||
require "models/person" # For optimistic locking
|
require "models/person" # For optimistic locking
|
||||||
require "models/aircraft"
|
require "models/aircraft"
|
||||||
|
require "models/numeric_data"
|
||||||
class NumericData < ActiveRecord::Base
|
|
||||||
self.table_name = "numeric_data"
|
|
||||||
end
|
|
||||||
|
|
||||||
class DirtyTest < ActiveRecord::TestCase
|
class DirtyTest < ActiveRecord::TestCase
|
||||||
include InTimeZone
|
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