2013-04-27 12:07:04 -04:00
|
|
|
shared_examples_for 'a method matcher' do
|
2013-06-27 16:18:07 -04:00
|
|
|
|
|
|
|
before { subject }
|
2013-04-27 12:07:04 -04:00
|
|
|
|
|
|
|
let(:node) { mutation_subject.node }
|
|
|
|
let(:context) { mutation_subject.context }
|
2013-06-25 03:37:45 -04:00
|
|
|
let(:mutation_subject) { yields.first }
|
2013-04-27 12:07:04 -04:00
|
|
|
|
|
|
|
it 'should return one subject' do
|
|
|
|
yields.size.should be(1)
|
|
|
|
end
|
|
|
|
|
|
|
|
it_should_behave_like 'an #each method'
|
|
|
|
|
|
|
|
it 'should have correct method name' do
|
|
|
|
name.should eql(method_name)
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should have correct line number' do
|
2013-06-04 13:22:33 -04:00
|
|
|
(node.location.expression.line - base).should eql(method_line)
|
2013-04-27 12:07:04 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it 'should have correct arity' do
|
2013-06-04 13:22:33 -04:00
|
|
|
arguments.children.length.should eql(method_arity)
|
2013-04-27 12:07:04 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
it 'should have correct scope in context' do
|
|
|
|
context.send(:scope).should eql(scope)
|
|
|
|
end
|
|
|
|
|
2013-06-04 13:22:33 -04:00
|
|
|
it 'should have the correct node type' do
|
|
|
|
node.type.should be(type)
|
2013-04-27 12:07:04 -04:00
|
|
|
end
|
|
|
|
end
|