Sha256: 45d705ba77b9417eb6d3e450b25b86fa749c17f5310107bc78ce8241df8389fb

Contents?: true

Size: 1017 Bytes

Versions: 13

Compression:

Stored size: 1017 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe Mutant do
  describe '.singleton_subclass_instance' do
    let(:object) { described_class }

    subject { object.singleton_subclass_instance(name, superclass, &block) }

    before { subject }

    let(:name)       { 'Test'                }
    let(:block)      { proc { def foo; end } }
    let(:superclass) { Class.new             }

    let(:generated) { superclass.const_get(:Test) }

    it_should_behave_like 'a command method'

    it 'sets expected name' do
      name = generated.class.name
      expect(name).to eql("::#{self.name}")
      expect(name).to be_frozen
    end

    it 'stores instance of subclass' do
      expect(generated).to be_kind_of(superclass)
    end

    it 'evaluates the context of proc inside subclass' do
      expect(generated).to respond_to(:foo)
    end

    it 'generates nice #inspect' do
      inspect = generated.inspect
      expect(inspect).to eql("::#{self.name}")
      expect(inspect).to be_frozen
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
mutant-0.5.12 spec/unit/mutant_spec.rb
mutant-0.5.11 spec/unit/mutant_spec.rb
mutant-0.5.10 spec/unit/mutant_spec.rb
mutant-0.5.9 spec/unit/mutant_spec.rb
mutant-0.5.8 spec/unit/mutant_spec.rb
mutant-0.5.7 spec/unit/mutant_spec.rb
mutant-0.5.6 spec/unit/mutant_spec.rb
mutant-0.5.5 spec/unit/mutant_spec.rb
mutant-0.5.4 spec/unit/mutant_spec.rb
mutant-0.5.3 spec/unit/mutant_spec.rb
mutant-0.5.2 spec/unit/mutant_spec.rb
mutant-0.5.1 spec/unit/mutant_spec.rb
mutant-0.5.0 spec/unit/mutant_spec.rb