Sha256: 7b56b82343ff4d26816066de0d1fc21c6d2929befc292a815ad56dfb91673d29

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

describe Mutant::Subject, '#each' do
  subject { object.each { |item| yields << item }   }

  let(:class_under_test) do
    Class.new(described_class)
  end

  let(:object)   { class_under_test.new(context, ast) }
  let(:root)     { mock('Root Node')                  }
  let(:ast)      { mock('Node')                       }
  let(:context)  { mock('Context', :root => root)     }
  let(:mutant)   { mock('Mutant')                     }
  let(:mutation) { mock('Mutation')                   }
  let(:yields)   { []                                 }

  before do
    Mutant::Mutator.stub(:each).with(ast).and_yield(mutant).and_return(Mutant::Mutator)
    Mutant::Mutation.stub(:new => mutation)
  end

  it_should_behave_like 'an #each method'

  it 'should initialize mutator with ast' do
    Mutant::Mutator.should_receive(:each).with(ast).and_yield(mutation).and_return(Mutant::Mutator)
    subject
  end

  it 'should yield mutations' do
    expect { subject }.to change { yields.dup }.from([]).to([mutation])
  end

  it 'should initialize mutation' do
    Mutant::Mutation.should_receive(:new).with(object, mutant).and_return(mutation)
    subject
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutant-0.3.0.beta4 spec/unit/mutant/subject/each_spec.rb
mutant-0.3.0.beta3 spec/unit/mutant/subject/each_spec.rb
mutant-0.3.0.beta2 spec/unit/mutant/subject/each_spec.rb