Sha256: 31ba53ffbee98ae4d87fc291e12ebada4c96645f649b2deb90f555526191fbeb

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')

require 'kestrel/client/json'

describe Kestrel::Client::Json do
  describe "Instance Methods" do
    before do
      Kestrel::Config.load TEST_CONFIG_FILE
      @raw_kestrel_client = Kestrel::Client.new(*Kestrel::Config.default)
      @kestrel = Kestrel::Client::Json.new(@raw_kestrel_client)
    end

    describe "#get" do
      it "parses json" do
        mock(@raw_kestrel_client).get('a_queue') { '{"a": 1, "b": [{"c": 2}]}' }
        @kestrel.get('a_queue').should == {"a" => 1, "b" => ["c" => 2]}
      end

      it "uses a HashWithIndifferentAccess" do
        mock(@raw_kestrel_client).get('a_queue') { '{"a": 1, "b": [{"c": 2}]}' }
        @kestrel.get('a_queue').class.should == HashWithIndifferentAccess
      end

      it "passes through non-strings" do
        mock(@raw_kestrel_client).get('a_queue') { {:key => "value"} }
        @kestrel.get('a_queue').should == {:key => "value"}
      end

      it "passes through strings that are not json" do
        mock(@raw_kestrel_client).get('a_queue') { "I am not JSON" }
        @kestrel.get('a_queue').should == "I am not JSON"
      end
    end
  end
end

class HashWithIndifferentAccess < Hash
  def initialize(hash = {})
    super()
    merge!(hash)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
kestrel-client-0.2.4 spec/kestrel/client/json_spec.rb
kestrel-client-0.2.3 spec/kestrel/client/json_spec.rb
kestrel-client-0.2.2 spec/kestrel/client/json_spec.rb
kestrel-client-0.2.1 spec/kestrel/client/json_spec.rb
kestrel-client-0.2.0 spec/kestrel/client/json_spec.rb