summaryrefslogtreecommitdiff
path: root/test/net/client_test.rb
blob: 7a99ad97acb8a008b4fb229e27f5a72f0ed965ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require 'test_helper'

class Net::Hippie::ClientTest < Minitest::Test
  attr_reader :subject

  def initialize(*args)
    super
    @subject = Net::Hippie::Client.new(headers: {
      'Accept' => 'application/vnd.haveibeenpwned.v2+json'
    })
  end

  def test_get
    VCR.use_cassette("get_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      response = subject.get(uri)
      refute_nil response
      assert_equal(283, JSON.parse(response.body).count)
    end
  end

  def test_get_with_block_syntax
    VCR.use_cassette("get_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      subject.get(uri) do |request, response|
        @response = response
      end
      refute_nil @response
      assert_equal(283, JSON.parse(@response.body).count)
    end
  end

  def test_post
    VCR.use_cassette("post_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      response = subject.post(uri)
      refute_nil response
      assert_equal "Congratulations!", JSON.parse(response.body)["Message"]
    end
  end

  def test_post_with_block_syntax
    VCR.use_cassette("post_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      subject.post(uri) do |request, response|
        @response = response
      end
      refute_nil @response
      assert_equal "Congratulations!", JSON.parse(@response.body)["Message"]
    end
  end

  def test_put
    VCR.use_cassette("put_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      body = { command: 'echo hello' }.to_json
      response = subject.put(uri, body: body)
      refute_nil response
      assert_equal "Congratulations!", JSON.parse(response.body)["Message"]
    end
  end

  def test_put_with_block_syntax
    VCR.use_cassette("put_breaches") do
      uri = URI.parse('https://haveibeenpwned.com/api/breaches')
      body = { command: 'echo hello' }.to_json
      subject.put(uri, body: body) do |request, response|
        @response = response
      end
      refute_nil @response
      assert_equal "Congratulations!", JSON.parse(@response.body)["Message"]
    end
  end
end