Sha256: 35b6e89c1dfab54ef5eeeb7b26bfe2c5a5b789ed1ab2d6a0607b82f42e03d267

Contents?: true

Size: 1.56 KB

Versions: 9

Compression:

Stored size: 1.56 KB

Contents

# encoding: utf-8
#
require 'spec_helper'

describe Picky::Pool do
  
  class PoolTest
    extend Picky::Pool
    
    attr_reader :number
    
    def initialize number
      @number = number
    end
  end
  class OtherPoolTest
    extend Picky::Pool
    
    attr_reader :number
    
    def initialize number
      @number = number
    end
  end
  
  context 'functional' do
    before(:each) do
      PoolTest.clear
      OtherPoolTest.clear
    end
    it 'lets me get an instance' do
      PoolTest.obtain(1).should be_kind_of(PoolTest)
    end
    it 'does not create a new reference if it has free ones' do
      pt1 = PoolTest.obtain 1
      pt2 = PoolTest.obtain 2
      pt1.release
      
      PoolTest.free_size.should == 1
    end
    it 'gives me the released reference if I try to obtain' do
      pt1 = PoolTest.obtain 1
      pt2 = PoolTest.obtain 2
      pt1.release
      
      PoolTest.obtain(3).number.should == 3
    end
    it 'releases all PoolTests if called on PoolTest' do
      pt1 = PoolTest.obtain 1
      PoolTest.obtain 2
      OtherPoolTest.obtain 1
      OtherPoolTest.obtain 2
      
      OtherPoolTest.free_size.should == 0 
      
      PoolTest.release_all
      
      PoolTest.obtain(3).should == pt1
      OtherPoolTest.free_size.should == 0
    end
    it 'releases all if called on Pool' do
      PoolTest.obtain 1
      PoolTest.obtain 2
      OtherPoolTest.obtain 1
      OtherPoolTest.obtain 2
      
      PoolTest.free_size.should == 0
      
      described_class.release_all
      
      PoolTest.free_size.should == 2
    end
  end
  
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
picky-4.6.0 spec/lib/pool_spec.rb
picky-4.5.12 spec/lib/pool_spec.rb
picky-4.5.11 spec/lib/pool_spec.rb
picky-4.5.10 spec/lib/pool_spec.rb
picky-4.5.9 spec/lib/pool_spec.rb
picky-4.5.8 spec/lib/pool_spec.rb
picky-4.5.7 spec/lib/pool_spec.rb
picky-4.5.6 spec/lib/pool_spec.rb
picky-4.5.5 spec/lib/pool_spec.rb