aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/column_test.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-05-17 11:04:13 -0600
committerSean Griffin <sean@thoughtbot.com>2014-05-17 17:16:05 -0600
commit4bd5dffc85a4f3a660132eb85806a03fa5904e51 (patch)
treeb14a3eecebc85ce6f70a49ee54a466e10912010e /activerecord/test/cases/column_test.rb
parent7359f8190d0ac97db077096796bdc582dffa90d8 (diff)
downloadrails-4bd5dffc85a4f3a660132eb85806a03fa5904e51.tar.gz
rails-4bd5dffc85a4f3a660132eb85806a03fa5904e51.tar.bz2
rails-4bd5dffc85a4f3a660132eb85806a03fa5904e51.zip
Add a type object to Column constructor
Part of #15134. In order to perform typecasting polymorphically, we need to add another argument to the constructor. The order was chosen to match the `oid_type` on `PostgreSQLColumn`.
Diffstat (limited to 'activerecord/test/cases/column_test.rb')
-rw-r--r--activerecord/test/cases/column_test.rb30
1 files changed, 15 insertions, 15 deletions
diff --git a/activerecord/test/cases/column_test.rb b/activerecord/test/cases/column_test.rb
index 39489c3718..c2135d75da 100644
--- a/activerecord/test/cases/column_test.rb
+++ b/activerecord/test/cases/column_test.rb
@@ -5,7 +5,7 @@ module ActiveRecord
module ConnectionAdapters
class ColumnTest < ActiveRecord::TestCase
def test_type_cast_boolean
- column = Column.new("field", nil, "boolean")
+ column = Column.new("field", nil, Type::Value.new, "boolean")
assert column.type_cast('').nil?
assert column.type_cast(nil).nil?
@@ -36,14 +36,14 @@ module ActiveRecord
end
def test_type_cast_string
- column = Column.new("field", nil, "varchar")
+ column = Column.new("field", nil, Type::Value.new, "varchar")
assert_equal "1", column.type_cast(true)
assert_equal "0", column.type_cast(false)
assert_equal "123", column.type_cast(123)
end
def test_type_cast_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
assert_equal 1, column.type_cast(1)
assert_equal 1, column.type_cast('1')
assert_equal 1, column.type_cast('1ignore')
@@ -56,50 +56,50 @@ module ActiveRecord
end
def test_type_cast_non_integer_to_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
assert_nil column.type_cast([1,2])
assert_nil column.type_cast({1 => 2})
assert_nil column.type_cast((1..2))
end
def test_type_cast_activerecord_to_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
firm = Firm.create(:name => 'Apple')
assert_nil column.type_cast(firm)
end
def test_type_cast_object_without_to_i_to_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
assert_nil column.type_cast(Object.new)
end
def test_type_cast_nan_and_infinity_to_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
assert_nil column.type_cast(Float::NAN)
assert_nil column.type_cast(1.0/0.0)
end
def test_type_cast_float
- column = Column.new("field", nil, "float")
+ column = Column.new("field", nil, Type::Value.new, "float")
assert_equal 1.0, column.type_cast("1")
end
def test_type_cast_decimal
- column = Column.new("field", nil, "decimal")
+ column = Column.new("field", nil, Type::Value.new, "decimal")
assert_equal BigDecimal.new("0"), column.type_cast(BigDecimal.new("0"))
assert_equal BigDecimal.new("123"), column.type_cast(123.0)
assert_equal BigDecimal.new("1"), column.type_cast(:"1")
end
def test_type_cast_binary
- column = Column.new("field", nil, "binary")
+ column = Column.new("field", nil, Type::Value.new, "binary")
assert_equal nil, column.type_cast(nil)
assert_equal "1", column.type_cast("1")
assert_equal 1, column.type_cast(1)
end
def test_type_cast_time
- column = Column.new("field", nil, "time")
+ column = Column.new("field", nil, Type::Value.new, "time")
assert_equal nil, column.type_cast(nil)
assert_equal nil, column.type_cast('')
assert_equal nil, column.type_cast('ABC')
@@ -109,7 +109,7 @@ module ActiveRecord
end
def test_type_cast_datetime_and_timestamp
- [Column.new("field", nil, "datetime"), Column.new("field", nil, "timestamp")].each do |column|
+ [Column.new("field", nil, Type::Value.new, "datetime"), Column.new("field", nil, Type::Value.new, "timestamp")].each do |column|
assert_equal nil, column.type_cast(nil)
assert_equal nil, column.type_cast('')
assert_equal nil, column.type_cast(' ')
@@ -121,7 +121,7 @@ module ActiveRecord
end
def test_type_cast_date
- column = Column.new("field", nil, "date")
+ column = Column.new("field", nil, Type::Value.new, "date")
assert_equal nil, column.type_cast(nil)
assert_equal nil, column.type_cast('')
assert_equal nil, column.type_cast(' ')
@@ -132,7 +132,7 @@ module ActiveRecord
end
def test_type_cast_duration_to_integer
- column = Column.new("field", nil, "integer")
+ column = Column.new("field", nil, Type::Value.new, "integer")
assert_equal 1800, column.type_cast(30.minutes)
assert_equal 7200, column.type_cast(2.hours)
end
@@ -147,7 +147,7 @@ module ActiveRecord
if current_adapter?(:SQLite3Adapter)
def test_binary_encoding
- column = SQLite3Column.new("field", nil, "binary")
+ column = SQLite3Column.new("field", nil, Type::Value.new, "binary")
utf8_string = "a string".encode(Encoding::UTF_8)
type_cast = column.type_cast(utf8_string)