Sha256: 7bdd587e34b2284a526c5b600996ef4d9fa58497973f4136bc93835d5fdea15e

Contents?: true

Size: 1.76 KB

Versions: 26

Compression:

Stored size: 1.76 KB

Contents

require 'spec_helper'

describe SimpleNavigation::ItemsProvider do

  before(:each) do
    @provider = stub(:provider)
    @items_provider = SimpleNavigation::ItemsProvider.new(@provider)
  end

  describe 'initialize' do
    it "should set the provider" do
      @items_provider.provider.should == @provider
    end
  end

  describe 'items' do
    before(:each) do
      @items = stub(:items)
    end
    context 'provider is symbol' do
      before(:each) do
        @items_provider.instance_variable_set(:@provider, :provider_method)
        @context = stub(:context, :provider_method => @items)
        SimpleNavigation.stub!(:context_for_eval => @context)
      end
      it "should call the method specified by symbol on the context" do
        @context.should_receive(:provider_method)
        @items_provider.items
      end
      it "should return the items returned by the helper method" do
        @items_provider.items.should == @items
      end
    end
    context 'provider responds to items' do
      before(:each) do
        @provider.stub!(:items => @items)
      end
      it "should get the items from the items_provider" do
        @provider.should_receive(:items)
        @items_provider.items
      end
      it "should return the items of the provider" do
        @items_provider.items.should == @items
      end
    end
    context 'provider is a collection' do
      before(:each) do
        @items_collection = []
        @items_provider.instance_variable_set(:@provider, @items_collection)
      end
      it "should return the collection itsself" do
        @items_provider.items.should == @items_collection
      end
    end
    context 'neither symbol nor items_provider.items nor collection' do
      it {lambda {@items_provider.items}.should raise_error}
    end
  end

end

Version data entries

26 entries across 26 versions & 3 rubygems

Version Path
jordanyeo-simple-navigation-3.11.1 spec/lib/simple_navigation/core/items_provider_spec.rb
jordanyeo-simple-navigation-3.11.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.11.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.10.1 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.10.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.9.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.8.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.7.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.6.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.5.1 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.5.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.4.2 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.4.1 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.4.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.3.4 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.3.3 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.3.2 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.3.1 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.3.0 spec/lib/simple_navigation/core/items_provider_spec.rb
simple-navigation-3.2.0 spec/lib/simple_navigation/core/items_provider_spec.rb