linode-incandescent 0.6.2.SNAPSHOT

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,45 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Avail do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Avail.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(datacenters kernels linodeplans distributions stackscripts).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "avail.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+
45
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Domain::Resource do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Domain::Resource.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(create delete update list).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "domain.resource.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,82 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Domain do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Domain.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(update create list delete).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the domain.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "domain.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+
45
+ it 'should be able to provide access to the Linode Domain Resource API' do
46
+ @linode.should respond_to(:resource)
47
+ end
48
+
49
+ describe 'when providing access to the Linode Domain Resource API' do
50
+ before :each do
51
+ @api_key = 'foo'
52
+ @api_url = 'https://fake.linode.com/'
53
+ @linode = Linode::Domain.new(:api_key => @api_key, :api_url => @api_url)
54
+ end
55
+
56
+ it 'should allow no arguments' do
57
+ lambda { @linode.resource }.should_not raise_error(ArgumentError)
58
+ end
59
+
60
+ it 'should require no arguments' do
61
+ lambda { @linode.resource(:foo) }.should raise_error(ArgumentError)
62
+ end
63
+
64
+ it 'should return a Linode::Domain::Resource instance' do
65
+ @linode.resource.class.should == Linode::Domain::Resource
66
+ end
67
+
68
+ it 'should set the API key on the Linode::Domain::Resource instance to be our API key' do
69
+ @linode.resource.api_key.should == @api_key
70
+ end
71
+
72
+ it 'should set the API url on the Linode::Domain::Resource instance to be our API url' do
73
+ @linode.resource.api_url.should == @api_url
74
+ end
75
+
76
+ it 'should return the same Linode::Domain::Resource instance when called again' do
77
+ linode = Linode::Domain.new(:api_key => @api_key)
78
+ result = linode.resource
79
+ linode.resource.should == result
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Linode::Config do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Linode::Config.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(update create list delete).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "linode.config.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Linode::Disk do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Linode::Disk.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(update create list createfromdistribution createfromstackscript duplicate delete resize).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "linode.disk.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Linode::Ip do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Linode::Ip.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(list).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "linode.ip.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Linode::Job do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Linode::Job.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(list).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the avail.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "linode.job.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,196 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper.rb')
2
+ require 'linode'
3
+
4
+ describe Linode::Linode do
5
+ before :each do
6
+ @api_key = 'foo'
7
+ @linode = Linode::Linode.new(:api_key => @api_key)
8
+ end
9
+
10
+ it 'should be a Linode instance' do
11
+ @linode.class.should < Linode
12
+ end
13
+
14
+ %w(update create list shutdown boot delete reboot).each do |action|
15
+ it "should allow accessing the #{action} API" do
16
+ @linode.should respond_to(action.to_sym)
17
+ end
18
+
19
+ describe "when accessing the #{action} API" do
20
+ it 'should allow a data hash' do
21
+ lambda { @linode.send(action.to_sym, {}) }.should_not raise_error(ArgumentError)
22
+ end
23
+
24
+ it 'should not require arguments' do
25
+ lambda { @linode.send(action.to_sym) }.should_not raise_error(ArgumentError)
26
+ end
27
+
28
+ it "should request the linode.#{action} action" do
29
+ @linode.expects(:send_request).with {|api_action, data| api_action == "linode.#{action}" }
30
+ @linode.send(action.to_sym)
31
+ end
32
+
33
+ it 'should provide the data hash when making its request' do
34
+ @linode.expects(:send_request).with {|api_action, data| data = { :foo => :bar } }
35
+ @linode.send(action.to_sym, {:foo => :bar})
36
+ end
37
+
38
+ it 'should return the result of the request' do
39
+ @linode.expects(:send_request).returns(:bar => :baz)
40
+ @linode.send(action.to_sym).should == { :bar => :baz }
41
+ end
42
+ end
43
+ end
44
+
45
+ it 'should be able to provide access to the Linode Config API' do
46
+ @linode.should respond_to(:config)
47
+ end
48
+
49
+ describe 'when providing access to the Linode Config API' do
50
+ before :each do
51
+ @api_key = 'foo'
52
+ @api_url = 'https://fake.linode.com/'
53
+ @linode = Linode::Linode.new(:api_key => @api_key, :api_url => @api_url)
54
+ end
55
+
56
+ it 'should allow no arguments' do
57
+ lambda { @linode.config }.should_not raise_error(ArgumentError)
58
+ end
59
+
60
+ it 'should require no arguments' do
61
+ lambda { @linode.config(:foo) }.should raise_error(ArgumentError)
62
+ end
63
+
64
+ it 'should return a Linode::Linode::Config instance' do
65
+ @linode.config.class.should == Linode::Linode::Config
66
+ end
67
+
68
+ it 'should set the API key on the Linode::Linode::Config instance to be our API key' do
69
+ @linode.config.api_key.should == @api_key
70
+ end
71
+
72
+ it 'should set the API url on the Linode::Linode::Config instance to be our API url' do
73
+ @linode.config.api_url.should == @api_url
74
+ end
75
+
76
+ it 'should return the same Linode::Linode::Config instance when called again' do
77
+ linode = Linode::Linode.new(:api_key => @api_key)
78
+ result = linode.config
79
+ linode.config.should == result
80
+ end
81
+ end
82
+
83
+ it 'should be able to provide access to the Linode Disk API' do
84
+ @linode.should respond_to(:disk)
85
+ end
86
+
87
+ describe 'when providing access to the Linode Disk API' do
88
+ before :each do
89
+ @api_key = 'foo'
90
+ @api_url = 'https://fake.linode.com/'
91
+ @linode = Linode::Linode.new(:api_key => @api_key, :api_url => @api_url)
92
+ end
93
+
94
+ it 'should allow no arguments' do
95
+ lambda { @linode.disk }.should_not raise_error(ArgumentError)
96
+ end
97
+
98
+ it 'should require no arguments' do
99
+ lambda { @linode.disk(:foo) }.should raise_error(ArgumentError)
100
+ end
101
+
102
+ it 'should return a Linode::Linode::Disk instance' do
103
+ @linode.disk.class.should == Linode::Linode::Disk
104
+ end
105
+
106
+ it 'should set the API key on the Linode::Linode::Disk instance to be our API key' do
107
+ @linode.disk.api_key.should == @api_key
108
+ end
109
+
110
+ it 'should set the API url on the Linode::Linode::Disk instance to be our API url' do
111
+ @linode.disk.api_url.should == @api_url
112
+ end
113
+
114
+ it 'should return the same Linode::Linode::Disk instance when called again' do
115
+ linode = Linode::Linode.new(:api_key => @api_key)
116
+ result = linode.disk
117
+ linode.disk.should == result
118
+ end
119
+ end
120
+
121
+ it 'should be able to provide access to the Linode Job API' do
122
+ @linode.should respond_to(:job)
123
+ end
124
+
125
+ describe 'when providing access to the Linode Job API' do
126
+ before :each do
127
+ @api_key = 'foo'
128
+ @api_url = 'https://fake.linode.com/'
129
+ @linode = Linode::Linode.new(:api_key => @api_key, :api_url => @api_url)
130
+ end
131
+
132
+ it 'should allow no arguments' do
133
+ lambda { @linode.job }.should_not raise_error(ArgumentError)
134
+ end
135
+
136
+ it 'should require no arguments' do
137
+ lambda { @linode.job(:foo) }.should raise_error(ArgumentError)
138
+ end
139
+
140
+ it 'should return a Linode::Linode::Job instance' do
141
+ @linode.job.class.should == Linode::Linode::Job
142
+ end
143
+
144
+ it 'should set the API key on the Linode::Linode::Job instance to be our API key' do
145
+ @linode.job.api_key.should == @api_key
146
+ end
147
+
148
+ it 'should set the API url on the Linode::Linode::Job instance to be our API url' do
149
+ @linode.job.api_url.should == @api_url
150
+ end
151
+
152
+ it 'should return the same Linode::Linode::Job instance when called again' do
153
+ linode = Linode::Linode.new(:api_key => @api_key)
154
+ result = linode.job
155
+ linode.job.should == result
156
+ end
157
+ end
158
+
159
+ it 'should be able to provide access to the Linode Ip API' do
160
+ @linode.should respond_to(:ip)
161
+ end
162
+
163
+ describe 'when providing access to the Linode Ip API' do
164
+ before :each do
165
+ @api_key = 'foo'
166
+ @api_url = 'https://fake.linode.com/'
167
+ @linode = Linode::Linode.new(:api_key => @api_key, :api_url => @api_url)
168
+ end
169
+
170
+ it 'should allow no arguments' do
171
+ lambda { @linode.ip }.should_not raise_error(ArgumentError)
172
+ end
173
+
174
+ it 'should require no arguments' do
175
+ lambda { @linode.ip(:foo) }.should raise_error(ArgumentError)
176
+ end
177
+
178
+ it 'should return a Linode::Linode::Ip instance' do
179
+ @linode.ip.class.should == Linode::Linode::Ip
180
+ end
181
+
182
+ it 'should set the API key on the Linode::Linode::Ip instance to be our API key' do
183
+ @linode.ip.api_key.should == @api_key
184
+ end
185
+
186
+ it 'should set the API url on the Linode::Linode::Ip instance to be our API url' do
187
+ @linode.ip.api_url.should == @api_url
188
+ end
189
+
190
+ it 'should return the same Linode::Linode::Linode instance when called again' do
191
+ linode = Linode::Linode.new(:api_key => @api_key)
192
+ result = linode.ip
193
+ linode.ip.should == result
194
+ end
195
+ end
196
+ end