dnsimple-ruby 1.7.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +3 -9
  4. data/{CHANGELOG.markdown → CHANGELOG.md} +4 -0
  5. data/Gemfile +0 -2
  6. data/LICENSE +1 -1
  7. data/README.md +5 -0
  8. data/Rakefile +0 -15
  9. data/dnsimple-ruby.gemspec +11 -19
  10. data/lib/dnsimple-ruby.rb +2 -0
  11. metadata +20 -288
  12. data/README.markdown +0 -159
  13. data/bin/dnsimple +0 -4
  14. data/bin/dnsimple.rb +0 -156
  15. data/features/README.md +0 -9
  16. data/features/cli/certificates/purchase_certificate.feature +0 -10
  17. data/features/cli/contacts/create_contact.feature +0 -10
  18. data/features/cli/domains/check_domain.feature +0 -10
  19. data/features/cli/domains/create_domain.feature +0 -10
  20. data/features/cli/domains/delete_domain.feature +0 -11
  21. data/features/cli/domains/register_domain.feature +0 -10
  22. data/features/cli/records/create_ptr_record.feature +0 -11
  23. data/features/cli/records/create_record.feature +0 -12
  24. data/features/cli/records/delete_record.feature +0 -14
  25. data/features/cli/templates/apply_template.feature +0 -11
  26. data/features/step_definitions/certificate_steps.rb +0 -3
  27. data/features/step_definitions/cli_steps.rb +0 -8
  28. data/features/step_definitions/domain_steps.rb +0 -32
  29. data/features/step_definitions/record_steps.rb +0 -38
  30. data/features/step_definitions/template_steps.rb +0 -9
  31. data/features/support/env.rb +0 -19
  32. data/lib/dnsimple.rb +0 -33
  33. data/lib/dnsimple/base.rb +0 -10
  34. data/lib/dnsimple/certificate.rb +0 -140
  35. data/lib/dnsimple/cli.rb +0 -121
  36. data/lib/dnsimple/client.rb +0 -128
  37. data/lib/dnsimple/commands/certificate_describe.rb +0 -34
  38. data/lib/dnsimple/commands/certificate_list.rb +0 -15
  39. data/lib/dnsimple/commands/certificate_purchase.rb +0 -17
  40. data/lib/dnsimple/commands/certificate_submit.rb +0 -17
  41. data/lib/dnsimple/commands/contact_create.rb +0 -23
  42. data/lib/dnsimple/commands/contact_delete.rb +0 -14
  43. data/lib/dnsimple/commands/contact_describe.rb +0 -25
  44. data/lib/dnsimple/commands/contact_list.rb +0 -13
  45. data/lib/dnsimple/commands/contact_update.rb +0 -25
  46. data/lib/dnsimple/commands/domain_apply_template.rb +0 -15
  47. data/lib/dnsimple/commands/domain_check.rb +0 -11
  48. data/lib/dnsimple/commands/domain_clear.rb +0 -16
  49. data/lib/dnsimple/commands/domain_create.rb +0 -16
  50. data/lib/dnsimple/commands/domain_delete.rb +0 -14
  51. data/lib/dnsimple/commands/domain_describe.rb +0 -14
  52. data/lib/dnsimple/commands/domain_list.rb +0 -13
  53. data/lib/dnsimple/commands/domain_register.rb +0 -33
  54. data/lib/dnsimple/commands/domain_transfer.rb +0 -21
  55. data/lib/dnsimple/commands/extended_attribute_list.rb +0 -25
  56. data/lib/dnsimple/commands/me.rb +0 -18
  57. data/lib/dnsimple/commands/record_create.rb +0 -18
  58. data/lib/dnsimple/commands/record_delete.rb +0 -16
  59. data/lib/dnsimple/commands/record_describe.rb +0 -16
  60. data/lib/dnsimple/commands/record_list.rb +0 -19
  61. data/lib/dnsimple/commands/record_update.rb +0 -23
  62. data/lib/dnsimple/commands/service_add.rb +0 -14
  63. data/lib/dnsimple/commands/service_describe.rb +0 -12
  64. data/lib/dnsimple/commands/service_list.rb +0 -14
  65. data/lib/dnsimple/commands/service_list_applied.rb +0 -16
  66. data/lib/dnsimple/commands/service_list_available.rb +0 -16
  67. data/lib/dnsimple/commands/service_remove.rb +0 -14
  68. data/lib/dnsimple/commands/template_create.rb +0 -14
  69. data/lib/dnsimple/commands/template_delete.rb +0 -13
  70. data/lib/dnsimple/commands/template_list.rb +0 -13
  71. data/lib/dnsimple/commands/template_record_create.rb +0 -18
  72. data/lib/dnsimple/commands/template_record_delete.rb +0 -16
  73. data/lib/dnsimple/commands/template_record_list.rb +0 -17
  74. data/lib/dnsimple/contact.rb +0 -154
  75. data/lib/dnsimple/domain.rb +0 -217
  76. data/lib/dnsimple/error.rb +0 -32
  77. data/lib/dnsimple/extended_attribute.rb +0 -52
  78. data/lib/dnsimple/record.rb +0 -94
  79. data/lib/dnsimple/service.rb +0 -42
  80. data/lib/dnsimple/template.rb +0 -63
  81. data/lib/dnsimple/template_record.rb +0 -80
  82. data/lib/dnsimple/transfer_order.rb +0 -34
  83. data/lib/dnsimple/user.rb +0 -51
  84. data/lib/dnsimple/version.rb +0 -3
  85. data/spec/ci/.dnsimple.test +0 -3
  86. data/spec/commands/certificate_purchase_spec.rb +0 -25
  87. data/spec/commands/certificate_submit_spec.rb +0 -18
  88. data/spec/commands/record_create_spec.rb +0 -23
  89. data/spec/commands/record_list_spec.rb +0 -23
  90. data/spec/commands/service_add_spec.rb +0 -20
  91. data/spec/dnsimple/certificate_spec.rb +0 -59
  92. data/spec/dnsimple/client_spec.rb +0 -154
  93. data/spec/dnsimple/contact_spec.rb +0 -45
  94. data/spec/dnsimple/domain_spec.rb +0 -133
  95. data/spec/dnsimple/extended_attributes_spec.rb +0 -54
  96. data/spec/dnsimple/record_spec.rb +0 -51
  97. data/spec/dnsimple/template_spec.rb +0 -31
  98. data/spec/dnsimple/user_spec.rb +0 -70
  99. data/spec/files/2fa/error-badtoken.http +0 -22
  100. data/spec/files/2fa/error-required.http +0 -23
  101. data/spec/files/2fa/exchange-token.http +0 -25
  102. data/spec/files/account/user/success.http +0 -19
  103. data/spec/files/certificates/index/success.http +0 -19
  104. data/spec/files/certificates/show/notfound.http +0 -17
  105. data/spec/files/certificates/show/success.http +0 -19
  106. data/spec/files/contacts/show/notfound.http +0 -17
  107. data/spec/files/contacts/show/success.http +0 -19
  108. data/spec/files/domains/auto_renewal_disable/notfound.http +0 -21
  109. data/spec/files/domains/auto_renewal_disable/success.http +0 -23
  110. data/spec/files/domains/auto_renewal_enable/notfound.http +0 -21
  111. data/spec/files/domains/auto_renewal_enable/success.http +0 -23
  112. data/spec/files/domains/show/notfound.http +0 -17
  113. data/spec/files/domains/show/success.http +0 -19
  114. data/spec/files/extended_attributes/ca.http +0 -19
  115. data/spec/files/extended_attributes/com.http +0 -19
  116. data/spec/files/extended_attributes/success.http +0 -19
  117. data/spec/files/records/index/success.http +0 -19
  118. data/spec/files/records/show/notfound.http +0 -17
  119. data/spec/files/records/show/success.http +0 -19
  120. data/spec/files/templates/show/notfound.http +0 -17
  121. data/spec/files/templates/show/success.http +0 -19
  122. data/spec/spec_helper.rb +0 -39
  123. data/spec/support/helpers.rb +0 -15
  124. data/spec/support/webmock.rb +0 -11
@@ -1,3 +0,0 @@
1
- module DNSimple
2
- VERSION = '1.7.1'
3
- end
@@ -1,3 +0,0 @@
1
- username: username
2
- password: password
3
- base_uri: https://api.ci.dnsimple.com
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
- require 'dnsimple/certificate'
3
- require 'dnsimple/commands/certificate_purchase'
4
-
5
- describe DNSimple::Commands::CertificatePurchase do
6
- let(:domain_name) { 'example.com' }
7
- let(:domain) { stub('domain') }
8
- let(:contact) { stub('contact') }
9
-
10
- context "with one argument" do
11
- before :each do
12
- DNSimple::Domain.stubs(:find).returns(domain)
13
- DNSimple::Contact.stubs(:find).returns(contact)
14
- end
15
-
16
- it "purchases the certificate" do
17
- DNSimple::Certificate.expects(:purchase).
18
- with(domain, 'certname', contact).
19
- returns(stub("certificate", :fqdn => domain_name))
20
-
21
- DNSimple::Commands::CertificatePurchase.new.
22
- execute([domain_name, 'certname', stub('contact id')])
23
- end
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
- require 'dnsimple/commands/certificate_submit'
3
-
4
- describe DNSimple::Commands::CertificateSubmit do
5
- let(:domain) { DNSimple::Domain.new(:name => domain_name) }
6
- let(:domain_name) { 'example.com' }
7
- let(:name) { 'www' }
8
- let(:certificate) { DNSimple::Certificate.new(:id => certificate_id, :domain => domain) }
9
- let(:certificate_id) { 1 }
10
- let(:approver_email) { 'admin@example.com' }
11
-
12
- it "submits the certificate" do
13
- DNSimple::Domain.stubs(:find).with(domain_name).returns(domain)
14
- DNSimple::Certificate.expects(:find).with(domain, certificate_id).returns(certificate)
15
- certificate.expects(:submit).with(approver_email)
16
- DNSimple::Commands::CertificateSubmit.new.execute([domain_name, certificate_id, approver_email])
17
- end
18
- end
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
- require 'dnsimple/domain'
3
- require 'dnsimple/record'
4
- require 'dnsimple/commands/record_create'
5
-
6
- describe DNSimple::Commands::RecordCreate do
7
- let(:domain_name) { 'example.com' }
8
- let(:record_name) { 'www' }
9
- let(:record_type) { 'CNAME' }
10
- let(:ttl) { "3600" }
11
-
12
- context "with one argument" do
13
- it "purchases the certificate" do
14
- domain_stub = stub("domain", :name => domain_name)
15
- record_stub = stub("record", :id => 1, :record_type => record_type)
16
- DNSimple::Domain.expects(:find).with(domain_name).returns(domain_stub)
17
- DNSimple::Record.expects(:create).with(domain_stub, record_name, record_type, domain_name, :ttl => ttl, :prio => nil).returns(record_stub)
18
-
19
- DNSimple::Commands::RecordCreate.new.execute([domain_name, record_name, record_type, domain_name, ttl])
20
- end
21
- end
22
- end
23
-
@@ -1,23 +0,0 @@
1
- require 'spec_helper'
2
- require 'dnsimple/commands/record_list'
3
-
4
- describe DNSimple::Commands::RecordList do
5
- before do
6
- DNSimple::Record.expects(:all).with(instance_of(DNSimple::Domain)).returns(records)
7
- end
8
-
9
- let(:records) { [ record ] }
10
- let(:record) { stub(:ttl => ttl, :id => id, :record_type => record_type, :name => name, :domain => domain, :content => content) }
11
-
12
- let(:ttl) { 'ttl' }
13
- let(:id) { 'id' }
14
- let(:record_type) { 'A' }
15
- let(:name) { 'name' }
16
- let(:content) { 'content' }
17
-
18
- let(:args) { [ domain_name ] }
19
- let(:domain_name) { 'example.com' }
20
- let(:domain) { DNSimple::Domain.new(:name => domain_name) }
21
-
22
- end
23
-
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
- require 'dnsimple/commands/service_add'
3
-
4
- describe DNSimple::Commands::ServiceAdd do
5
- let(:domain_name) { 'example.com' }
6
- let(:short_name) { 'service-name' }
7
-
8
- let(:domain) { DNSimple::Domain.new(:name => domain_name) }
9
- let(:service) { stub("service", :name => "Service") }
10
-
11
- before do
12
- DNSimple::Domain.expects(:find).with(domain_name).returns(domain)
13
- DNSimple::Service.expects(:find).with(short_name).returns(service)
14
- end
15
-
16
- it "adds a service to a domain" do
17
- domain.expects(:add_service).with(short_name)
18
- DNSimple::Commands::ServiceAdd.new.execute([domain_name, short_name])
19
- end
20
- end
@@ -1,59 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DNSimple::Certificate do
4
-
5
- let(:domain) { DNSimple::Domain.new(:name => "example.com") }
6
-
7
-
8
- describe ".find" do
9
- before do
10
- stub_request(:get, %r[/v1/domains/example.com/certificates/2]).
11
- to_return(read_fixture("certificates/show/success.http"))
12
- end
13
-
14
- it "builds the correct request" do
15
- described_class.find(domain, "2")
16
-
17
- expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/certificates/2").
18
- with(:headers => { 'Accept' => 'application/json' })
19
- end
20
-
21
- context "when the certificate exists" do
22
- it "returns the certificate" do
23
- result = described_class.find(domain, "2")
24
-
25
- expect(result.id).to eq(4576)
26
- expect(result.domain_id).to eq(79569)
27
- expect(result.contact_id).to eq(11549)
28
- expect(result.name).to eq("www")
29
- expect(result.state).to eq("cancelled")
30
- expect(result.csr).to eq("-----BEGIN NEW CERTIFICATE REQUEST-----\nRHr2akB4KMba6FMAsvlStnO/2ika16hNx+d3smPNsER+HA==\n-----END NEW CERTIFICATE REQUEST-----\n")
31
- expect(result.ssl_certificate).to eq("-----BEGIN CERTIFICATE-----\nXwTkw5UCPpaVyUYcwHlvaprOe9ZbwIyEHm2AT1rW+70=\n-----END CERTIFICATE-----\n")
32
- expect(result.private_key).to eq("-----BEGIN RSA PRIVATE KEY-----\nUeXbFi7o+nuPfRhpBFQEKwacKFc3Hnc1hH6UsnC0KY25cUif7yz38A==\n-----END RSA PRIVATE KEY-----\n")
33
- expect(result.approver_email).to eq("example@example.net")
34
- expect(result.created_at).to eq("2013-09-17T21:54:42Z")
35
- expect(result.updated_at).to eq("2013-09-17T22:25:36Z")
36
- expect(result.configured_at).to eq("2013-09-17T22:25:01Z")
37
- expect(result.expires_on).to eq("2014-09-17")
38
-
39
- expect(result.domain).to eq(domain)
40
- end
41
- end
42
- end
43
-
44
-
45
- describe "#fqdn" do
46
- it "joins the name and domain name" do
47
- certificate = described_class.new(:name => 'www')
48
- certificate.domain = domain
49
- expect(certificate.fqdn).to eq("www.#{domain.name}")
50
- end
51
-
52
- it "strips blank parts from name" do
53
- certificate = described_class.new(:name => '')
54
- certificate.domain = domain
55
- expect(certificate.fqdn).to eq(domain.name)
56
- end
57
- end
58
-
59
- end
@@ -1,154 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DNSimple::Client do
4
-
5
- let(:klass) { described_class }
6
- let(:response) { stub('response', :code => 200) }
7
-
8
- before do
9
- @_username = described_class.username
10
- @_password = described_class.password
11
- @_api_token = described_class.api_token
12
- @_base_uri = described_class.base_uri
13
- end
14
-
15
- after do
16
- described_class.username = @_username
17
- described_class.password = @_password
18
- described_class.api_token = @_api_token
19
- described_class.base_uri = @_base_uri
20
- end
21
-
22
- [:get, :post, :put, :delete].each do |method|
23
- describe ".#{method}" do
24
- it "delegates to .request" do
25
- described_class.expects(:request).with(method, '/domains', { :foo => 'bar' })
26
- described_class.send(method, '/domains', { :foo => 'bar' })
27
- end
28
- end
29
- end
30
-
31
- describe ".request" do
32
- before do
33
- [:username, :password, :exchange_token, :api_token, :domain_api_token].each do |attribute|
34
- described_class.send("#{attribute}=", nil)
35
- end
36
- end
37
-
38
- it "uses HTTP authentication if there's a password provided" do
39
- described_class.username = 'user'
40
- described_class.password = 'pass'
41
- described_class.base_uri = 'https://api.example.com/'
42
-
43
- HTTParty.expects(:get).
44
- with('https://api.example.com/domains', has_entries(:basic_auth => { :username => 'user', :password => 'pass' })).
45
- returns(response)
46
-
47
- described_class.request(:get, '/domains', {})
48
- end
49
-
50
- it "uses header authentication if there's a domain api token provided" do
51
- described_class.domain_api_token = 'domaintoken'
52
- described_class.base_uri = 'https://api.example.com/'
53
-
54
- HTTParty.expects(:get).
55
- with('https://api.example.com/domains', has_entries(:headers => has_entries({ 'X-DNSimple-Domain-Token' => 'domaintoken' }))).
56
- returns(response)
57
-
58
- described_class.request(:get, '/domains', {})
59
- end
60
-
61
- it "uses header authentication if there's an api token provided" do
62
- described_class.username = 'user'
63
- described_class.api_token = 'token'
64
- described_class.base_uri = 'https://api.example.com/'
65
-
66
- HTTParty.expects(:get).
67
- with('https://api.example.com/domains', has_entries(:headers => has_entries({ 'X-DNSimple-Token' => 'user:token' }))).
68
- returns(response)
69
-
70
- described_class.request(:get, '/domains', {})
71
- end
72
-
73
- it "uses HTTP authentication via exchange token if there's an exchange token provided" do
74
- described_class.username = 'user'
75
- described_class.password = 'pass'
76
- described_class.exchange_token = 'exchange-token'
77
- described_class.base_uri = 'https://api.example.com/'
78
-
79
- HTTParty.expects(:get).
80
- with('https://api.example.com/domains', has_entries(:basic_auth => { :username => 'exchange-token', :password => 'x-2fa-basic' })).
81
- returns(response)
82
-
83
- described_class.request(:get, '/domains', {})
84
- end
85
-
86
- it "raises an error if there's no password or api token provided" do
87
- described_class.username = 'user'
88
- described_class.base_uri = 'https://api.example.com/'
89
-
90
- expect {
91
- described_class.request(:get, '/domains', {})
92
- }.to raise_error(DNSimple::Error, 'A password or API token is required for all API requests.')
93
- end
94
-
95
- it "adds a custom user-agent" do
96
- described_class.api_token = 'token'
97
-
98
- HTTParty.expects(:get).
99
- with(is_a(String), has_entries(:headers => has_entries({ 'User-Agent' => "dnsimple-ruby/#{DNSimple::VERSION}" }))).
100
- returns(response)
101
-
102
- described_class.request(:get, '/foo', {})
103
- end
104
-
105
- it "performs a request" do
106
- described_class.username = 'user'
107
- described_class.password = 'pass'
108
-
109
- HTTParty.expects(:get).
110
- with("#{described_class.base_uri}/foo",
111
- :format => :json,
112
- :basic_auth => { :username => described_class.username, :password => described_class.password },
113
- :headers => { 'Accept' => 'application/json', 'User-Agent' => "dnsimple-ruby/#{DNSimple::VERSION}" }
114
- ).
115
- returns(response)
116
-
117
- described_class.request(:get, '/foo', {})
118
- end
119
- end
120
-
121
-
122
- describe ".base_uri" do
123
- it "returns the qualified API uri" do
124
- klass.base_uri = "http://api.dnsimple.com"
125
- expect(klass.base_uri).to eq("http://api.dnsimple.com")
126
- end
127
- end
128
-
129
- describe ".base_uri=" do
130
- it "sets the base_uri" do
131
- klass.base_uri = "http://api1.dnsimple.com/"
132
- expect(klass.base_uri).to eq("http://api1.dnsimple.com")
133
- klass.base_uri = "http://api2.dnsimple.com"
134
- expect(klass.base_uri).to eq("http://api2.dnsimple.com")
135
- end
136
- end
137
-
138
-
139
- describe "authentication" do
140
- context "when 2FA is required" do
141
- before do
142
- stub_request(:get, %r[/foo]).
143
- to_return(read_fixture("2fa/error-required.http"))
144
- end
145
-
146
- it "raises a TwoFactorAuthenticationRequired error" do
147
- expect {
148
- described_class.get('/foo', {})
149
- }.to raise_error(DNSimple::TwoFactorAuthenticationRequired)
150
- end
151
- end
152
- end
153
-
154
- end
@@ -1,45 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DNSimple::Contact do
4
-
5
- describe ".find" do
6
- before do
7
- stub_request(:get, %r[/v1/contacts/2]).
8
- to_return(read_fixture("contacts/show/success.http"))
9
- end
10
-
11
- it "builds the correct request" do
12
- described_class.find("2")
13
-
14
- expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/contacts/2").
15
- with(:headers => { 'Accept' => 'application/json' })
16
- end
17
-
18
- context "when the contact exists" do
19
- it "returns the contact" do
20
- result = described_class.find("2")
21
-
22
- expect(result).to be_a(described_class)
23
- expect(result.id).to eq(2)
24
- expect(result.first_name).to eq("Simone")
25
- expect(result.last_name).to eq("Carletti")
26
- expect(result.job_title).to eq("Underwater Programmer")
27
- expect(result.organization_name).to eq("DNSimple")
28
- expect(result.email_address).to eq("example@example.com")
29
- expect(result.phone).to eq("+1 111 000000")
30
- expect(result.fax).to eq("+1 222 000000")
31
- expect(result.address1).to eq("Awesome Street")
32
- expect(result.address2).to eq("c/o Someone")
33
- expect(result.city).to eq("Rome")
34
- expect(result.state_province).to eq("RM")
35
- expect(result.postal_code).to eq("00171")
36
- expect(result.country).to eq("IT")
37
- expect(result.created_at).to eq("2013-11-08T17:23:15Z")
38
- expect(result.updated_at).to eq("2013-11-08T17:23:15Z")
39
-
40
- expect(result.phone_ext).to be_nil
41
- end
42
- end
43
- end
44
-
45
- end
@@ -1,133 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe DNSimple::Domain do
4
-
5
- let(:contact_id) { 1001 }
6
-
7
- describe ".find" do
8
- before do
9
- stub_request(:get, %r[/v1/domains/example.com]).
10
- to_return(read_fixture("domains/show/success.http"))
11
- end
12
-
13
- it "builds the correct request" do
14
- described_class.find("example.com")
15
-
16
- expect(WebMock).to have_requested(:get, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com").
17
- with(:headers => { 'Accept' => 'application/json' })
18
- end
19
-
20
- context "when the domain exists" do
21
- it "returns the domain" do
22
- result = described_class.find("example.com")
23
-
24
- expect(result).to be_a(described_class)
25
- expect(result.id).to eq(6)
26
- expect(result.name).to eq("test-1383931357.com")
27
- expect(result.expires_on).to eq('2015-11-08')
28
- expect(result.created_at).to eq("2013-11-08T17:22:48Z")
29
- expect(result.updated_at).to eq("2014-01-14T18:27:04Z")
30
- expect(result.state).to eq("registered")
31
- expect(result.registrant_id).to eq(2)
32
- expect(result.user_id).to eq(2)
33
- expect(result.lockable).to eq(true)
34
- expect(result.auto_renew).to eq(true)
35
- expect(result.whois_protected).to eq(false)
36
-
37
- expect(result.name_server_status).to be_nil
38
- end
39
- end
40
- end
41
-
42
- describe "#enable_auto_renew" do
43
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => false) }
44
-
45
- context "when response is not 200" do
46
- before do
47
- stub_request(:post, %r[/v1/domains/example.com/auto_renewal]).
48
- to_return(read_fixture("domains/auto_renewal_enable/notfound.http"))
49
- end
50
-
51
- it "raises a RequestError" do
52
- expect { domain.enable_auto_renew }.to raise_error(DNSimple::RequestError)
53
- end
54
- end
55
-
56
- context "when auto_renew is true" do
57
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => true) }
58
-
59
- it "does not send a web request" do
60
- domain.enable_auto_renew
61
- expect(WebMock).to have_not_been_made
62
- end
63
- end
64
-
65
- context "when auto_renew is false" do
66
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => false) }
67
-
68
- before do
69
- stub_request(:post, %r[/v1/domains/example.com/auto_renewal]).
70
- to_return(read_fixture("domains/auto_renewal_enable/success.http"))
71
- end
72
-
73
- it "builds the correct request to enable auto_renew" do
74
- domain.enable_auto_renew
75
-
76
- expect(WebMock).to have_requested(:post, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/auto_renewal").
77
- with(:headers => { 'Accept' => 'application/json' })
78
- end
79
-
80
- it "sets auto_renew to true on the domain" do
81
- domain.enable_auto_renew
82
- expect(domain.auto_renew).to be_truthy
83
- end
84
- end
85
-
86
- end
87
-
88
- describe "#disable_auto_renew" do
89
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => true) }
90
-
91
- context "when response is not 200" do
92
- before do
93
- stub_request(:delete, %r[/v1/domains/example.com/auto_renewal]).
94
- to_return(read_fixture("domains/auto_renewal_disable/notfound.http"))
95
- end
96
-
97
- it "raises a RequestError" do
98
- expect { domain.disable_auto_renew }.to raise_error(DNSimple::RequestError)
99
- end
100
- end
101
-
102
- context "when auto_renew is false" do
103
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => false) }
104
-
105
- it "does not send a web request" do
106
- domain.disable_auto_renew
107
- expect(WebMock).to have_not_been_made
108
- end
109
- end
110
-
111
- context "when auto_renew is true" do
112
- let(:domain) { described_class.new(:name => 'example.com', :auto_renew => true) }
113
-
114
- before do
115
- stub_request(:delete, %r[/v1/domains/example.com/auto_renewal]).
116
- to_return(read_fixture("domains/auto_renewal_disable/success.http"))
117
- end
118
-
119
- it "builds the correct request to disable auto_renew" do
120
- domain.disable_auto_renew
121
-
122
- expect(WebMock).to have_requested(:delete, "https://#{CONFIG['username']}:#{CONFIG['password']}@#{CONFIG['host']}/v1/domains/example.com/auto_renewal").
123
- with(:headers => { 'Accept' => 'application/json' })
124
- end
125
-
126
- it "sets auto_renew to false on the domain" do
127
- domain.disable_auto_renew
128
- expect(domain.auto_renew).to be_falsey
129
- end
130
- end
131
-
132
- end
133
- end