require 'spec_helper' describe Jamnagar::Utilities::DuplicateDetector do it 'should ask the store for duplicates' do store = Jamnagar::SpecHelpers::SimpleItemStore.new sut = Jamnagar::Utilities::DuplicateDetector.new(store) expect(store).to receive(:find_first).with({"final_url" => "http://example.com"}) sut.detect("http://example.com") end context 'When Duplicates Exist' do it 'should return duplicate details' do store = double(Jamnagar::SpecHelpers::SimpleItemStore.new) allow(store).to receive(:find_first).and_return({"_id" => 456}) sut = Jamnagar::Utilities::DuplicateDetector.new(store) expect(sut.detect("http://example.com")).to eq({"_id" => 456}) end end context 'When No Duplicates Exist' do it 'should not return duplicate details' do store = double(Jamnagar::SpecHelpers::SimpleItemStore.new) allow(store).to receive(:find_first).and_return(nil) sut = Jamnagar::Utilities::DuplicateDetector.new(store) expect(sut.detect("http://example.com")).to eq(nil) end end end