Sha256: 171fd7a2bb614fef0f5bc5a790b20d17069d796e8dea0d0754411ad090bde290

Contents?: true

Size: 1.67 KB

Versions: 10

Compression:

Stored size: 1.67 KB

Contents

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

describe Sunspot::SessionProxy::ShardingSessionProxy do
  before do
    search_session = Sunspot::Session.new
    @sessions = Array.new(2) { Sunspot::Session.new }
    @proxy = Sunspot::SessionProxy::IdShardingSessionProxy.new(search_session, @sessions)
  end

  [:index, :index!, :remove, :remove!].each do |method|
    it "should delegate #{method} to appropriate shard" do
      posts = [Post.new(:id => 2), Post.new(:id => 1)]
      @proxy.sessions[0].should_receive(method).with([posts[0]])
      @proxy.sessions[1].should_receive(method).with([posts[1]])
      @proxy.send(method, posts[0])
      @proxy.send(method, posts[1])
    end
  end

  [:remove_by_id, :remove_by_id!].each do |method|
    it "should delegate #{method} to appropriate session" do
      @proxy.sessions[1].should_receive(method).with(Post, [3])
      @proxy.sessions[0].should_receive(method).with(Post, [2])
      @proxy.sessions[1].should_receive(method).with(Post, [1])
      @proxy.send(method, Post, 1)
      @proxy.send(method, Post, 2)
      @proxy.send(method, Post, 3)
    end
    it "should delegate #{method} to appropriate session given splatted index ids" do
      @proxy.sessions[0].should_receive(method).with(Post, [2])
      @proxy.sessions[1].should_receive(method).with(Post, [1, 3])
      @proxy.send(method, Post, 1, 2, 3)
    end
    it "should delegate #{method} to appropriate session given array of index ids" do
      @proxy.sessions[0].should_receive(method).with(Post, [2])
      @proxy.sessions[1].should_receive(method).with(Post, [1, 3])
      @proxy.send(method, Post, [1, 2, 3])
    end
  end

  it_should_behave_like 'session proxy'
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/sunspot-2.2.7/spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.7 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.6 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.5 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.4 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.3 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.2 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.1 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.2.0 spec/api/session_proxy/id_sharding_session_proxy_spec.rb
sunspot-2.1.1 spec/api/session_proxy/id_sharding_session_proxy_spec.rb