require File.dirname(__FILE__) + '/../spec_helper' describe Entity do describe "an object which is an entity" do class SomeEntity include Entity end before(:each) do @entity = SomeEntity.new(:identifier => 'e_id') end it "should allow creation with an identifier" do @entity.identifier.should == 'e_id' end it "should require an argument hash" do lambda{ SomeEntity.new(:foo) }.should raise_error(ArgumentError, /supply a hash/) end it "should require an identifier" do lambda{ p = SomeEntity.new({}) }.should raise_error(ArgumentError, /identifier/) end it "should allow testing against a given identifier" do @entity.is?('e_id').should be_true end it "should assign other argument hash entries to ivars & accessorize them" do entity = SomeEntity.new(:identifier => 'e_id', :foo => 'red', :bar => 'blue') entity.foo.should == 'red' entity.bar.should == 'blue' end it "should accessorize ad-hoc args for all instances of that class" do SomeEntity.new(:identifier => 'e_id', :foo => 'red', :bar => 'blue') entity = SomeEntity.new(:identifier => 'e_id', :foo => 'green') entity.foo.should == 'green' entity.bar.should == nil end end end