Sha256: 2aa28de5ce0356d142394b69c22ca5055927246de27b31377392d87a945cc4c8

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

require File.expand_path('../../test_helper', __FILE__)

module Loquor
  class HttpAction::PostTest < HttpAction::Test
    def test_post_should_call_new
      url = "foobar"
      payload = {y: false}
      deps = {x: true}
      HttpAction::Post.expects(:new).with(url, payload, deps).returns(mock(post: nil))
      HttpAction::Post.post(url, payload, deps)
    end

    def test_post_should_call_post
      HttpAction::Post.any_instance.expects(:post)
      HttpAction::Post.post("foobar", {}, {})
    end

    def test_post_parses_request
      output = {'foo' => 'bar'}
      json = output.to_json
      posts = HttpAction::Post.new("", {}, deps)
      posts.expects(signed_request: mock(execute: json))
      assert_equal output, posts.post
    end

    def test_request_is_generated_correctly
      url = "/foobar"
      payload = {foo: true, bar: false}
      full_url = "#{@endpoint}#{url}"

      RestClient::Request.expects(:new).with(
        url: full_url,
        accept: :json,
        payload: payload.to_json,
        headers: {'Content-type' => 'application/json'},
        method: :post
      )
      HttpAction::Post.new(url, payload, deps).send(:request)
    end

    def test_request_is_signed_correctly
      posts = HttpAction::Post.new("", {}, deps)
      request = RestClient::Request.new(url: "http://localhost:3000", method: :post)
      posts.expects(request: request)
      ApiAuth.expects(:sign!).with(request, @access_id, @secret_key)
      posts.send(:signed_request)
    end

    def test_response_is_a_representation
      posts = HttpAction::Post.new("", {}, deps)
      posts.stubs(signed_request: mock(execute: {foo: 'bar'}.to_json))
      response = posts.post
      assert response.is_a?(Representation)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
loquor-0.2.0 test/http_actions/post_test.rb
loquor-0.1.2 test/http_actions/post_test.rb