passaporteweb-client 0.1.0 → 0.2.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.
@@ -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/'