Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
use Rspec stub_const
  • Loading branch information
jwaldrip committed Jan 6, 2013
1 parent 7eab55e commit ed5aa71
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 34 deletions.
22 changes: 17 additions & 5 deletions 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
Expand Down Expand Up @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions spec/memory_model/base/attributable_spec.rb
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -120,7 +120,7 @@
end

describe '#clear_attribute' do
let(:klass) do
let(:model) do
Class.new(MemoryModel::Base) do
field :foo
end
Expand Down
11 changes: 8 additions & 3 deletions spec/memory_model/base/collectable_spec.rb
Expand Up @@ -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

Expand Down
24 changes: 12 additions & 12 deletions 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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
17 changes: 10 additions & 7 deletions spec/memory_model/base/versionable_spec.rb
Expand Up @@ -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

Expand Down
7 changes: 5 additions & 2 deletions spec/memory_model/collection_spec.rb
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down

0 comments on commit ed5aa71

Please sign in to comment.