Sha256: d52fe5b946c2e641a66ead892bea8ab83346634492f6862a810a72c8efad57d4

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

require 'spec_helper'

describe Jamnagar::Storage::BasicStore do
  context 'adapters' do
    it 'should allow the use of a separate adapter' do
      adapter = Jamnagar::SpecHelpers::SimpleAdapter.new
      sut = Jamnagar::Storage::BasicStore.new(adapter)
    end
  end
  context "when an item is empty" do
    it 'should not store the item' do
      adapter = Jamnagar::SpecHelpers::SimpleAdapter.new
      sut = Jamnagar::Storage::BasicStore.new(adapter)
      expect(adapter).to_not receive(:insert)
      sut.insert(nil)
    end
  end

  context 'retriving records' do
    it 'should get records using a primary key' do
      sut = Jamnagar::Storage::BasicStore.new
      sut.insert({"_id" => 1, "url" => "http://example.com"})
      sut.insert({"_id" => 2, "url" => "http://example.org"})

      expect(sut.get(2)).to eq({"_id" => 2, "url" => "http://example.org"})
    end
    context 'when looking for the first record' do
      it 'should ask the adapter' do
        adapter = double(Jamnagar::SpecHelpers::SimpleAdapter)
        sut = Jamnagar::Storage::BasicStore.new(adapter)
        expect(adapter).to receive(:find_first).with({"_id" => 123})
        sut.find_first({"_id" => 123})
      end
    end
    context 'when looking for multiple records' do
      it 'should ask the adapter' do
        adapter = double(Jamnagar::SpecHelpers::SimpleAdapter)
        sut = Jamnagar::Storage::BasicStore.new(adapter)
        expect(adapter).to receive(:find).with({"_id" => 123})
        sut.find({"_id" => 123})
      end
    end
  end
  context 'find and modify' do
    it 'should tell the adapter to find and modify the record' do
      adapter = double(Jamnagar::SpecHelpers::SimpleAdapter)
      sut = Jamnagar::Storage::BasicStore.new(adapter)
      expect(adapter).to receive(:find_and_modify).with({"foo" => "bar"})
      sut.find_and_modify({"foo" => "bar"})
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jamnagar-1.3.9.1 spec/basic_store_spec.rb
jamnagar-1.3.9 spec/basic_store_spec.rb
jamnagar-1.3.8 spec/basic_store_spec.rb