diff --git a/spec/memory_model/base/actionable_spec.rb b/spec/memory_model/base/actionable_spec.rb index b0a83f8..d1d9c87 100644 --- a/spec/memory_model/base/actionable_spec.rb +++ b/spec/memory_model/base/actionable_spec.rb @@ -1,22 +1,25 @@ require 'spec_helper' describe MemoryModel::Base::Actionable do - let(:klass) do - Class.new MemoryModel::Base do + let(:model) do + Class.new(MemoryModel::Base) do field :foo end end let(:value) { 'bar' } - subject(:instance) { klass.new(foo: value) } + subject(:instance) { model.new(foo: value) } + before(:each) do + stub_const('MyModel', model) + end describe '#commit' do it 'should save to the collection' do - expect { instance.commit }.to change { klass.all } + expect { instance.commit }.to change { model.all } end it 'should always be the latest record' do instance.commit - instance.commit.timestamp.should == klass.find(instance.id).timestamp + instance.commit.timestamp.should == model.find(instance.id).timestamp end it 'should have a timestamp' do @@ -52,6 +55,15 @@ end end + describe '#destroy' do + it 'should run a before callback' do + #model.before_destroy do + # puts 'destroying' + #end + instance.commit + end + end + describe '#dup' do it 'should perform a deep_dup' do instance.should_receive(:deep_dup) diff --git a/spec/memory_model/base/attributable_spec.rb b/spec/memory_model/base/attributable_spec.rb index 6309b16..fa8824b 100644 --- a/spec/memory_model/base/attributable_spec.rb +++ b/spec/memory_model/base/attributable_spec.rb @@ -2,14 +2,14 @@ describe MemoryModel::Base::Attributable do - let(:klass) do + let(:model) do Class.new(MemoryModel::Base) do field :foo field :bar end end let(:instance) do - klass.new + model.new end describe '#any_field_name' do @@ -62,7 +62,7 @@ end it 'should read not initialized' do - klass.allocate.inspect.should match /not initialized/ + model.allocate.inspect.should match /not initialized/ end end @@ -106,7 +106,7 @@ end describe '#reset_attribute_to_default' do - let(:klass) do + let(:model) do Class.new(MemoryModel::Base) do field :foo, default: 'bar' end @@ -120,7 +120,7 @@ end describe '#clear_attribute' do - let(:klass) do + let(:model) do Class.new(MemoryModel::Base) do field :foo end diff --git a/spec/memory_model/base/collectable_spec.rb b/spec/memory_model/base/collectable_spec.rb index c6813bb..a1f97ba 100644 --- a/spec/memory_model/base/collectable_spec.rb +++ b/spec/memory_model/base/collectable_spec.rb @@ -2,17 +2,22 @@ describe MemoryModel::Base::Collectable do - subject(:klass){ Class.new(MemoryModel::Base) } + let(:model) do + Class.new(MemoryModel::Base) do + field :foo + field :bar + end + end describe '.collection' do it 'should be a collection' do - klass.collection.should be_a MemoryModel::Collection + model.collection.should be_a MemoryModel::Collection end end describe '.inherited' do it 'should use its parents collection' do - Class.new(klass).collection.should == klass.collection + Class.new(model).collection.should == model.collection end end diff --git a/spec/memory_model/base/comparable_spec.rb b/spec/memory_model/base/comparable_spec.rb index 779432d..8543759 100644 --- a/spec/memory_model/base/comparable_spec.rb +++ b/spec/memory_model/base/comparable_spec.rb @@ -1,13 +1,13 @@ require 'spec_helper' describe MemoryModel::Base::Comparable do - let(:klass) do - Class.new MemoryModel::Base do + let(:model) do + Class.new(MemoryModel::Base) do field :foo end end let(:value) { 'bar' } - subject(:instance) { klass.new(foo: value) } + subject(:instance) { model.new(foo: value) } describe '#!=' do context 'given a symbolized hash' do @@ -35,8 +35,8 @@ end context 'given an instance of the same class' do - let(:valid_instance) { klass.new(foo: value) } - let(:invalid_instance) { klass.new(foo: 'baz') } + let(:valid_instance) { model.new(foo: value) } + let(:invalid_instance) { model.new(foo: 'baz') } it 'should be true when given a valid instance' do (instance != valid_instance).should be_false end @@ -86,8 +86,8 @@ end context 'given an instance of the same class' do - let(:valid_instance) { klass.new(foo: value) } - let(:invalid_instance) { klass.new(foo: 'baz') } + let(:valid_instance) { model.new(foo: value) } + let(:invalid_instance) { model.new(foo: 'baz') } it 'should be true when given a valid instance' do (instance == valid_instance).should be_true end @@ -120,8 +120,8 @@ end context 'given an instance of the same class' do - let(:valid_instance) { klass.new(foo: value) } - let(:invalid_instance) { klass.new(foo: 'baz') } + let(:valid_instance) { model.new(foo: value) } + let(:invalid_instance) { model.new(foo: 'baz') } it 'should be true when given a valid instance' do (instance === valid_instance).should be_true end @@ -132,9 +132,9 @@ end context 'given an instance of an inherited class' do - let(:inherited_klass) { Class.new(klass) } - let(:valid_instance) { inherited_klass.new(foo: value) } - let(:invalid_instance) { inherited_klass.new(foo: 'baz') } + let(:inherited_model) { Class.new(model) } + let(:valid_instance) { inherited_model.new(foo: value) } + let(:invalid_instance) { inherited_model.new(foo: 'baz') } it 'should be true when given a valid instance' do (instance === valid_instance).should be_true end diff --git a/spec/memory_model/base/versionable_spec.rb b/spec/memory_model/base/versionable_spec.rb index e33153d..2a7a957 100644 --- a/spec/memory_model/base/versionable_spec.rb +++ b/spec/memory_model/base/versionable_spec.rb @@ -2,26 +2,29 @@ describe MemoryModel::Base::Versionable do - let(:klass) do + let(:model) do Class.new(MemoryModel::Base) end - let(:model) do - klass.new + let(:instance) do + model.new + end + before(:each) do + stub_const('MyModel', model) end describe '#versions' do it 'should have a number of versions' do 10.times.each do |index| - model.versions.size.should == index - model.commit + instance.versions.size.should == index + instance.commit end end end describe '#version' do it 'should be the latest version' do - 3.times.each { model.commit } - model.version.should == model.versions.keys.last + 3.times.each { instance.commit } + instance.version.should == instance.versions.keys.last end end diff --git a/spec/memory_model/collection_spec.rb b/spec/memory_model/collection_spec.rb index 6cff23d..12fcc75 100644 --- a/spec/memory_model/collection_spec.rb +++ b/spec/memory_model/collection_spec.rb @@ -5,6 +5,9 @@ let(:klass) { MemoryModel::Collection } let(:model) { Class.new(MemoryModel::Base) } subject(:collection) { model.collection } + before(:each) do + stub_const('MyModel', model) + end describe '.new' do it 'should be empty' do @@ -77,7 +80,7 @@ it 'should not return a deleted object' do instance = model.new instance.commit.delete - collection.find(instance.id) + expect { collection.find(instance.id) }.to raise_error MemoryModel::RecordNotFoundError end context 'with the deleted option' do @@ -103,7 +106,7 @@ it 'should return previous version of a deleted object' do instance = model.new instance.commit.delete - collection.find(instance.id).should be_nil + expect { collection.find(instance.id) }.to raise_error MemoryModel::RecordNotFoundError collection.find(instance.id, version: 1).should be_present end end