some tests for #cleaning

This commit is contained in:
Ethan 2014-01-24 23:19:21 -05:00
parent 587d0ac6c8
commit d86e97055c
3 changed files with 36 additions and 0 deletions

View file

@ -451,6 +451,13 @@ module DatabaseCleaner
subject.clean!
end
end
describe "cleaning" do
it "should proxy cleaning to the strategy" do
strategy.should_receive(:cleaning)
subject.cleaning { }
end
end
end
describe "auto_detected?" do

View file

@ -163,6 +163,11 @@ describe ::DatabaseCleaner do
::DatabaseCleaner.clean
end
it 'should proxy cleaning' do
connection.should_receive(:cleaning)
::DatabaseCleaner.cleaning { }
end
it "should proxy clean_with" do
stratagem = double("stratgem")
connection.should_receive(:clean_with).with(stratagem, {})
@ -203,6 +208,28 @@ describe ::DatabaseCleaner do
::DatabaseCleaner.clean
end
it "should initiate cleaning on each connection, yield, and finish cleaning each connection" do
[active_record, data_mapper].each do |connection|
mc = class << connection; self; end
mc.send(:attr_reader, :started, :cleaned)
mc.send(:define_method, 'cleaning') do |&block|
@started = true
block.call
@cleaned = true
end
end
::DatabaseCleaner.cleaning do
active_record.started.should == true
data_mapper.started.should == true
active_record.cleaned.should == nil
data_mapper.cleaned.should == nil
@yielded = true
end
active_record.cleaned.should == true
data_mapper.cleaned.should == true
end
it "should proxy clean_with to all connections" do
stratagem = double("stratgem")
active_record.should_receive(:clean_with).with(stratagem)

View file

@ -5,9 +5,11 @@ end
shared_examples_for "a generic truncation strategy" do
it { should respond_to(:start) }
it { should respond_to(:clean) }
it { should respond_to(:cleaning) }
end
shared_examples_for "a generic transaction strategy" do
it { should respond_to(:start) }
it { should respond_to(:clean) }
it { should respond_to(:cleaning) }
end