require_relative '../../spec_helper'

describe Rev::HttpClient do
  it 'must support predefined production host' do
    client = Rev::HttpClient.new('foo', 'bar', Rev::Api::PRODUCTION_HOST)
    Rev::HttpClient.base_uri.must_equal 'https://www.rev.com/api/v1'
  end

  it 'must support predefined sandbox host' do
    client = Rev::HttpClient.new('foo', 'bar', Rev::Api::SANDBOX_HOST)
    Rev::HttpClient.base_uri.must_equal 'https://api-sandbox.rev.com/api/v1'
  end

  it 'must support custom host for development purposes' do
    client = Rev::HttpClient.new('foo', 'bar', 'localhost')
    Rev::HttpClient.base_uri.must_equal 'https://localhost/api/v1'
  end

  it 'must include authorization and User-Agent headers for any request' do
    host = 'www.example.com'
    stub_request(:any, /www\.example\.com\/.*/)

    client = Rev::HttpClient.new('foo', 'bar', host)
    response = client.get('/orders')

    assert_requested :get, "https://#{host}/api/v1/orders", :headers => {
      'Authorization' => "Rev foo:bar",
      'User-Agent' => Rev::HttpClient::USER_AGENT
    }
  end
end

