Sha256: 4caff0d73551a00facbba18166a5ead53ee859e4e8af54ac9f45b7ff8d931f86

Contents?: true

Size: 1.01 KB

Versions: 20

Compression:

Stored size: 1.01 KB

Contents

require 'spec_helper'

module Startback
  describe Context, "dup" do

    class Subcontext < Context
      attr_accessor :foo
    end

    let(:context) {
      Subcontext.new.tap{|s| s.foo = "bar" }
    }

    class ContextRelatedAbstraction

      def initialize(context)
        @context = context
      end
      attr_reader :context

    end

    it 'yields a dup of the original context' do
      seen = false
      got = context.dup{|x|
        seen = x
        expect(x).not_to be(context)
      }
      expect(seen).to be(got)
      expect(got).to be_a(Subcontext)
      expect(got).not_to be(context)
      expect(got.foo).to eql("bar")
    end

    it 'cleans all factored cache' do
      cra = context.factor(ContextRelatedAbstraction)
      expect(cra).to be_a(ContextRelatedAbstraction)
      cra2 = context.factor(ContextRelatedAbstraction)
      expect(cra2).to be(cra)
      cra3 = context.dup.factor(ContextRelatedAbstraction)
      expect(cra3).not_to be(cra)
      expect(cra3).not_to be(cra2)
    end

  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
startback-0.12.1 spec/unit/context/test_dup.rb
startback-0.12.0 spec/unit/context/test_dup.rb
startback-0.11.5 spec/unit/context/test_dup.rb
startback-0.11.4 spec/unit/context/test_dup.rb
startback-0.11.3 spec/unit/context/test_dup.rb
startback-0.11.0 spec/unit/context/test_dup.rb
startback-0.10.1 spec/unit/context/test_dup.rb
startback-0.10.0 spec/unit/context/test_dup.rb
startback-0.9.1 spec/unit/context/test_dup.rb
startback-0.9.0 spec/unit/context/test_dup.rb
startback-0.8.3 spec/unit/context/test_dup.rb
startback-0.8.2 spec/unit/context/test_dup.rb
startback-0.8.1 spec/unit/context/test_dup.rb
startback-0.8.0 spec/unit/context/test_dup.rb
startback-0.7.6 spec/unit/context/test_dup.rb
startback-0.7.5 spec/unit/context/test_dup.rb
startback-0.7.4 spec/unit/context/test_dup.rb
startback-0.7.3 spec/unit/context/test_dup.rb
startback-0.7.2 spec/unit/context/test_dup.rb
startback-0.7.1 spec/unit/context/test_dup.rb