Sha256: dda949036c0173b770e809e1dd9f75edfe0e0a3f22bda8bc4566b371b8713a4f

Contents?: true

Size: 1.15 KB

Versions: 19

Compression:

Stored size: 1.15 KB

Contents

require 'spec_helper'

describe Mutant::Mutator, '#emit_new' do
  subject { object.send(:emit_new) { 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, parent, block) }
  let(:block)  { Block.new                                  }
  let(:input)  { :input                                     }
  let(:parent) { :parent                                    }

  let(:class_under_test) do
    Class.new(described_class) do
      def dispatch
        #noop
      end
    end
  end

  context 'when new object generated' do
    let(:generated) { :generated }

    it 'should call block' do
      subject
      block.should be_called
    end

    it 'should call block with generated object' do
      subject
      block.arguments.should eql([generated])
    end
  end

  context 'when new AST could not be generated' do
    let(:generated) { input }

    it 'should raise error' do
      expect { subject }.to raise_error(RuntimeError, 'New AST could not be generated after 3 attempts')
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
mutant-0.3.0.beta21 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta20 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta19 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta18 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta17 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta16 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta15 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta14 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta13 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta12 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta11 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta10 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta9 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta8 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta7 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta6 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta5 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta4 spec/unit/mutant/mutator/emit_new_spec.rb
mutant-0.3.0.beta3 spec/unit/mutant/mutator/emit_new_spec.rb