Sha256: a3bc111957217bb95deddda90bd671e6529a17b81d83dcecb94e3fc7bfc5a648

Contents?: true

Size: 1.48 KB

Versions: 2

Compression:

Stored size: 1.48 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

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
loquor-0.1.1 test/http_actions/post_test.rb
loquor-0.1.0 test/http_actions/post_test.rb