Sha256: 87080e052d9da56c5ec55ded2e6929ae90ee4b99ec038122f80a951d669279b6

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

#enconding: utf-8
require 'spec_helper'

describe Cache do

  let(:cache) { Cache.new }

  it "adds abitrary objects to cache" do
    expect {
      cache.add %w{obj}
      cache.add('obj')
    }.to_not raise_error
  end

  it "returns all cached objects" do
    objects = []

    objects << cache.add('obj')
    objects << cache.add('obj')
    objects << cache.add('obj')

    expect(cache.stored_objects).to eq(objects)
  end

  it "clears cache" do
    cache.add('obj')
    cache.add('obj')
    cache.add('obj')
    expect(cache.stored_objects.size).to eq(3) 

    cache.clear
    expect(cache.stored_objects.size).to eq(0) 
  end

  it "tells the requester if there are new objects" do
    cache.add('obj')
    expect(cache.new_objects?).to eq(true) 
  end

  it "tells the requester if there __no__ new objects" do
    cache.add('obj')
    cache.stored_objects
    expect(cache.new_objects?).to eq(false) 
  end

  it "works with sub-sequent requests to the cache as well" do
    cache.add('obj')
    cache.stored_objects
    cache.add('obj')
    expect(cache.new_objects?).to eq(true) 

    cache.add('obj')
    cache.stored_objects
    cache.add('obj')
    cache.stored_objects
    expect(cache.new_objects?).to eq(false) 
  end

  it "returns the same objecs if requested multiple times" do
    cache.add('obj')
    cache.add('obj')
    run1 = cache.stored_objects
    run2 = cache.stored_objects

    expect(run1).to be(run2) 
    expect(run1).to eq(run2) 
  end

  it "deletes specific objects from cache (by number)" do
    cache.add('obj')
    c_created = cache.add('obj')
    cache.add('obj')

    c_deleted = cache.delete_object(1) 

    expect(c_created).to eq(c_deleted)
  end

  it "gets you a specific object" do
    cache.add('obj')
    c_created = cache.add('obj')
    cache.add('obj')

    c_fetched = cache.fetch_object(1) 

    expect(c_created).to eq(c_fetched)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
the_array_comparator-0.2.0 spec/cache_spec.rb