squall 1.3.0 → 1.3.1
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 +7 -0
- data/LICENSE +1 -1
- data/README.md +64 -41
- data/Rakefile +3 -9
- data/lib/squall/data_store_zone.rb +20 -26
- data/lib/squall/disk.rb +174 -0
- data/lib/squall/firewall_rule.rb +34 -41
- data/lib/squall/hypervisor.rb +40 -38
- data/lib/squall/hypervisor_zone.rb +51 -63
- data/lib/squall/ip_address.rb +32 -37
- data/lib/squall/ip_address_join.rb +13 -22
- data/lib/squall/network.rb +36 -33
- data/lib/squall/network_zone.rb +27 -29
- data/lib/squall/payment.rb +22 -32
- data/lib/squall/role.rb +30 -37
- data/lib/squall/statistic.rb +3 -1
- data/lib/squall/support/base.rb +35 -31
- data/lib/squall/support/config.rb +25 -1
- data/lib/squall/support/version.rb +1 -1
- data/lib/squall/template.rb +7 -5
- data/lib/squall/transaction.rb +6 -4
- data/lib/squall/user.rb +84 -83
- data/lib/squall/user_group.rb +17 -30
- data/lib/squall/virtual_machine.rb +154 -178
- data/lib/squall/whitelist.rb +29 -40
- data/lib/squall.rb +27 -25
- data/spec/spec_helper.rb +6 -11
- data/spec/squall/data_store_zone_spec.rb +2 -20
- data/spec/squall/disk_spec.rb +189 -0
- data/spec/squall/firewall_rule_spec.rb +2 -32
- data/spec/squall/hypervisor_spec.rb +3 -47
- data/spec/squall/hypervisor_zone_spec.rb +3 -28
- data/spec/squall/ip_address_join_spec.rb +1 -15
- data/spec/squall/ip_address_spec.rb +10 -35
- data/spec/squall/network_spec.rb +20 -31
- data/spec/squall/network_zone_spec.rb +2 -36
- data/spec/squall/payment_spec.rb +2 -21
- data/spec/squall/role_spec.rb +4 -16
- data/spec/squall/support/base_spec.rb +10 -16
- data/spec/squall/template_spec.rb +0 -4
- data/spec/squall/transaction_spec.rb +1 -3
- data/spec/squall/user_group_spec.rb +1 -17
- data/spec/squall/user_spec.rb +4 -92
- data/spec/squall/virtual_machine_spec.rb +8 -242
- data/spec/squall/whitelist_spec.rb +2 -40
- data/spec/squall_spec.rb +2 -2
- data/spec/vcr_cassettes/disk/add_schedule.yml +40 -0
- data/spec/vcr_cassettes/disk/auto_backup_off.yml +40 -0
- data/spec/vcr_cassettes/disk/auto_backup_on.yml +40 -0
- data/spec/vcr_cassettes/disk/backups.yml +40 -0
- data/spec/vcr_cassettes/disk/build.yml +40 -0
- data/spec/vcr_cassettes/disk/create.yml +40 -0
- data/spec/vcr_cassettes/disk/delete.yml +38 -0
- data/spec/vcr_cassettes/disk/edit.yml +40 -0
- data/spec/vcr_cassettes/disk/iops_usage.yml +40 -0
- data/spec/vcr_cassettes/disk/list.yml +40 -0
- data/spec/vcr_cassettes/disk/migrate.yml +38 -0
- data/spec/vcr_cassettes/disk/schedules.yml +40 -0
- data/spec/vcr_cassettes/disk/unlock.yml +40 -0
- data/spec/vcr_cassettes/disk/vm_disk_list.yml +40 -0
- data/spec/vcr_cassettes/network/rebuild.yml +41 -0
- metadata +217 -66
- data/.gitignore +0 -13
- data/.rspec +0 -2
- data/.rvmrc +0 -41
- data/.travis.yml +0 -17
- data/lib/squall/support/params.rb +0 -50
- data/lib/squall/support/yaml.rb +0 -5
- data/spec/squall/support/params_spec.rb +0 -195
- data/squall.gemspec +0 -32
@@ -10,10 +10,6 @@ describe Squall::IpAddress do
|
|
10
10
|
describe "#list" do
|
11
11
|
use_vcr_cassette 'ipaddress/list'
|
12
12
|
|
13
|
-
it "requires network_id" do
|
14
|
-
expect { @ip.list }.to raise_error(ArgumentError)
|
15
|
-
end
|
16
|
-
|
17
13
|
it "returns ip_addresses" do
|
18
14
|
ips = @ip.list(1)
|
19
15
|
ips.should be_an(Array)
|
@@ -29,21 +25,13 @@ describe Squall::IpAddress do
|
|
29
25
|
use_vcr_cassette 'ipaddress/edit'
|
30
26
|
|
31
27
|
ip_params = {
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
28
|
+
address: '109.123.91.67',
|
29
|
+
netmask: '255.255.255.193',
|
30
|
+
broadcast: '109.123.91.128',
|
31
|
+
network_address: '109.123.91.65',
|
32
|
+
gateway: '109.123.91.66'
|
37
33
|
}
|
38
34
|
|
39
|
-
it "raises ArgumentError without required arguments" do
|
40
|
-
expect { @ip.edit }.to raise_error(ArgumentError)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "raises ArgumentError without id argument" do
|
44
|
-
expect { @ip.edit(1) }.to raise_error(ArgumentError)
|
45
|
-
end
|
46
|
-
|
47
35
|
it "edits the IpAddress" do
|
48
36
|
ip = @ip.edit(1, 1, ip_params)
|
49
37
|
@ip.success.should be_true
|
@@ -53,21 +41,13 @@ describe Squall::IpAddress do
|
|
53
41
|
describe "#create" do
|
54
42
|
use_vcr_cassette 'ipaddress/create'
|
55
43
|
|
56
|
-
it "raises ArgumentError without network_id" do
|
57
|
-
expect { @ip.create }.to raise_error(ArgumentError)
|
58
|
-
end
|
59
|
-
|
60
|
-
it "raises ArgumentError without required options" do
|
61
|
-
expect { @ip.create(1, {}) }.to raise_error(ArgumentError)
|
62
|
-
end
|
63
|
-
|
64
44
|
it "creates a new IP" do
|
65
45
|
new_ip = @ip.create(1,
|
66
|
-
:
|
67
|
-
:
|
68
|
-
:
|
69
|
-
:
|
70
|
-
:
|
46
|
+
address: '109.123.91.24',
|
47
|
+
netmask: '255.255.255.194',
|
48
|
+
broadcast: '109.123.91.129',
|
49
|
+
network_address: '109.123.91.66',
|
50
|
+
gateway: '109.123.91.67'
|
71
51
|
)
|
72
52
|
|
73
53
|
@ip.success.should be_true
|
@@ -77,11 +57,6 @@ describe Squall::IpAddress do
|
|
77
57
|
describe "#delete" do
|
78
58
|
use_vcr_cassette 'ipaddress/delete'
|
79
59
|
|
80
|
-
it "raises ArgumentError without network_id or id" do
|
81
|
-
expect { @ip.delete }.to raise_error(ArgumentError)
|
82
|
-
expect { @ip.delete(1) }.to raise_error(ArgumentError)
|
83
|
-
end
|
84
|
-
|
85
60
|
it "deletes the IP" do
|
86
61
|
@ip.delete(1, 1)
|
87
62
|
@ip.success.should be_true
|
data/spec/squall/network_spec.rb
CHANGED
@@ -8,6 +8,7 @@ describe Squall::Network do
|
|
8
8
|
|
9
9
|
describe "#list" do
|
10
10
|
use_vcr_cassette "network/list"
|
11
|
+
|
11
12
|
it "returns a network list" do
|
12
13
|
networks = @network.list
|
13
14
|
networks.size.should be(2)
|
@@ -22,73 +23,56 @@ describe Squall::Network do
|
|
22
23
|
|
23
24
|
describe "#edit" do
|
24
25
|
use_vcr_cassette 'network/edit'
|
25
|
-
it "requires an id" do
|
26
|
-
expect { @network.edit }.to raise_error(ArgumentError)
|
27
|
-
@network.success.should be_false
|
28
|
-
end
|
29
|
-
|
30
|
-
it "errors on invalid params" do
|
31
|
-
expect { @network.edit(1, :what => 1) }.to raise_error(ArgumentError, 'Unknown params: what')
|
32
|
-
end
|
33
26
|
|
34
27
|
it "accepts valid params" do
|
35
|
-
@network.edit(1, :
|
28
|
+
@network.edit(1, label: 'one')
|
36
29
|
@network.success.should be_true
|
37
30
|
|
38
|
-
@network.edit(1, :
|
31
|
+
@network.edit(1, network_group_id: 1)
|
39
32
|
@network.success.should be_true
|
40
33
|
|
41
|
-
@network.edit(1, :
|
34
|
+
@network.edit(1, identifier: 'lolzsdfds')
|
42
35
|
@network.success.should be_true
|
43
36
|
|
44
|
-
@network.edit(1, :
|
37
|
+
@network.edit(1, vlan: 1)
|
45
38
|
@network.success.should be_true
|
46
39
|
|
47
|
-
@network.edit(1, :
|
40
|
+
@network.edit(1, label: 'two', vlan: 2, identifier: 'woah')
|
48
41
|
@network.success.should be_true
|
49
42
|
end
|
50
43
|
end
|
51
44
|
|
52
45
|
describe "#create" do
|
53
46
|
use_vcr_cassette "network/create"
|
54
|
-
it "requires label" do
|
55
|
-
requires_attr(:label) { @network.create }
|
56
|
-
end
|
57
47
|
|
58
48
|
it "raises error on duplicate account" do
|
59
49
|
pending "Broken in OnApp" do
|
60
50
|
expect {
|
61
|
-
@network.create(:
|
51
|
+
@network.create(label: 'networktaken')
|
62
52
|
}.to raise_error(Squall::ServerError)
|
63
53
|
@network.errors['label'].should include("has already been taken")
|
64
54
|
end
|
65
55
|
end
|
66
56
|
|
67
|
-
it "raises error on invalid params" do
|
68
|
-
expect {
|
69
|
-
@network.create(:what => 'networktaken', :label => 'wut')
|
70
|
-
}.to raise_error(ArgumentError, 'Unknown params: what')
|
71
|
-
end
|
72
|
-
|
73
57
|
it "creates a network" do
|
74
|
-
network = @network.create(:
|
58
|
+
network = @network.create(label: 'newnetwork', vlan: 1, identifier: 'newnetworkid')
|
75
59
|
@network.success.should be_true
|
76
60
|
|
77
61
|
network['label'].should == 'newnetwork'
|
78
62
|
network['vlan'].should == 1
|
79
63
|
network['identifier'].should == 'newnetworkid'
|
80
64
|
|
81
|
-
network = @network.create(:
|
65
|
+
network = @network.create(label: 'newnetwork')
|
82
66
|
network['label'].should == 'newnetwork'
|
83
67
|
network['vlan'].should be_nil
|
84
68
|
@network.success.should be_true
|
85
69
|
|
86
|
-
network = @network.create(:
|
70
|
+
network = @network.create(label: 'newnetwork', vlan: 2)
|
87
71
|
network['label'].should == 'newnetwork'
|
88
72
|
network['vlan'].should == 2
|
89
73
|
@network.success.should be_true
|
90
74
|
|
91
|
-
network = @network.create(:
|
75
|
+
network = @network.create(label: 'newnetwork', identifier: 'something')
|
92
76
|
network['label'].should == 'newnetwork'
|
93
77
|
network['identifier'].should == 'something'
|
94
78
|
@network.success.should be_true
|
@@ -97,14 +81,19 @@ describe Squall::Network do
|
|
97
81
|
|
98
82
|
describe "#delete" do
|
99
83
|
use_vcr_cassette 'network/delete'
|
100
|
-
it "requires an id" do
|
101
|
-
expect { @network.delete }.to raise_error(ArgumentError)
|
102
|
-
@network.success.should be_false
|
103
|
-
end
|
104
84
|
|
105
85
|
it "deletes the network" do
|
106
86
|
delete = @network.delete(16)
|
107
87
|
@network.success.should be_true
|
108
88
|
end
|
109
89
|
end
|
90
|
+
|
91
|
+
describe "#rebuild" do
|
92
|
+
use_vcr_cassette 'network/rebuild'
|
93
|
+
|
94
|
+
it "rebuilds the network for VM" do
|
95
|
+
rebuild = @network.rebuild(58)
|
96
|
+
@network.success.should be_true
|
97
|
+
end
|
98
|
+
end
|
110
99
|
end
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Squall::NetworkZone do
|
4
4
|
before(:each) do
|
5
5
|
@network_zone = Squall::NetworkZone.new
|
6
|
-
@valid = {:
|
6
|
+
@valid = {label: "My zone"}
|
7
7
|
end
|
8
8
|
|
9
9
|
describe "#list" do
|
@@ -22,9 +22,6 @@ describe Squall::NetworkZone do
|
|
22
22
|
|
23
23
|
describe "#show" do
|
24
24
|
use_vcr_cassette "network_zones/show"
|
25
|
-
it "requires an id" do
|
26
|
-
expect { @network_zone.show }.to raise_error(ArgumentError)
|
27
|
-
end
|
28
25
|
|
29
26
|
it "returns a network zone" do
|
30
27
|
network_zones = @network_zone.show(1)
|
@@ -34,14 +31,6 @@ describe Squall::NetworkZone do
|
|
34
31
|
|
35
32
|
describe "#create" do
|
36
33
|
use_vcr_cassette "network_zones/create"
|
37
|
-
it "requires label" do
|
38
|
-
invalid = @valid.reject{|k,v| k == :label }
|
39
|
-
requires_attr(:label) { @network_zone.create(invalid) }
|
40
|
-
end
|
41
|
-
|
42
|
-
it "raises error on unknown params" do
|
43
|
-
expect { @network_zone.create(@valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
|
44
|
-
end
|
45
34
|
|
46
35
|
it "creates a network zone" do
|
47
36
|
@network_zone.create(@valid)
|
@@ -60,21 +49,14 @@ describe Squall::NetworkZone do
|
|
60
49
|
end
|
61
50
|
end
|
62
51
|
|
63
|
-
it "raises error on unknown params" do
|
64
|
-
expect { @network_zone.edit(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
|
65
|
-
end
|
66
|
-
|
67
52
|
it "edits a network zone" do
|
68
|
-
@network_zone.edit(1, :
|
53
|
+
@network_zone.edit(1, label: "Updated zone")
|
69
54
|
@network_zone.success.should be_true
|
70
55
|
end
|
71
56
|
end
|
72
57
|
|
73
58
|
describe "#delete" do
|
74
59
|
use_vcr_cassette "network_zones/delete"
|
75
|
-
it "requires an id" do
|
76
|
-
expect { @network_zone.delete }.to raise_error(ArgumentError)
|
77
|
-
end
|
78
60
|
|
79
61
|
it "deletes a network zone" do
|
80
62
|
@network_zone.delete(1)
|
@@ -85,14 +67,6 @@ describe Squall::NetworkZone do
|
|
85
67
|
describe "#attach" do
|
86
68
|
use_vcr_cassette "network_zones/attach"
|
87
69
|
|
88
|
-
it "requires an id" do
|
89
|
-
expect { @network_zone.attach }.to raise_error(ArgumentError)
|
90
|
-
end
|
91
|
-
|
92
|
-
it "requires a network id" do
|
93
|
-
expect { @network_zone.attach(1) }.to raise_error(ArgumentError)
|
94
|
-
end
|
95
|
-
|
96
70
|
it "attaches a network to the network zone" do
|
97
71
|
request = @network_zone.attach(1, 2)
|
98
72
|
@network_zone.success.should be_true
|
@@ -102,14 +76,6 @@ describe Squall::NetworkZone do
|
|
102
76
|
describe "#detach" do
|
103
77
|
use_vcr_cassette "network_zones/detach"
|
104
78
|
|
105
|
-
it "requires an id" do
|
106
|
-
expect { @network_zone.detach }.to raise_error(ArgumentError)
|
107
|
-
end
|
108
|
-
|
109
|
-
it "requires a network id" do
|
110
|
-
expect { @network_zone.detach(1) }.to raise_error(ArgumentError)
|
111
|
-
end
|
112
|
-
|
113
79
|
it "detaches a network to the network zone" do
|
114
80
|
request = @network_zone.detach(1, 2)
|
115
81
|
@network_zone.success.should be_true
|
data/spec/squall/payment_spec.rb
CHANGED
@@ -4,16 +4,12 @@ describe Squall::Payment do
|
|
4
4
|
before(:each) do
|
5
5
|
@keys = ["amount", "invoice_number"]
|
6
6
|
@payment = Squall::Payment.new
|
7
|
-
@valid = {:
|
7
|
+
@valid = {amount: 500}
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "#list" do
|
11
11
|
use_vcr_cassette "payment/list"
|
12
12
|
|
13
|
-
it "requires user id" do
|
14
|
-
expect { @payment.list }.to raise_error(ArgumentError)
|
15
|
-
end
|
16
|
-
|
17
13
|
it "returns a user list" do
|
18
14
|
payments = @payment.list(1)
|
19
15
|
payments.should be_an(Array)
|
@@ -27,10 +23,6 @@ describe Squall::Payment do
|
|
27
23
|
|
28
24
|
describe "#create" do
|
29
25
|
use_vcr_cassette "payment/create"
|
30
|
-
it "requires amount" do
|
31
|
-
invalid = @valid.reject{|k,v| k == :amount }
|
32
|
-
requires_attr(:amount) { @payment.create(1, invalid) }
|
33
|
-
end
|
34
26
|
|
35
27
|
it "allows all optional params" do
|
36
28
|
optional = [:invoice_number]
|
@@ -40,10 +32,6 @@ describe Squall::Payment do
|
|
40
32
|
end
|
41
33
|
end
|
42
34
|
|
43
|
-
it "raises error on unknown params" do
|
44
|
-
expect { @payment.create(1, @valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
|
45
|
-
end
|
46
|
-
|
47
35
|
it "creates a payment for a user" do
|
48
36
|
user = @payment.create(1, @valid)
|
49
37
|
@payment.success.should be_true
|
@@ -61,21 +49,14 @@ describe Squall::Payment do
|
|
61
49
|
end
|
62
50
|
end
|
63
51
|
|
64
|
-
it "raises error on unknown params" do
|
65
|
-
expect { @payment.edit(1, 1, :what => 'what') }.to raise_error(ArgumentError, 'Unknown params: what')
|
66
|
-
end
|
67
|
-
|
68
52
|
it "edits a payment" do
|
69
|
-
user = @payment.edit(1, 1, :
|
53
|
+
user = @payment.edit(1, 1, amount: 100)
|
70
54
|
@payment.success.should be_true
|
71
55
|
end
|
72
56
|
end
|
73
57
|
|
74
58
|
describe "#delete" do
|
75
59
|
use_vcr_cassette "payment/delete"
|
76
|
-
it "requires an id" do
|
77
|
-
expect { @payment.delete }.to raise_error(ArgumentError)
|
78
|
-
end
|
79
60
|
|
80
61
|
it "deletes a payment" do
|
81
62
|
@payment.delete(1, 1)
|
data/spec/squall/role_spec.rb
CHANGED
@@ -7,6 +7,7 @@ describe Squall::Role do
|
|
7
7
|
|
8
8
|
describe "#list" do
|
9
9
|
use_vcr_cassette "role/list"
|
10
|
+
|
10
11
|
it "returns roles" do
|
11
12
|
roles = @role.list
|
12
13
|
roles.all?{|r| r.first == "role"}
|
@@ -15,9 +16,6 @@ describe Squall::Role do
|
|
15
16
|
|
16
17
|
describe "#show" do
|
17
18
|
use_vcr_cassette "role/show"
|
18
|
-
it "requires an id" do
|
19
|
-
expect { @role.show }.to raise_error(ArgumentError)
|
20
|
-
end
|
21
19
|
|
22
20
|
it "returns a role" do
|
23
21
|
role = @role.show(1)
|
@@ -27,9 +25,6 @@ describe Squall::Role do
|
|
27
25
|
|
28
26
|
describe "#edit" do
|
29
27
|
use_vcr_cassette "role/edit"
|
30
|
-
it "requires an id" do
|
31
|
-
expect { @role.edit }.to raise_error(ArgumentError)
|
32
|
-
end
|
33
28
|
|
34
29
|
it "allows all optional params" do
|
35
30
|
optional = [:label, :permission_ids]
|
@@ -42,7 +37,7 @@ describe Squall::Role do
|
|
42
37
|
|
43
38
|
it "updates the role" do
|
44
39
|
pending "OnApp is returning an empty response" do
|
45
|
-
role = @role.edit(1, :
|
40
|
+
role = @role.edit(1, label: 'New')
|
46
41
|
role['label'].should == 'New'
|
47
42
|
end
|
48
43
|
end
|
@@ -50,9 +45,6 @@ describe Squall::Role do
|
|
50
45
|
|
51
46
|
describe "#delete" do
|
52
47
|
use_vcr_cassette "role/delete"
|
53
|
-
it "requires an id" do
|
54
|
-
expect { @role.delete }.to raise_error(ArgumentError)
|
55
|
-
end
|
56
48
|
|
57
49
|
it "returns a role" do
|
58
50
|
role = @role.delete(3)
|
@@ -78,17 +70,13 @@ describe Squall::Role do
|
|
78
70
|
describe "#create" do
|
79
71
|
use_vcr_cassette "role/create"
|
80
72
|
|
81
|
-
it "requires label" do
|
82
|
-
requires_attr(:label) { @role.create }
|
83
|
-
end
|
84
|
-
|
85
73
|
it "allows permission_ids" do
|
86
74
|
@role.should_receive(:request).once.and_return Hash.new('role' => [])
|
87
|
-
@role.create(:
|
75
|
+
@role.create(label: "test", permission_ids: 1)
|
88
76
|
end
|
89
77
|
|
90
78
|
it "creates a role" do
|
91
|
-
response = @role.create({:
|
79
|
+
response = @role.create({label: 'Test Create', permission_ids: 1})
|
92
80
|
response["role"]['label'].should == 'Test Create'
|
93
81
|
response["role"]['permissions'].should_not be_empty
|
94
82
|
end
|
@@ -15,7 +15,7 @@ describe Squall::Base do
|
|
15
15
|
describe "#request" do
|
16
16
|
it "200-207 returns success" do
|
17
17
|
(200..207).each do |i|
|
18
|
-
mock_request(:get, "/#{i}", :
|
18
|
+
mock_request(:get, "/#{i}", status: [i, "OK"], body: "{\"something\":[\"OK\"]}")
|
19
19
|
base = Squall::Base.new
|
20
20
|
base.request(:get, "/#{i}")
|
21
21
|
base.success.should be_true
|
@@ -23,7 +23,7 @@ describe Squall::Base do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "raises NotFound for 404s" do
|
26
|
-
mock_request(:get, '/404', :
|
26
|
+
mock_request(:get, '/404', status: [404, "NotFound"], body: "{\"errors\":[\"Resource not found\"]}")
|
27
27
|
@base.request(:get, '/404')
|
28
28
|
|
29
29
|
@base.success.should be_false
|
@@ -31,7 +31,7 @@ describe Squall::Base do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "raises ServerError on errors" do
|
34
|
-
mock_request(:get, '/500', :
|
34
|
+
mock_request(:get, '/500', status: [500, "Internal Server Error"], body: "{\"errors\":[\"Internal Server Error\"]}")
|
35
35
|
@base.request(:get, '/500')
|
36
36
|
|
37
37
|
@base.success.should be_false
|
@@ -39,7 +39,7 @@ describe Squall::Base do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
it "raises RequestError on errors" do
|
42
|
-
mock_request(:get, '/422', :
|
42
|
+
mock_request(:get, '/422', status: [422, "Unprocessable"], body: "{\"errors\":[\"Unprocessable\"]}")
|
43
43
|
@base.request(:get, '/422')
|
44
44
|
|
45
45
|
@base.success.should be_false
|
@@ -52,12 +52,6 @@ describe Squall::Base do
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
-
describe "#params" do
|
56
|
-
it "returns Params.new" do
|
57
|
-
@base.params.should be_a(Squall::Params)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
55
|
describe "#default_params" do
|
62
56
|
it "sets the default options" do
|
63
57
|
@base.default_params.should == {}
|
@@ -65,22 +59,22 @@ describe Squall::Base do
|
|
65
59
|
|
66
60
|
it "merges the query in" do
|
67
61
|
expected = {
|
68
|
-
:
|
69
|
-
:
|
62
|
+
query: {
|
63
|
+
base: {one: 1, two: 2}
|
70
64
|
}
|
71
65
|
}
|
72
|
-
@base.default_params(:
|
66
|
+
@base.default_params(one: 1, two: 2).should include(expected)
|
73
67
|
end
|
74
68
|
|
75
69
|
it "uses the subclass name as the key" do
|
76
70
|
base_test = CamelTest.new
|
77
71
|
base_test.default_params.should == {}
|
78
72
|
expected = {
|
79
|
-
:
|
80
|
-
:
|
73
|
+
query: {
|
74
|
+
camel_test: {one: 1, two: 2}
|
81
75
|
}
|
82
76
|
}
|
83
|
-
base_test.default_params(:
|
77
|
+
base_test.default_params(one: 1, two: 2).should include(expected)
|
84
78
|
end
|
85
79
|
end
|
86
80
|
|
@@ -24,10 +24,6 @@ describe Squall::Template do
|
|
24
24
|
|
25
25
|
describe "#make_public" do
|
26
26
|
use_vcr_cassette 'template/make_public'
|
27
|
-
it "requires an id" do
|
28
|
-
expect { @template.make_public }.to raise_error(ArgumentError)
|
29
|
-
@template.success.should be_false
|
30
|
-
end
|
31
27
|
|
32
28
|
it "makes the template public" do
|
33
29
|
pub = @template.make_public(1)
|
@@ -11,6 +11,7 @@ describe Squall::Transaction do
|
|
11
11
|
|
12
12
|
describe "#list" do
|
13
13
|
use_vcr_cassette 'transaction/list'
|
14
|
+
|
14
15
|
it "lists transactions" do
|
15
16
|
list = @transaction.list
|
16
17
|
list.size.should be(3)
|
@@ -22,9 +23,6 @@ describe Squall::Transaction do
|
|
22
23
|
|
23
24
|
describe "#show" do
|
24
25
|
use_vcr_cassette "transaction/show"
|
25
|
-
it "requires an id" do
|
26
|
-
expect { @transaction.show }.to raise_error(ArgumentError)
|
27
|
-
end
|
28
26
|
|
29
27
|
it "returns a transaction" do
|
30
28
|
transaction = @transaction.show(1)
|
@@ -4,7 +4,7 @@ describe Squall::UserGroup do
|
|
4
4
|
before(:each) do
|
5
5
|
@keys = ["amount"]
|
6
6
|
@user_group = Squall::UserGroup.new
|
7
|
-
@valid = {:
|
7
|
+
@valid = {label: "My new group"}
|
8
8
|
end
|
9
9
|
|
10
10
|
describe "#list" do
|
@@ -23,14 +23,6 @@ describe Squall::UserGroup do
|
|
23
23
|
|
24
24
|
describe "#create" do
|
25
25
|
use_vcr_cassette "user_group/create"
|
26
|
-
it "requires label" do
|
27
|
-
invalid = @valid.reject{|k,v| k == :label }
|
28
|
-
requires_attr(:label) { @user_group.create(invalid) }
|
29
|
-
end
|
30
|
-
|
31
|
-
it "raises error on unknown params" do
|
32
|
-
expect { @user_group.create(@valid.merge(:what => 'what')) }.to raise_error(ArgumentError, 'Unknown params: what')
|
33
|
-
end
|
34
26
|
|
35
27
|
it "creates a user group" do
|
36
28
|
@user_group.create(@valid)
|
@@ -41,10 +33,6 @@ describe Squall::UserGroup do
|
|
41
33
|
describe "#edit" do
|
42
34
|
use_vcr_cassette "user_group/edit"
|
43
35
|
|
44
|
-
it "raises error on unknown params" do
|
45
|
-
expect { @user_group.edit(1, :what => 'what') }.to raise_error(ArgumentError, 'Unknown params: what')
|
46
|
-
end
|
47
|
-
|
48
36
|
it "edits a user group" do
|
49
37
|
@user_group.edit(1, @valid)
|
50
38
|
@user_group.success.should be_true
|
@@ -53,14 +41,10 @@ describe Squall::UserGroup do
|
|
53
41
|
|
54
42
|
describe "#delete" do
|
55
43
|
use_vcr_cassette "user_group/delete"
|
56
|
-
it "requires an id" do
|
57
|
-
expect { @user_group.delete }.to raise_error(ArgumentError)
|
58
|
-
end
|
59
44
|
|
60
45
|
it "deletes a user group" do
|
61
46
|
@user_group.delete(1)
|
62
47
|
@user_group.success.should be_true
|
63
48
|
end
|
64
49
|
end
|
65
|
-
|
66
50
|
end
|