Merge pull request #26634 from kamipo/extract_numeric_data

Extract `NumericData` model for tests
This commit is contained in:
Rafael França 2017-05-31 15:50:08 -04:00 committed by GitHub
commit 908b136cf2
5 changed files with 81 additions and 86 deletions

@ -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

@ -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

@ -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