File: dalli_spec.rb

package info (click to toggle)
ruby-typhoeus 1.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 656 kB
  • sloc: ruby: 4,489; makefile: 6
file content (41 lines) | stat: -rw-r--r-- 1,401 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("1.9.0")
  require 'dalli'
  require 'typhoeus/cache/dalli'
  require 'spec_helper'

  describe Typhoeus::Cache::Dalli do
    let(:dalli) { instance_double(Dalli::Client) }
    let(:cache) { Typhoeus::Cache::Dalli.new(dalli) }

    let(:base_url) { "localhost:3001" }
    let(:request) { Typhoeus::Request.new(base_url, {:method => :get}) }
    let(:response) { Typhoeus::Response.new(:response_code => 0, :return_code => 0, :mock => true) }

    describe "#set" do
      it "sends the request to Dalli" do
        expect(dalli).to receive(:set).with(request.cache_key, response, nil)

        cache.set(request, response)
      end
    end

    describe "#get" do
      it "returns nil when the key is not in the cache" do
        expect(dalli).to receive(:get).with(request.cache_key).and_return(nil)

        expect(cache.get(request)).to be_nil
      end

      it "returns the cached response when the key is in cache" do
        expect(dalli).to receive(:get).with(request.cache_key).and_return(response)

        result = cache.get(request)
        expect(result).to_not be_nil
        expect(result.response_code).to eq(response.response_code)
        expect(result.return_code).to eq(response.return_code)
        expect(result.headers).to eq(response.headers)
        expect(result.body).to eq(response.body)
      end
    end
  end
end