Sha256: 03e8a0901b575b546b0a5b5136572d73abdf36f49d3a657fbef9f1ced2b7de76

Contents?: true

Size: 1.14 KB

Versions: 34

Compression:

Stored size: 1.14 KB

Contents

require 'spec_helper'

describe Looksist::SafeLruCache do

  before :each do
    @cache = Looksist::SafeLruCache.new(3)
  end

  context 'one entry' do

    it 'should hold only entries limited by max size' do
      @cache[:a] = 1
      @cache[:b] = 2
      @cache[:c] = 3
      @cache[:d] = 4
      expect(@cache.size).to eq(3)
      expect(@cache.keys).to match_array([:b, :c, :d])
    end

  end

  context 'multiple entries' do

    it 'should flush other entries when new entries are added' do
      @cache = Looksist::SafeLruCache.new(3)
      @cache[:a] = 1
      @cache[:b] = 2
      @cache.merge!(c: 3, d: 4, e: 5)
      expect(@cache.size).to eq(3)
      expect(@cache.keys).to match_array([:c, :d, :e])
    end

    it 'race conditions when actual size equals max size' do
      @cache[:a] = 1
      @cache[:b] = 2
      @cache.merge!(c: 3)
      expect(@cache.size).to eq(3)
      expect(@cache.keys).to match_array([:a, :b, :c])
    end

  end

  context '#mslice' do
    it 'should slice hash for repeating keys' do
      @cache.merge!(a: 1, b: 2, c: 3)
      expect(@cache.mslice([:a, :b, :c, :a, :b])).to match_array([1, 2, 3, 1, 2])
    end
  end

end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
looksist-0.3.12 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.11 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.10 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.9 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.8 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.7 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.6 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.5 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.4 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.3 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.2 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.1 spec/looksist/safe_lru_cache_spec.rb
looksist-0.3.0 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.10 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.9 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.8 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.7 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.6 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.5 spec/looksist/safe_lru_cache_spec.rb
looksist-0.2.4 spec/looksist/safe_lru_cache_spec.rb