diff options
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 |