aboutsummaryrefslogblamecommitdiffstats
path: root/activerecord/test/cases/types/number_test.rb
blob: ee7216a0f1879e4f95e4bf2d83d05549ddcd1512 (plain) (tree)





























                                                                                          
require "cases/helper"

class NumberTest < ActiveRecord::TestCase

  def setup
    @column = ActiveRecord::ConnectionAdapters::Column.new('comments_count', 0, 'integer')
    @number = ActiveRecord::Type::Number.new(@column)
  end

  test "typecast" do
    assert_equal 1, @number.cast(1)
    assert_equal 1, @number.cast('1')
    assert_equal 0, @number.cast('')

    assert_equal 0,   @number.precast(false)
    assert_equal 1,   @number.precast(true)
    assert_equal nil, @number.precast('')
    assert_equal 0,   @number.precast(0)
  end

  test "cast as boolean" do
    assert_equal true, @number.boolean('1')
    assert_equal true, @number.boolean(1)

    assert_equal false, @number.boolean(0)
    assert_equal false, @number.boolean('0')
    assert_equal false, @number.boolean(nil)
  end

end