Sha256: 590dcc856611e4c33ea8db53c50e558144af2b3a7ce3adfd5b8ae927dada0cac

Contents?: true

Size: 968 Bytes

Versions: 34

Compression:

Stored size: 968 Bytes

Contents

require 'spec_helper'

module Startback
  describe Context, "dup" do

    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

34 entries across 34 versions & 3 rubygems

Version Path
startback-0.15.3 spec/unit/context/test_dup.rb
startback-0.15.2 spec/unit/context/test_dup.rb
startback-0.15.1 spec/unit/context/test_dup.rb
startback-0.15.0 spec/unit/context/test_dup.rb
startback-0.14.4 spec/unit/context/test_dup.rb
startback-0.14.3 spec/unit/context/test_dup.rb
startback-0.14.2 spec/unit/context/test_dup.rb
startback-0.14.1 spec/unit/context/test_dup.rb
startback-0.14.0 spec/unit/context/test_dup.rb
startback-jobs-0.14.0 spec/unit/context/test_dup.rb
startback-websocket-0.14.0 spec/unit/context/test_dup.rb
startback-0.13.0 spec/unit/context/test_dup.rb
startback-0.12.3 spec/unit/context/test_dup.rb
startback-0.12.2 spec/unit/context/test_dup.rb