Sha256: e395b60ea165ae3aebed2a2250ce84fc7a2ebe9c333cdc013878678945e336bc

Contents?: true

Size: 1.58 KB

Versions: 61

Compression:

Stored size: 1.58 KB

Contents

# encoding: utf-8
#
require 'spec_helper'

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

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
picky-4.31.3 spec/lib/pool_spec.rb
picky-4.31.2 spec/lib/pool_spec.rb
picky-4.31.1 spec/lib/pool_spec.rb
picky-4.31.0 spec/lib/pool_spec.rb
picky-4.30.0 spec/lib/pool_spec.rb
picky-4.29.0 spec/lib/pool_spec.rb
picky-4.28.1 spec/lib/pool_spec.rb
picky-4.27.1 spec/lib/pool_spec.rb
picky-4.27.0 spec/lib/pool_spec.rb
picky-4.26.2 spec/lib/pool_spec.rb
picky-4.26.1 spec/lib/pool_spec.rb
picky-4.26.0 spec/lib/pool_spec.rb
picky-4.25.3 spec/lib/pool_spec.rb
picky-4.25.2 spec/lib/pool_spec.rb
picky-4.25.1 spec/lib/pool_spec.rb
picky-4.25.0 spec/lib/pool_spec.rb
picky-4.24.0 spec/lib/pool_spec.rb
picky-4.23.2 spec/lib/pool_spec.rb
picky-4.23.1 spec/lib/pool_spec.rb
picky-4.23.0 spec/lib/pool_spec.rb