Sha256: c33a4b0a658dd63798c8943a9e4a4870e54dedd89ccc630912ff11a666c16dfc

Contents?: true

Size: 1.42 KB

Versions: 37

Compression:

Stored size: 1.42 KB

Contents

require 'volt/utils/generic_pool'

class PoolTest < GenericPool
  def create(collection, query, other=nil)
    return Object.new
  end
end

describe GenericPool do

  before do
    @pool_test = PoolTest.new
  end

  it "should insert nested for fast lookup at a path" do
    item1 = @pool_test.lookup('_items', 'one')
    expect(@pool_test.instance_variable_get('@pool')).to eq({'_items' => {'one' => item1}})
  end

  it "should retrieve the same item both times" do
    item1 = @pool_test.lookup('_items', {})
    item2 = @pool_test.lookup('_items', {})
    expect(item1.object_id).to eq(item2.object_id)
  end

  it "should recreate after being removed" do
    item1 = @pool_test.lookup('_items', {})
    item2 = @pool_test.lookup('_items', {})
    expect(item1.object_id).to eq(item2.object_id)

    @pool_test.remove('_items', {})
    item3 = @pool_test.lookup('_items', {})
    expect(item3.object_id).to_not eq(item2.object_id)
  end

  it "should remove all of the way down" do
    @pool_test.instance_variable_set('@pool', {:name => {:ok => true}, :yep => true})

    @pool_test.remove(:name, :ok)

    expect(@pool_test.instance_variable_get('@pool')).to eq({:yep => true})
  end

  it "should lookup all items at a path" do
    item1 = @pool_test.lookup('_items', '_some', {:name => 'bob'})
    item2 = @pool_test.lookup('_items', '_some', {:name => 'jim'})

    expect(@pool_test.lookup_all('_items', '_some')).to eq([item1, item2])
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
volt-0.8.14 spec/utils/generic_pool_spec.rb
volt-0.8.13 spec/utils/generic_pool_spec.rb
volt-0.8.11 spec/utils/generic_pool_spec.rb
volt-0.8.10 spec/utils/generic_pool_spec.rb
volt-0.8.9 spec/utils/generic_pool_spec.rb
volt-0.8.8 spec/utils/generic_pool_spec.rb
volt-0.8.7 spec/utils/generic_pool_spec.rb
volt-0.8.6 spec/utils/generic_pool_spec.rb
volt-0.8.5 spec/utils/generic_pool_spec.rb
volt-0.8.4 spec/utils/generic_pool_spec.rb
volt-0.8.3 spec/utils/generic_pool_spec.rb
volt-0.8.2 spec/utils/generic_pool_spec.rb
volt-0.8.1 spec/utils/generic_pool_spec.rb
volt-0.8.0 spec/utils/generic_pool_spec.rb
volt-0.7.23 spec/utils/generic_pool_spec.rb
volt-0.7.22 spec/utils/generic_pool_spec.rb
volt-0.7.21 spec/utils/generic_pool_spec.rb
volt-0.7.20 spec/utils/generic_pool_spec.rb
volt-0.7.19 spec/utils/generic_pool_spec.rb
volt-0.7.18 spec/utils/generic_pool_spec.rb