Sha256: 33b1592f3ff69e8647b8e2abe291d918c580e80b5c372a6b1f382d00177ccea1

Contents?: true

Size: 1.28 KB

Versions: 6

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

6 entries across 6 versions & 4 rubygems

Version Path
datamapper-dm-core-0.9.11 spec/integration/dependency_queue_spec.rb
rpbertp13-dm-core-0.9.11.1 spec/integration/dependency_queue_spec.rb
rpbertp13-dm-core-0.9.11.2 spec/integration/dependency_queue_spec.rb
sam-dm-core-0.9.11 spec/integration/dependency_queue_spec.rb
dm-core-0.9.11 spec/integration/dependency_queue_spec.rb
dm-core-0.9.10 spec/integration/dependency_queue_spec.rb