free_mutant/spec/unit/mutant/mutator/emit_spec.rb
2012-12-06 21:30:28 +01:00

52 lines
1 KiB
Ruby

require 'spec_helper'
describe Mutant::Mutator, '#emit' do
subject { object.send(:emit, generated) }
class Block
def arguments; @arguments; end
def called?
defined?(@arguments)
end
def call(*arguments)
@arguments = arguments
end
end
let(:object) { class_under_test.new(input, block) }
let(:block) { Block.new }
let(:input) { :nput }
let(:class_under_test) do
Class.new(described_class) do
def dispatch
#noop
end
end
end
context 'with generated that is not equal to input' do
let(:generated) { :generated }
it 'should call block' do
subject
block.should be_called
end
it 'should call block with generated' do
subject
block.arguments.should eql([generated])
end
end
context 'with generated object that is equal to input' do
let(:generated) { input }
it 'should not call block' do
subject
block.should_not be_called
end
end
end