| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | require 'helper'module Arel  describe 'Attributes' do    it 'responds to lower' do      relation  = Table.new(:users)      attribute = relation[:foo]      node      = attribute.lower      assert_equal 'LOWER', node.name      assert_equal [attribute], node.expressions    end    describe 'for' do      it 'deals with unknown column types' do        column = Struct.new(:type).new :crazy        Attributes.for(column).must_equal Attributes::Undefined      end      it 'returns the correct constant for strings' do        [:string, :text, :binary].each do |type|          column = Struct.new(:type).new type          Attributes.for(column).must_equal Attributes::String        end      end      it 'returns the correct constant for ints' do        column = Struct.new(:type).new :integer        Attributes.for(column).must_equal Attributes::Integer      end      it 'returns the correct constant for floats' do        column = Struct.new(:type).new :float        Attributes.for(column).must_equal Attributes::Float      end      it 'returns the correct constant for decimals' do        column = Struct.new(:type).new :decimal        Attributes.for(column).must_equal Attributes::Decimal      end      it 'returns the correct constant for boolean' do        column = Struct.new(:type).new :boolean        Attributes.for(column).must_equal Attributes::Boolean      end      it 'returns the correct constant for time' do        [:date, :datetime, :timestamp, :time].each do |type|          column = Struct.new(:type).new type          Attributes.for(column).must_equal Attributes::Time        end      end    end  endend
 |