Sha256: 87fd8fa4719548c6ab824091f2bba16e70d57e3969c375b6f24345ae008dac6c
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
describe 'db' do before do class Document include Yapper::Document field :field_1 field :field_2 end class AnotherDocument include Yapper::Document field :field_1 field :field_2 end end before { Yapper::DB.instance.purge } after { Object.send(:remove_const, 'Document') } after { Object.send(:remove_const, 'AnotherDocument') } it 'is thread safe' do threads = [] threads << Thread.new { 10.times { Document.create(:field_1 => 'field') } } threads << Thread.new { 10.times { AnotherDocument.create(:field_1 => 'field') } } threads << Thread.new { 10.times { Document.all.each { |d| d.update_attributes(:field_1 => 'bye') } } } threads << Thread.new { 10.times { AnotherDocument.all.each { |d| d.update_attributes(:field_1 => 'bye') } } } threads.each(&:join) Document.all.count.should == 10 AnotherDocument.all.count.should == 10 end it 'can nest transactions' do Yapper::DB.instance.execute do |txn| Document.create(:field_1 => '1') Document.create(:field_1 => '2') end Document.all.count.should == 2 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
motion-yapper-0.0.1 | spec/integration/db_spec.rb |