Sha256: 1523c4160af565fb5a8364b997c50db93436bbc8e9ba08a2d5d960165aab8ad4
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 KB
Contents
require File.dirname(__FILE__) + '/../spec_helper' class Plant include CouchPotato::Persistence property :leaf_count end describe "attributes" do describe 'attributes=' do it "should assign the attributes" do plant = Plant.new plant.attributes = {:leaf_count => 1} plant.leaf_count.should == 1 end end describe "attributes" do it "should return the attributes" do plant = Plant.new(:leaf_count => 1) plant.attributes.should == {:leaf_count => 1, :created_at => nil, :updated_at => nil} end end # useful when loading models from custom views describe "accessing ghost attributes" do it "should allow me to access attributes that are in the couchdb document but not defined as a property" do plant = Plant.json_create({JSON.create_id => "Plant", "color" => "red", "leaf_count" => 1}) plant.color.should == 'red' end it "should raise a no method error when trying to read attributes that are not in the document" do plant = Plant.json_create({JSON.create_id => "Plant", "leaf_count" => 1}) lambda do plant.length end.should raise_error(NoMethodError) end it "should raise a no method error if the document hasn't been loaded from the database" do plant = Plant.new lambda do plant.length end.should raise_error(NoMethodError, /undefined method `length'/) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
couch_potato-0.2.16 | spec/unit/attributes_spec.rb |
couch_potato-0.2.15 | spec/unit/attributes_spec.rb |