passaporteweb-client 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,8 +5,8 @@ describe PassaporteWeb::ServiceAccountMember do
5
5
  let(:service_account) { PassaporteWeb::ServiceAccount.find('859d3542-84d6-4909-b1bd-4f43c1312065') }
6
6
  let(:identity) { PassaporteWeb::Identity.find('5e32f927-c4ab-404e-a91c-b2abc05afb56') }
7
7
 
8
- let(:mock_service_account) { mock('ServiceAccount', uuid: 'service-account-uuid') }
9
- let(:mock_identity) { mock('Identity', uuid: 'identity-uuid') }
8
+ let(:mock_service_account) { double('ServiceAccount', uuid: 'service-account-uuid') }
9
+ let(:mock_identity) { double('Identity', uuid: 'identity-uuid') }
10
10
 
11
11
  describe ".new" do
12
12
  it "should instanciate a minumum object" do
@@ -38,7 +38,7 @@ describe PassaporteWeb::ServiceAccountMember do
38
38
  end
39
39
  it "should raise an 404 error if the membership does not exist" do
40
40
  expect {
41
- described_class.find(service_account, mock('Identity', uuid: 'identity-uuid'))
41
+ described_class.find(service_account, double('Identity', uuid: 'identity-uuid'))
42
42
  }.to raise_error(RestClient::ResourceNotFound, '404 Resource Not Found')
43
43
  end
44
44
  end
@@ -46,7 +46,7 @@ describe PassaporteWeb::ServiceAccountMember do
46
46
  describe "#destroy", vcr: true do
47
47
  it "should destroy the membership, removing the association between service_account and identity" do
48
48
  member = described_class.find(service_account, identity)
49
- member.destroy.should be_true
49
+ expect(member.destroy).to be_truthy
50
50
  member.should_not be_persisted
51
51
  member.should be_destroyed
52
52
  member.errors.should be_empty
@@ -57,7 +57,7 @@ describe PassaporteWeb::ServiceAccountMember do
57
57
  it "should return false if the role is owner" do
58
58
  member = described_class.find(service_account, identity)
59
59
  member.roles.should include('owner')
60
- member.destroy.should be_false
60
+ expect(member.destroy).to be_falsy
61
61
  member.should be_persisted
62
62
  member.should_not be_destroyed
63
63
  member.errors.should == "Service owner cannot be removed from members list"
@@ -73,7 +73,7 @@ describe PassaporteWeb::ServiceAccountMember do
73
73
  let(:member) { described_class.new(service_account, identity, ['admin','user']) }
74
74
  context "on success" do
75
75
  it "should create the membership between the service_account and the identity" do
76
- member.save.should be_true
76
+ expect(member.save).to be_truthy
77
77
  member.service_account.should == service_account
78
78
  member.identity.should == identity
79
79
  member.roles.should == ['admin','user']
@@ -95,7 +95,7 @@ describe PassaporteWeb::ServiceAccountMember do
95
95
  context "on failure" do
96
96
  it "should not create the membership and set the errors on the object" do
97
97
  member.roles = ['owner'] # can't create membership for the owner
98
- member.save.should be_false
98
+ expect(member.save).to be_falsy
99
99
  member.errors.should == "Adding a member as owner is not allowed"
100
100
  member.should_not be_persisted
101
101
  member.should_not be_destroyed
@@ -105,7 +105,7 @@ describe PassaporteWeb::ServiceAccountMember do
105
105
  }.to raise_error(RestClient::ResourceNotFound, '404 Resource Not Found')
106
106
  end
107
107
  it "should return false if the membership already exists" do
108
- member.save.should be_false
108
+ expect(member.save).to be_falsy
109
109
  member.errors.should == "Identity with uuid=5e32f927-c4ab-404e-a91c-b2abc05afb56 is already in members list of service identity_client at account 859d3542-84d6-4909-b1bd-4f43c1312065"
110
110
  member.should_not be_persisted
111
111
  member.should_not be_destroyed
@@ -122,7 +122,7 @@ describe PassaporteWeb::ServiceAccountMember do
122
122
  it "should update the member roles" do
123
123
  member.roles.should == ['admin', 'user']
124
124
  member.roles = ['user']
125
- member.save.should be_true
125
+ expect(member.save).to be_truthy
126
126
  member.errors.should be_empty
127
127
  member.roles.should == ['user']
128
128
 
@@ -135,7 +135,7 @@ describe PassaporteWeb::ServiceAccountMember do
135
135
  pending "está deixando setar como owner e não deixa setar sem nenhum role, como fazer?"
136
136
  member.roles.should == ['admin', 'user']
137
137
  member.roles = ['owner']
138
- member.save.should be_false
138
+ expect(member.save).to be_falsy
139
139
  member.errors.should_not be_empty
140
140
  member.roles.should == ['owner']
141
141
 
@@ -38,7 +38,7 @@ describe PassaporteWeb::ServiceAccount do
38
38
  end
39
39
 
40
40
  describe ".find_all", :vcr => true do
41
- let(:mock_response) { mock('response', body: MultiJson.encode([]), code: 200, headers: {link: "<http://sandbox.app.passaporteweb.com.br/organizations/api/accounts/?page=3&limit=3>; rel=next, <http://sandbox.app.passaporteweb.com.br/organizations/api/accounts/?page=1&limit=3>; rel=prev"}) }
41
+ let(:mock_response) { double('response', body: MultiJson.encode([]), code: 200, headers: {link: "<http://sandbox.app.passaporteweb.com.br/organizations/api/accounts/?page=3&limit=3>; rel=next, <http://sandbox.app.passaporteweb.com.br/organizations/api/accounts/?page=1&limit=3>; rel=prev"}) }
42
42
  it "should find all accounts related to the authenticated application and return them as an array of Account instances" do
43
43
  accounts_and_meta = PassaporteWeb::ServiceAccount.find_all
44
44
 
@@ -137,7 +137,7 @@ describe PassaporteWeb::ServiceAccount do
137
137
  service_account.expiration = '2014-05-01'
138
138
 
139
139
  service_account.should be_persisted
140
- service_account.save.should be_true
140
+ expect(service_account.save).to be_truthy
141
141
  service_account.should be_persisted
142
142
 
143
143
  service_account.plan_slug.should == 'basic'
@@ -153,11 +153,43 @@ describe PassaporteWeb::ServiceAccount do
153
153
  service_account.plan_slug = nil # required
154
154
  service_account.expiration = nil
155
155
  service_account.should be_persisted
156
- service_account.save.should be_false
156
+ expect(service_account.save).to be_falsy
157
157
  service_account.should be_persisted
158
158
  service_account.errors.should == {"field_errors"=>{"plan_slug"=>["Este campo é obrigatório."]}}
159
159
  end
160
160
  end
161
161
  end
162
162
 
163
+ describe '#activate', vcr: true do
164
+ let(:service_account) { PassaporteWeb::ServiceAccount.find("019a3450-8107-4832-8321-de4e6580c06b") }
165
+ let(:responsible_identity) { "20a8bbe1-3b4a-4e46-a69a-a7c524bd2ab8" }
166
+
167
+ context "on success" do
168
+ it "activates the service account an returns true" do
169
+ expect(service_account.activate(responsible_identity)).to be_truthy
170
+ end
171
+
172
+ it "assigns no errors" do
173
+ service_account.activate(responsible_identity)
174
+ expect(service_account.errors).to eq({})
175
+ end
176
+ end
177
+
178
+ context "on failure" do
179
+ context "when given wrong identity" do
180
+ let(:service_account) { PassaporteWeb::ServiceAccount.find("bc4bb967-e5b2-4925-813c-4d1e5418247a") }
181
+ let(:responsible_identity) { 'wrong-idendity' }
182
+
183
+ it "returns false" do
184
+ expect(service_account.activate(responsible_identity)).to be_falsy
185
+ end
186
+
187
+ it "assigns errors" do
188
+ service_account.activate(responsible_identity)
189
+ expect(service_account.errors).to eq({"field_errors" => {"identity"=>["Informe um valor v\u00E1lido."]}})
190
+ end
191
+ end
192
+ end
193
+ end
194
+
163
195
  end
data/spec/spec_helper.rb CHANGED
@@ -30,6 +30,7 @@ RSpec.configure do |c|
30
30
  c.before(:vcr => true) do
31
31
  PassaporteWeb.configure do |c|
32
32
  c.url = 'http://sandbox.app.passaporteweb.com.br' # TODO trocar para https
33
+ # Those credentials are from Identity Client App
33
34
  c.application_token = '8ab29iwKFI'
34
35
  c.application_secret = 'VnWYenOqYsHtcFowrdJlwdJNALq5Go9v'
35
36
  end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passaporteweb-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Tassinari de Oliveira
8
- - Rodrigo Martins
8
+ - Eduardo Hertz
9
+ - Rafael B. Tauil
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2014-05-05 00:00:00.000000000 Z
13
+ date: 2015-06-12 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rest-client
@@ -17,14 +18,14 @@ dependencies:
17
18
  requirements:
18
19
  - - "~>"
19
20
  - !ruby/object:Gem::Version
20
- version: 1.6.7
21
+ version: 1.8.0
21
22
  type: :runtime
22
23
  prerelease: false
23
24
  version_requirements: !ruby/object:Gem::Requirement
24
25
  requirements:
25
26
  - - "~>"
26
27
  - !ruby/object:Gem::Version
27
- version: 1.6.7
28
+ version: 1.8.0
28
29
  - !ruby/object:Gem::Dependency
29
30
  name: multi_json
30
31
  requirement: !ruby/object:Gem::Requirement
@@ -45,56 +46,56 @@ dependencies:
45
46
  requirements:
46
47
  - - "~>"
47
48
  - !ruby/object:Gem::Version
48
- version: 1.5.3
49
+ version: '1.9'
49
50
  type: :development
50
51
  prerelease: false
51
52
  version_requirements: !ruby/object:Gem::Requirement
52
53
  requirements:
53
54
  - - "~>"
54
55
  - !ruby/object:Gem::Version
55
- version: 1.5.3
56
+ version: '1.9'
56
57
  - !ruby/object:Gem::Dependency
57
58
  name: rake
58
59
  requirement: !ruby/object:Gem::Requirement
59
60
  requirements:
60
61
  - - "~>"
61
62
  - !ruby/object:Gem::Version
62
- version: '10.0'
63
+ version: '10.4'
63
64
  type: :development
64
65
  prerelease: false
65
66
  version_requirements: !ruby/object:Gem::Requirement
66
67
  requirements:
67
68
  - - "~>"
68
69
  - !ruby/object:Gem::Version
69
- version: '10.0'
70
+ version: '10.4'
70
71
  - !ruby/object:Gem::Dependency
71
72
  name: rdoc
72
73
  requirement: !ruby/object:Gem::Requirement
73
74
  requirements:
74
75
  - - "~>"
75
76
  - !ruby/object:Gem::Version
76
- version: '4.0'
77
+ version: '4.2'
77
78
  type: :development
78
79
  prerelease: false
79
80
  version_requirements: !ruby/object:Gem::Requirement
80
81
  requirements:
81
82
  - - "~>"
82
83
  - !ruby/object:Gem::Version
83
- version: '4.0'
84
+ version: '4.2'
84
85
  - !ruby/object:Gem::Dependency
85
86
  name: rspec
86
87
  requirement: !ruby/object:Gem::Requirement
87
88
  requirements:
88
89
  - - "~>"
89
90
  - !ruby/object:Gem::Version
90
- version: '2.13'
91
+ version: 3.3.0
91
92
  type: :development
92
93
  prerelease: false
93
94
  version_requirements: !ruby/object:Gem::Requirement
94
95
  requirements:
95
96
  - - "~>"
96
97
  - !ruby/object:Gem::Version
97
- version: '2.13'
98
+ version: 3.3.0
98
99
  - !ruby/object:Gem::Dependency
99
100
  name: vcr
100
101
  requirement: !ruby/object:Gem::Requirement
@@ -124,87 +125,88 @@ dependencies:
124
125
  - !ruby/object:Gem::Version
125
126
  version: 1.9.3
126
127
  - !ruby/object:Gem::Dependency
127
- name: pry
128
+ name: pry-byebug
128
129
  requirement: !ruby/object:Gem::Requirement
129
130
  requirements:
130
131
  - - "~>"
131
132
  - !ruby/object:Gem::Version
132
- version: '0.9'
133
+ version: '3.1'
133
134
  type: :development
134
135
  prerelease: false
135
136
  version_requirements: !ruby/object:Gem::Requirement
136
137
  requirements:
137
138
  - - "~>"
138
139
  - !ruby/object:Gem::Version
139
- version: '0.9'
140
+ version: '3.1'
140
141
  - !ruby/object:Gem::Dependency
141
- name: pry-nav
142
+ name: awesome_print
142
143
  requirement: !ruby/object:Gem::Requirement
143
144
  requirements:
144
145
  - - "~>"
145
146
  - !ruby/object:Gem::Version
146
- version: '0.2'
147
+ version: '1.6'
147
148
  type: :development
148
149
  prerelease: false
149
150
  version_requirements: !ruby/object:Gem::Requirement
150
151
  requirements:
151
152
  - - "~>"
152
153
  - !ruby/object:Gem::Version
153
- version: '0.2'
154
+ version: '1.6'
154
155
  - !ruby/object:Gem::Dependency
155
- name: awesome_print
156
+ name: simplecov
156
157
  requirement: !ruby/object:Gem::Requirement
157
158
  requirements:
158
159
  - - "~>"
159
160
  - !ruby/object:Gem::Version
160
- version: '1.1'
161
+ version: '0.10'
161
162
  type: :development
162
163
  prerelease: false
163
164
  version_requirements: !ruby/object:Gem::Requirement
164
165
  requirements:
165
166
  - - "~>"
166
167
  - !ruby/object:Gem::Version
167
- version: '1.1'
168
+ version: '0.10'
168
169
  - !ruby/object:Gem::Dependency
169
- name: simplecov
170
+ name: coveralls
170
171
  requirement: !ruby/object:Gem::Requirement
171
172
  requirements:
172
173
  - - "~>"
173
174
  - !ruby/object:Gem::Version
174
- version: '0.7'
175
+ version: '0.8'
175
176
  type: :development
176
177
  prerelease: false
177
178
  version_requirements: !ruby/object:Gem::Requirement
178
179
  requirements:
179
180
  - - "~>"
180
181
  - !ruby/object:Gem::Version
181
- version: '0.7'
182
+ version: '0.8'
182
183
  - !ruby/object:Gem::Dependency
183
- name: coveralls
184
+ name: json
184
185
  requirement: !ruby/object:Gem::Requirement
185
186
  requirements:
186
- - - "~>"
187
+ - - '='
187
188
  - !ruby/object:Gem::Version
188
- version: '0.6'
189
+ version: 1.8.3
189
190
  type: :development
190
191
  prerelease: false
191
192
  version_requirements: !ruby/object:Gem::Requirement
192
193
  requirements:
193
- - - "~>"
194
+ - - '='
194
195
  - !ruby/object:Gem::Version
195
- version: '0.6'
196
+ version: 1.8.3
196
197
  description: A Ruby client for the PassaporteWeb REST API
197
198
  email:
198
199
  - rodrigo@pittlandia.net
199
200
  - rodrigo.tassinari@myfreecomm.com.br
200
- - rodrigo@rrmartins.com
201
- - rodrigo.martins@myfreecomm.com.br
201
+ - eduardo.hertz@myfreecomm.com.br
202
+ - rafael@tauil.com.br
202
203
  executables: []
203
204
  extensions: []
204
205
  extra_rdoc_files: []
205
206
  files:
206
207
  - ".coveralls.yml"
207
208
  - ".gitignore"
209
+ - ".hound.yml"
208
210
  - ".rspec"
209
211
  - ".travis.yml"
210
212
  - Gemfile
@@ -256,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
258
  version: '0'
257
259
  requirements: []
258
260
  rubyforge_project:
259
- rubygems_version: 2.0.14
261
+ rubygems_version: 2.4.5
260
262
  signing_key:
261
263
  specification_version: 4
262
264
  summary: 'A Ruby client for the PassaporteWeb REST API: https://app.passaporteweb.com.br/static/docs/'