diff options
author | Carl Lerche <carllerche@mac.com> | 2010-03-12 14:34:13 -0800 |
---|---|---|
committer | Carl Lerche <carllerche@mac.com> | 2010-03-12 14:34:13 -0800 |
commit | 61916e408d86d19d1659cd8042de6503aecc6c98 (patch) | |
tree | 28cbadb9b39b44d993a033af5cf254655cdab58a /spec/attributes/string_spec.rb | |
parent | 83c27c0b5e2e341307b7a160d831fb930a9552b4 (diff) | |
download | rails-61916e408d86d19d1659cd8042de6503aecc6c98.tar.gz rails-61916e408d86d19d1659cd8042de6503aecc6c98.tar.bz2 rails-61916e408d86d19d1659cd8042de6503aecc6c98.zip |
Add a bunch of specs for attribute type casting.
Diffstat (limited to 'spec/attributes/string_spec.rb')
-rw-r--r-- | spec/attributes/string_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/attributes/string_spec.rb b/spec/attributes/string_spec.rb new file mode 100644 index 0000000000..f6d65dd045 --- /dev/null +++ b/spec/attributes/string_spec.rb @@ -0,0 +1,43 @@ +require 'spec_helper' +require 'bigdecimal' + +module Arel + describe "Attributes::String" do + + before :all do + @relation = Model.build do |r| + r.engine Testing::Engine.new + r.attribute :name, Attributes::String + end + end + + def type_cast(val) + @relation[:name].type_cast(val) + end + + describe "#type_cast" do + it "returns same value if passed a String" do + val = "hell" + type_cast(val).should eql(val) + end + + it "returns nil if passed nil" do + type_cast(nil).should be_nil + end + + it "returns String representation of Symbol" do + type_cast(:hello).should == "hello" + end + + it "returns string representation of Integer" do + type_cast(1).should == '1' + end + + it "calls #to_s on arbitrary objects" do + obj = Object.new + obj.extend Module.new { def to_s ; 'hello' ; end } + type_cast(obj).should == 'hello' + end + end + end +end
\ No newline at end of file |