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