Sha256: b4cc9747ff928767154da44f63b849baef40ba1468376d2e25a0fed99a0a9a5a

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))

describe "DataMapper::DependencyQueue" do
  before :each do
    @q = DataMapper::DependencyQueue.new
    @dependencies = @q.instance_variable_get("@dependencies")
  end

  describe "#add" do
    it "should store the supplied callback in @dependencies" do
      @q.add('MissingConstant') { true }
      @dependencies['MissingConstant'].first.call.should == true
    end
  end

  describe "#resolve!" do
    describe "(when dependency is not defined)" do
      it "should not alter @dependencies" do
        @q.add('MissingConstant') { true }
        old_dependencies = @dependencies.dup
        @q.resolve!
        old_dependencies.should == @dependencies
      end
    end

    describe "(when dependency is defined)" do
      before :each do
        @q.add('MissingConstant') { |klass| klass.instance_variable_set("@resolved", true) } # add before MissingConstant is loaded

        class MissingConstant
        end
      end

      it "should execute stored callbacks" do
        @q.resolve!
        MissingConstant.instance_variable_get("@resolved").should == true
      end

      it "should clear @dependencies" do
        @q.resolve!
        @dependencies['MissingConstant'].should be_empty
      end
    end
  end

end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
sam-dm-core-0.9.10 spec/integration/dependency_queue_spec.rb
sam-dm-core-0.9.7 spec/integration/dependency_queue_spec.rb
sam-dm-core-0.9.8 spec/integration/dependency_queue_spec.rb
sam-dm-core-0.9.9 spec/integration/dependency_queue_spec.rb
dm-core-0.9.6 spec/integration/dependency_queue_spec.rb
dm-core-0.9.7 spec/integration/dependency_queue_spec.rb
dm-core-0.9.9 spec/integration/dependency_queue_spec.rb
dm-core-0.9.8 spec/integration/dependency_queue_spec.rb