Sha256: edfccbc17b27a4156b60179037410d70ed61fa27965650e55d09cddf754ff302

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

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

include ApiResource

describe Mocks do

  # we set up the mocks in spec helper, so we can just assert this
  it "should hijack the connection" do
    ApiResource::Mocks::Interface.any_instance.expects(:get).once.returns(
      ApiResource::Mocks::MockResponse.new({}, {:headers => {"Content-type" => "application/json"}, :status_code => 200})
    )
    TestResource.reload_class_attributes
  end

  it "should allow the user to raise errors for invalid responsed" do
    old_err_status = ApiResource.raise_missing_definition_error
    ApiResource::Base.raise_missing_definition_error = true

    lambda {
      class MyNewInvalidResource < ApiResource::Base; end
      MyNewInvalidResource.new
    }.should raise_error(ApiResource::ResourceNotFound)

    ApiResource.raise_missing_definition_error = old_err_status
  end

  it "should merge params for a request" do
    resp = ApiResource::Base.connection.get(
      "/mock_with_block/1.json?#{{:test => "abc"}.to_query}"
    )
    resp["id"].should eql "1"
    resp["test"].should eql "abc"
  end

  context "Mock Request" do
    context "Initialize" do
      it "should correctly assign blank params" do
        request = ApiResource::Mocks::MockRequest.new(:get, "/authenticate.json?token=")
        request.params.should eql({"token" => ""})
      end

      it "should handle nested params" do
        params = {
          "a" => {
            "b" => ["c", "d"]
          }
        }
        request = ApiResource::Mocks::MockRequest.new(
          :get, "/authenticate.json?#{params.to_query}"
        )

        request.params.should eql(params)

      end

      it "should parse true and false values into booleans" do

        params = {
          "a" => true,
          "b" => false
        }
        request = ApiResource::Mocks::MockRequest.new(
          :get, "/authenticate.json?#{params.to_query}"
        )

        request.params.should eql(params)

      end

    end
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
api_resource-0.6.25 spec/lib/mocks_spec.rb
api_resource-0.6.24 spec/lib/mocks_spec.rb
api_resource-0.6.23 spec/lib/mocks_spec.rb
api_resource-0.6.22 spec/lib/mocks_spec.rb
api_resource-0.6.21 spec/lib/mocks_spec.rb
api_resource-0.6.20 spec/lib/mocks_spec.rb
api_resource-0.6.19 spec/lib/mocks_spec.rb