solusvm 1.4.0 → 2.0.0.beta1
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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/LICENSE +1 -1
- data/README.markdown +159 -116
- data/Rakefile +3 -33
- data/bin/solusvm +3 -4
- data/lib/solusvm.rb +1 -3
- data/lib/solusvm/base.rb +101 -46
- data/lib/solusvm/cli.rb +8 -8
- data/lib/solusvm/cli/base_cli.rb +3 -3
- data/lib/solusvm/cli/client_cli.rb +3 -5
- data/lib/solusvm/cli/general_cli.rb +3 -5
- data/lib/solusvm/cli/node_cli.rb +3 -5
- data/lib/solusvm/cli/reseller_cli.rb +3 -5
- data/lib/solusvm/cli/server_cli.rb +4 -6
- data/lib/solusvm/client.rb +45 -27
- data/lib/solusvm/errors.rb +3 -0
- data/lib/solusvm/general.rb +11 -12
- data/lib/solusvm/hash.rb +1 -11
- data/lib/solusvm/node.rb +33 -21
- data/lib/solusvm/reseller.rb +53 -49
- data/lib/solusvm/server.rb +188 -52
- data/lib/solusvm/version.rb +2 -2
- data/test/cli/test_base_cli.rb +14 -4
- data/test/cli/test_client_cli.rb +13 -13
- data/test/cli/test_general_cli.rb +7 -7
- data/test/cli/test_node_cli.rb +13 -13
- data/test/cli/test_reseller_cli.rb +11 -11
- data/test/cli/test_server_cli.rb +61 -61
- data/test/sham_rack_stubs/base/parse-response.json +4 -0
- data/test/sham_rack_stubs/client/authenticate.json +4 -0
- data/test/sham_rack_stubs/client/change-password.json +6 -0
- data/test/sham_rack_stubs/client/create.json +9 -0
- data/test/sham_rack_stubs/client/delete.json +4 -0
- data/test/sham_rack_stubs/client/exists.json +4 -0
- data/test/sham_rack_stubs/client/list-empty.json +5 -0
- data/test/sham_rack_stubs/client/list.json +30 -0
- data/test/sham_rack_stubs/general/isos-empty.json +5 -0
- data/test/sham_rack_stubs/general/isos.json +5 -0
- data/test/sham_rack_stubs/general/plans-empty.json +5 -0
- data/test/sham_rack_stubs/general/plans.json +5 -0
- data/test/sham_rack_stubs/general/templates-empty.json +7 -0
- data/test/sham_rack_stubs/general/templates.json +7 -0
- data/test/sham_rack_stubs/generic/error.json +4 -0
- data/test/sham_rack_stubs/node/available-ips-empty.json +6 -0
- data/test/sham_rack_stubs/node/available-ips.json +6 -0
- data/test/sham_rack_stubs/node/ids.json +5 -0
- data/test/sham_rack_stubs/node/list-empty.json +5 -0
- data/test/sham_rack_stubs/node/list-groups.json +5 -0
- data/test/sham_rack_stubs/node/list.json +5 -0
- data/test/sham_rack_stubs/node/statistics.json +21 -0
- data/test/sham_rack_stubs/node/virtualservers-empty.json +5 -0
- data/test/sham_rack_stubs/node/virtualservers.json +19 -0
- data/test/sham_rack_stubs/node/xenresources.json +6 -0
- data/test/sham_rack_stubs/reseller/change-resources.json +18 -0
- data/test/sham_rack_stubs/reseller/create.json +25 -0
- data/test/sham_rack_stubs/reseller/delete.json +4 -0
- data/test/sham_rack_stubs/reseller/info.json +24 -0
- data/test/sham_rack_stubs/reseller/list-empty.json +5 -0
- data/test/sham_rack_stubs/reseller/list.json +5 -0
- data/test/sham_rack_stubs/server/add-ip.json +5 -0
- data/test/sham_rack_stubs/server/boot.json +4 -0
- data/test/sham_rack_stubs/server/change-bootorder.json +4 -0
- data/test/sham_rack_stubs/server/change-hostname.json +5 -0
- data/test/sham_rack_stubs/server/change-owner.json +4 -0
- data/test/sham_rack_stubs/server/change-plan.json +4 -0
- data/test/sham_rack_stubs/server/change-rootpassword.json +5 -0
- data/test/sham_rack_stubs/server/change-vncpass.json +5 -0
- data/test/sham_rack_stubs/server/console.json +13 -0
- data/test/sham_rack_stubs/server/create.json +13 -0
- data/test/sham_rack_stubs/server/del-ip.json +4 -0
- data/test/sham_rack_stubs/server/exists.json +4 -0
- data/test/sham_rack_stubs/server/info-all.json +16 -0
- data/test/sham_rack_stubs/server/info.json +15 -0
- data/test/sham_rack_stubs/server/mountiso.json +4 -0
- data/test/sham_rack_stubs/server/network-disable.json +4 -0
- data/test/sham_rack_stubs/server/network-enable.json +4 -0
- data/test/sham_rack_stubs/server/pae-disable.json +4 -0
- data/test/sham_rack_stubs/server/pae-enable.json +4 -0
- data/test/sham_rack_stubs/server/reboot.json +4 -0
- data/test/sham_rack_stubs/server/rebuild.json +4 -0
- data/test/sham_rack_stubs/server/resume.json +4 -0
- data/test/sham_rack_stubs/server/shutdown.json +4 -0
- data/test/sham_rack_stubs/server/status.json +4 -0
- data/test/sham_rack_stubs/server/suspend.json +4 -0
- data/test/sham_rack_stubs/server/terminate.json +4 -0
- data/test/sham_rack_stubs/server/tun-disable.json +4 -0
- data/test/sham_rack_stubs/server/tun-enable.json +4 -0
- data/test/sham_rack_stubs/server/unmountiso.json +4 -0
- data/test/sham_rack_stubs/server/vnc.json +8 -0
- data/test/solusvm/test_base.rb +34 -56
- data/test/solusvm/test_cli.rb +3 -3
- data/test/solusvm/test_client.rb +56 -66
- data/test/solusvm/test_general.rb +34 -19
- data/test/solusvm/test_hash.rb +0 -9
- data/test/solusvm/test_node.rb +66 -72
- data/test/solusvm/test_reseller.rb +47 -58
- data/test/solusvm/test_server.rb +149 -164
- data/test/test_helper.rb +43 -31
- metadata +173 -189
- data/.document +0 -5
- data/.gitignore +0 -25
- data/.travis.yml +0 -12
- data/solusvm.gemspec +0 -33
- data/test/vcr_cassettes/base/invalid_key.yml +0 -19
- data/test/vcr_cassettes/base/invalid_status.yml +0 -19
- data/test/vcr_cassettes/base/nonexistent_node.yml +0 -19
- data/test/vcr_cassettes/base/parse_response.yml +0 -28
- data/test/vcr_cassettes/base/statusmsg.yml +0 -28
- data/test/vcr_cassettes/base/successful.yml +0 -68
- data/test/vcr_cassettes/base/successful_instance_config.yml +0 -28
- data/test/vcr_cassettes/base/unauthorized_ip.yml +0 -19
- data/test/vcr_cassettes/client/authenticate.yml +0 -37
- data/test/vcr_cassettes/client/change_password.yml +0 -39
- data/test/vcr_cassettes/client/create.yml +0 -42
- data/test/vcr_cassettes/client/delete.yml +0 -37
- data/test/vcr_cassettes/client/exists.yml +0 -20
- data/test/vcr_cassettes/client/list.yml +0 -66
- data/test/vcr_cassettes/general/isos.yml +0 -38
- data/test/vcr_cassettes/general/plans.yml +0 -38
- data/test/vcr_cassettes/general/templates.yml +0 -38
- data/test/vcr_cassettes/node/available_ips.yml +0 -41
- data/test/vcr_cassettes/node/ids.yml +0 -21
- data/test/vcr_cassettes/node/list.yml +0 -38
- data/test/vcr_cassettes/node/list_groups.yml +0 -20
- data/test/vcr_cassettes/node/statistics.yml +0 -32
- data/test/vcr_cassettes/node/virtualservers.yml +0 -67
- data/test/vcr_cassettes/node/xenresources.yml +0 -22
- data/test/vcr_cassettes/reseller/change_resources.yml +0 -27
- data/test/vcr_cassettes/reseller/create.yml +0 -27
- data/test/vcr_cassettes/reseller/delete.yml +0 -15
- data/test/vcr_cassettes/reseller/info.yml +0 -27
- data/test/vcr_cassettes/reseller/list.yml +0 -27
- data/test/vcr_cassettes/server/.yml +0 -1017
- data/test/vcr_cassettes/server/add_ip.yml +0 -15
- data/test/vcr_cassettes/server/boot.yml +0 -15
- data/test/vcr_cassettes/server/change_bootorder.yml +0 -15
- data/test/vcr_cassettes/server/change_consolepass.yml +0 -16
- data/test/vcr_cassettes/server/change_hostname.yml +0 -15
- data/test/vcr_cassettes/server/change_owner.yml +0 -15
- data/test/vcr_cassettes/server/change_plan.yml +0 -15
- data/test/vcr_cassettes/server/change_rootpassword.yml +0 -15
- data/test/vcr_cassettes/server/change_vncpass.yml +0 -15
- data/test/vcr_cassettes/server/console.yml +0 -28
- data/test/vcr_cassettes/server/create.yml +0 -27
- data/test/vcr_cassettes/server/del_ip.yml +0 -15
- data/test/vcr_cassettes/server/exists.yml +0 -15
- data/test/vcr_cassettes/server/info.yml +0 -27
- data/test/vcr_cassettes/server/info_all.yml +0 -15
- data/test/vcr_cassettes/server/mountiso.yml +0 -15
- data/test/vcr_cassettes/server/network_disable.yml +0 -15
- data/test/vcr_cassettes/server/network_enable.yml +0 -15
- data/test/vcr_cassettes/server/pae_disable.yml +0 -15
- data/test/vcr_cassettes/server/pae_enable.yml +0 -15
- data/test/vcr_cassettes/server/reboot.yml +0 -15
- data/test/vcr_cassettes/server/rebuild.yml +0 -15
- data/test/vcr_cassettes/server/resume.yml +0 -15
- data/test/vcr_cassettes/server/shutdown.yml +0 -15
- data/test/vcr_cassettes/server/status.yml +0 -15
- data/test/vcr_cassettes/server/suspend.yml +0 -15
- data/test/vcr_cassettes/server/terminate.yml +0 -27
- data/test/vcr_cassettes/server/tun_disable.yml +0 -15
- data/test/vcr_cassettes/server/tun_enable.yml +0 -15
- data/test/vcr_cassettes/server/unmountiso.yml +0 -15
- data/test/vcr_cassettes/server/vnc.yml +0 -15
data/test/solusvm/test_base.rb
CHANGED
@@ -1,53 +1,37 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class TestBase < Test::Unit::TestCase
|
4
|
-
|
5
4
|
def setup
|
6
|
-
@base =
|
5
|
+
@base = SolusVM::Base.new(solusvm_params)
|
7
6
|
end
|
8
7
|
|
9
8
|
def test_valid_server_types
|
10
|
-
assert_equal 3,
|
11
|
-
assert_equal ['openvz', 'xen', 'xen hvm'].sort,
|
9
|
+
assert_equal 3, SolusVM::Base::VALID_SERVER_TYPES.size
|
10
|
+
assert_equal ['openvz', 'xen', 'xen hvm'].sort, SolusVM::Base::VALID_SERVER_TYPES.sort
|
12
11
|
end
|
13
12
|
|
14
13
|
def test_parse_response
|
15
14
|
assert_nil @base.returned_parameters
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
assert_equal '100', params['vserverid']
|
25
|
-
assert_equal 'Virtual server created', params['statusmsg']
|
26
|
-
assert_equal 'vm101|101', params['virtid']
|
27
|
-
assert_equal '123456', params['consolepassword']
|
28
|
-
assert_equal '122.122.122.122,111.111.111.111', params['extraipaddress']
|
29
|
-
assert_equal 'server.hostname.com', params['hostname']
|
30
|
-
assert_equal '123456', params['rootpassword']
|
31
|
-
assert_equal 'success', params['status']
|
15
|
+
|
16
|
+
stub_response 'base/parse-response'
|
17
|
+
|
18
|
+
assert @base.perform_request(action: 'test', vserverid: 1)
|
19
|
+
|
20
|
+
res = @base.returned_parameters
|
21
|
+
assert res.is_a? Hash
|
22
|
+
assert_not_empty res
|
32
23
|
end
|
33
24
|
|
34
25
|
def test_successful
|
35
|
-
|
36
|
-
@base.perform_request(action: 'testsuccess', vserverid: 1)
|
37
|
-
assert @base.successful?
|
26
|
+
stub_response 'base/parse-response'
|
38
27
|
|
39
|
-
|
40
|
-
|
28
|
+
@base.perform_request(action: 'testsuccess', vserverid: 1)
|
29
|
+
assert @base.successful?
|
41
30
|
|
42
|
-
|
43
|
-
assert @base.successful?
|
44
|
-
end
|
31
|
+
stub_response 'generic/error'
|
45
32
|
|
46
|
-
|
47
|
-
|
48
|
-
@base.perform_request(action: 'testconfig', vserverid: 1)
|
49
|
-
assert @base.successful?
|
50
|
-
end
|
33
|
+
@base.perform_request(action: 'testsuccess', vserverid: 1)
|
34
|
+
assert !@base.successful?
|
51
35
|
end
|
52
36
|
|
53
37
|
def test_api_login
|
@@ -55,14 +39,14 @@ class TestBase < Test::Unit::TestCase
|
|
55
39
|
end
|
56
40
|
|
57
41
|
def test_statusmsg
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
assert_equal '
|
42
|
+
stub_response 'base/parse-response'
|
43
|
+
|
44
|
+
assert @base.perform_request(action: 'testsuccess')
|
45
|
+
assert_equal 'The status message', @base.statusmsg
|
62
46
|
end
|
63
47
|
|
64
48
|
def test_validate_server_type
|
65
|
-
|
49
|
+
SolusVM::Base::VALID_SERVER_TYPES.each do |type|
|
66
50
|
assert @base.validate_server_type(type) { true }
|
67
51
|
end
|
68
52
|
|
@@ -72,38 +56,32 @@ class TestBase < Test::Unit::TestCase
|
|
72
56
|
end
|
73
57
|
|
74
58
|
def test_unautorized_ip
|
75
|
-
|
76
|
-
@base.perform_request(action: 'unauthorized')
|
59
|
+
setup_sham_rack { "Invalid ipaddress" }
|
77
60
|
|
78
|
-
|
79
|
-
|
61
|
+
assert_raise SolusVM::AuthenticationError do
|
62
|
+
assert !@base.perform_request(action: 'unauthorized')
|
80
63
|
end
|
81
64
|
end
|
82
65
|
|
83
66
|
def test_invalid_key_or_id
|
84
|
-
|
85
|
-
@base.perform_request(action: 'badkey')
|
67
|
+
setup_sham_rack { "Invalid id or key" }
|
86
68
|
|
87
|
-
|
88
|
-
|
69
|
+
assert_raise SolusVM::AuthenticationError do
|
70
|
+
assert !@base.perform_request(action: 'badkey')
|
89
71
|
end
|
90
72
|
end
|
91
73
|
|
92
74
|
def test_node_does_not_exist
|
93
|
-
|
94
|
-
@base.perform_request(action: 'nodeexist')
|
75
|
+
setup_sham_rack { "Node not found" }
|
95
76
|
|
96
|
-
|
97
|
-
|
98
|
-
end
|
77
|
+
assert !@base.perform_request(action: 'nodeexist')
|
78
|
+
assert_equal "Node does not exist", @base.statusmsg
|
99
79
|
end
|
100
80
|
|
101
81
|
def test_invalid_http_status
|
102
|
-
|
103
|
-
@base.perform_request(action: 'httperror')
|
82
|
+
setup_sham_rack { status 404 }
|
104
83
|
|
105
|
-
|
106
|
-
|
107
|
-
end
|
84
|
+
assert !@base.perform_request(action: 'httperror')
|
85
|
+
assert_equal "Bad HTTP Status: 404", @base.statusmsg
|
108
86
|
end
|
109
87
|
end
|
data/test/solusvm/test_cli.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'solusvm/cli'
|
3
3
|
|
4
|
-
class
|
4
|
+
class TestCLI < Test::Unit::TestCase
|
5
5
|
|
6
6
|
def setup
|
7
7
|
# Prevents mocha from stubbing non existent methods so that we now if the CLI is failing because
|
@@ -10,8 +10,8 @@ class TestCli < Test::Unit::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def test_should_print_version
|
13
|
-
$stdout.expects(:puts).with(
|
14
|
-
|
13
|
+
$stdout.expects(:puts).with(SolusVM::VERSION)
|
14
|
+
SolusVM::CLI.start %W(version)
|
15
15
|
end
|
16
16
|
|
17
17
|
end
|
data/test/solusvm/test_client.rb
CHANGED
@@ -1,108 +1,98 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class TestClient < Test::Unit::TestCase
|
4
|
-
|
5
4
|
def setup
|
6
|
-
@client =
|
5
|
+
@client = SolusVM::Client.new(solusvm_params)
|
7
6
|
end
|
8
7
|
|
9
8
|
def test_create
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
9
|
+
stub_response 'client/create'
|
10
|
+
|
11
|
+
options = {
|
12
|
+
username: 'vps123',
|
13
|
+
password: '123456',
|
14
|
+
email: 'email@address.com',
|
15
|
+
firstname: 'phill',
|
16
|
+
lastname: 'smith'
|
17
|
+
}
|
18
|
+
|
19
|
+
assert @client.create(options).is_a? Hash
|
20
|
+
assert @client.successful?
|
22
21
|
end
|
23
22
|
|
24
23
|
def test_create_fail
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
assert_equal 'Empty username field', @client.statusmsg
|
24
|
+
stub_response 'generic/error'
|
25
|
+
|
26
|
+
assert !@client.create
|
29
27
|
end
|
30
28
|
|
31
29
|
def test_exists
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
stub_response 'client/exists'
|
31
|
+
|
32
|
+
assert @client.exists?("vps123")
|
33
|
+
assert @client.successful?
|
36
34
|
end
|
37
35
|
|
38
36
|
def test_change_password
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
stub_response 'client/change-password'
|
38
|
+
|
39
|
+
assert @client.change_password("vps123","123456")
|
40
|
+
assert @client.successful?
|
42
41
|
end
|
43
42
|
|
44
43
|
def test_change_password_fail
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
stub_response 'generic/error'
|
45
|
+
|
46
|
+
assert !@client.change_password("vps13","thecake")
|
48
47
|
end
|
49
48
|
|
50
49
|
def test_authenticate
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
stub_response 'client/authenticate'
|
51
|
+
|
52
|
+
assert @client.authenticate('u', 'p')
|
53
|
+
assert @client.successful?
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_authenticate_fail
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
assert_equal 'invalid username or password', @client.statusmsg
|
57
|
+
stub_response 'generic/error'
|
58
|
+
|
59
|
+
assert !@client.authenticate('u', 'notp')
|
61
60
|
end
|
62
61
|
|
63
62
|
def test_delete
|
64
|
-
|
65
|
-
|
66
|
-
|
63
|
+
stub_response 'client/delete'
|
64
|
+
|
65
|
+
assert @client.delete("vps123")
|
66
|
+
assert @client.successful?
|
67
67
|
end
|
68
68
|
|
69
69
|
def test_delete_fail
|
70
|
-
|
71
|
-
|
72
|
-
|
70
|
+
stub_response 'generic/error'
|
71
|
+
|
72
|
+
assert !@client.delete("novps")
|
73
73
|
end
|
74
74
|
|
75
75
|
def test_list
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
assert_equal "1", client["id"]
|
84
|
-
assert_equal "vps123", client["username"]
|
85
|
-
assert_equal "vps123@email.com", client["email"]
|
86
|
-
assert_equal "phill", client["firstname"]
|
87
|
-
assert_equal "smith", client["lastname"]
|
88
|
-
assert_equal "VPS Co", client["company"]
|
89
|
-
assert_equal "Client", client["level"]
|
90
|
-
assert_equal "Active", client["status"]
|
91
|
-
assert_equal "2009-01-01", client["created"]
|
92
|
-
assert_equal "2010-04-23", client["lastlogin"]
|
76
|
+
stub_response 'client/list'
|
77
|
+
|
78
|
+
list = @client.list
|
79
|
+
|
80
|
+
assert list.is_a? Array
|
81
|
+
assert_not_empty list
|
93
82
|
end
|
94
83
|
|
95
84
|
def test_list_empty
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
85
|
+
stub_response 'client/list-empty'
|
86
|
+
|
87
|
+
list = @client.list
|
88
|
+
|
89
|
+
assert list.is_a? Array
|
90
|
+
assert_empty @client.list
|
100
91
|
end
|
101
92
|
|
102
93
|
def test_list_fail
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
end
|
94
|
+
stub_response 'generic/error'
|
95
|
+
|
96
|
+
assert_nil @client.list
|
107
97
|
end
|
108
98
|
end
|
@@ -2,20 +2,25 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestGeneral < Test::Unit::TestCase
|
4
4
|
def setup
|
5
|
-
@general =
|
5
|
+
@general = SolusVM::General.new(solusvm_params)
|
6
6
|
end
|
7
7
|
|
8
8
|
def test_templates
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
stub_response 'general/templates'
|
10
|
+
|
11
|
+
list = @general.templates('xen')
|
12
|
+
|
13
|
+
assert list.is_a? Array
|
14
|
+
assert_not_empty list
|
15
|
+
assert @general.successful?
|
12
16
|
end
|
13
17
|
|
14
18
|
# TODO: Refactor so that the lib is not validating server types
|
15
19
|
def test_templates_empty
|
16
|
-
|
17
|
-
|
18
|
-
|
20
|
+
stub_response 'general/templates-empty'
|
21
|
+
|
22
|
+
assert !@general.templates('xen')
|
23
|
+
assert @general.successful?
|
19
24
|
end
|
20
25
|
|
21
26
|
def test_templates_with_invalid_type
|
@@ -23,15 +28,20 @@ class TestGeneral < Test::Unit::TestCase
|
|
23
28
|
end
|
24
29
|
|
25
30
|
def test_plans
|
26
|
-
|
27
|
-
|
28
|
-
|
31
|
+
stub_response 'general/plans'
|
32
|
+
|
33
|
+
list = @general.plans('xen')
|
34
|
+
|
35
|
+
assert list.is_a? Array
|
36
|
+
assert_not_empty list
|
37
|
+
assert @general.successful?
|
29
38
|
end
|
30
39
|
|
31
40
|
def test_plans_empty
|
32
|
-
|
33
|
-
|
34
|
-
|
41
|
+
stub_response 'general/plans-empty'
|
42
|
+
|
43
|
+
assert !@general.plans('xen')
|
44
|
+
assert @general.successful?
|
35
45
|
end
|
36
46
|
|
37
47
|
def test_plans_with_invalid_type
|
@@ -39,15 +49,20 @@ class TestGeneral < Test::Unit::TestCase
|
|
39
49
|
end
|
40
50
|
|
41
51
|
def test_isos
|
42
|
-
|
43
|
-
|
44
|
-
|
52
|
+
stub_response 'general/isos'
|
53
|
+
|
54
|
+
list = @general.isos('xen')
|
55
|
+
|
56
|
+
assert list.is_a? Array
|
57
|
+
assert_not_empty list
|
58
|
+
assert @general.successful?
|
45
59
|
end
|
46
60
|
|
47
61
|
def test_isos_empty
|
48
|
-
|
49
|
-
|
50
|
-
|
62
|
+
stub_response 'general/isos-empty'
|
63
|
+
|
64
|
+
assert !@general.isos('xen')
|
65
|
+
assert @general.successful?
|
51
66
|
end
|
52
67
|
|
53
68
|
def test_isos_with_invalid_type
|