ey_services_fake 0.3.11 → 0.3.12

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.
@@ -67,6 +67,8 @@ module EyServicesFake
67
67
  end
68
68
 
69
69
  def reset!
70
+ @app = nil
71
+ @apps = nil
70
72
  @actors.values.each do |v|
71
73
  v.reset!
72
74
  end
@@ -126,6 +128,7 @@ module EyServicesFake
126
128
  def service_enablement
127
129
  sso_account_hash = self.sso_account
128
130
  service_hash = self.service
131
+
129
132
  unless actor(:tresfiestas).service_available_for_account?(service_hash[:id], sso_account_hash[:id])
130
133
  actor(:tresfiestas).make_service_available_for_account(service_hash[:id], sso_account_hash[:id])
131
134
  end
@@ -193,18 +196,19 @@ module EyServicesFake
193
196
  end
194
197
 
195
198
  def service_account_sso_url
196
- configuration_url = service_account[:pushed_service_account][:configuration_url]
197
- params = {
198
- 'timestamp' => Time.now.iso8601,
199
- 'ey_user_id' => sso_user.id,
200
- 'ey_user_name' => "Person Name",
201
- 'ey_return_to_url' => "https://cloud.engineyard.com/dashboard",
202
- 'access_level' => 'owner',
203
- }
204
- EY::ApiHMAC::SSO.sign(configuration_url,
205
- params,
206
- partner[:auth_id],
207
- partner[:auth_key])
199
+ actor(:awsm).service_account_sso_url(service[:id], sso_user, sso_account[:id])
200
+ end
201
+
202
+ def provisioned_service_sso_url
203
+ actor(:awsm).provisioned_service_sso_url(service_account[:id], app_deployment[:id], sso_user, sso_account[:id])
204
+ end
205
+
206
+ def trigger_mock_user_update(new_email)
207
+ actor(:tresfiestas).trigger_mock_user_update(sso_user, new_email)
208
+ end
209
+
210
+ def trigger_mock_user_delete
211
+ actor(:tresfiestas).trigger_mock_user_delete(sso_user)
208
212
  end
209
213
 
210
214
  end
@@ -40,8 +40,8 @@ module EyServicesFake
40
40
  instance_eval(&parent.service_account_creation_handler)
41
41
  else
42
42
  service_account = EY::ServicesAPI::ServiceAccountCreation.from_request(request.body.read)
43
- standard_response_params = parent.service_account_creation_params
44
- EY::ServicesAPI::ServiceAccountResponse.new(parent.service_account_creation_params).to_hash.to_json
43
+ response_params = parent.service_account_creation_params
44
+ EY::ServicesAPI::ServiceAccountResponse.new(response_params).to_hash.to_json
45
45
  end
46
46
  end
47
47
 
@@ -57,6 +57,7 @@ module EyServicesFake
57
57
  end
58
58
 
59
59
  get '/sso/some_service_account' do
60
+ parent.account_sso_hook(params)
60
61
  "SSO Hello Service Account"
61
62
  end
62
63
 
@@ -129,7 +130,7 @@ module EyServicesFake
129
130
  :url => "#{base_url}api/1/some_service_account",
130
131
  :configuration_url => "#{base_url}sso/some_service_account",
131
132
  :configuration_required => false,
132
- :message => EY::ServicesAPI::Message.new(:message_type => "status", :subject => "some messages")
133
+ :message => EY::ServicesAPI::Message.new(:message_type => "status", :subject => "some messages"),
133
134
  }
134
135
  end
135
136
 
@@ -146,6 +147,10 @@ module EyServicesFake
146
147
  }
147
148
  end
148
149
 
150
+ def self.account_sso_hook(params)
151
+ #no-op
152
+ end
153
+
149
154
  def register_service(registration_url)
150
155
  EY::ServicesAPI.connection.register_service(registration_url, self.class.registration_params)
151
156
  end
@@ -50,7 +50,7 @@ module EyServicesFake
50
50
 
51
51
  def sso_user
52
52
  the_one_email = "the-one-user@example.com"
53
- User.first(:email => the_one_email) || User.create(:email => the_one_email)
53
+ User.first(:email => the_one_email) || User.create(:email => the_one_email, :external_service_id => Object.new.object_id)
54
54
  end
55
55
 
56
56
  def find_sso_account(sso_user)
@@ -108,6 +108,7 @@ module EyServicesFake
108
108
  service_account.configuration_url = result["service_account"]['configuration_url']
109
109
  service_account.url = result["service_account"]['url']
110
110
  service_account.configuration_required = result["service_account"]['configuration_required']
111
+ service_account.users_url = result["service_account"]['users_url']
111
112
  end
112
113
  if result["message"] && result["message"]["message_type"]
113
114
  Message.create(
@@ -162,5 +163,27 @@ module EyServicesFake
162
163
  @connection.delete(provisioned_service.url)
163
164
  end
164
165
 
166
+ def service_account_sso_url(service_id, sso_user, sso_account_id)
167
+ service_account = ServiceAccount.first(
168
+ :sso_account_id => sso_account_id, :service_id => service_id)
169
+ partner = service_account.service.partner
170
+ configuration_url = service_account.configuration_url
171
+ params = {
172
+ 'timestamp' => Time.now.iso8601,
173
+ 'ey_user_id' => sso_user.external_service_id,
174
+ 'ey_user_name' => "Person Name",
175
+ 'ey_return_to_url' => "https://cloud.engineyard.com/dashboard",
176
+ 'access_level' => 'owner',
177
+ }
178
+ if service_account.users_url
179
+ params['ey_user_email'] = sso_user.email
180
+ end
181
+ require 'cgi'
182
+ EY::ApiHMAC::SSO.sign(configuration_url,
183
+ params,
184
+ partner.auth_id,
185
+ partner.auth_key)
186
+ end
187
+
165
188
  end
166
189
  end
@@ -64,7 +64,7 @@ module EyServicesFake
64
64
  :home_url => service_object.home_url,
65
65
  :label => service_object.label,
66
66
  :revenue_share => service_object.revenue_share,
67
- :service_accounts_url => service_object.service_accounts_url
67
+ :service_accounts_url => service_object.service_accounts_url,
68
68
  }
69
69
  end
70
70
 
@@ -88,6 +88,7 @@ module EyServicesFake
88
88
  :provisioned_services_url => service_account_object.provisioned_services_url,
89
89
  :configuration_url => service_account_object.configuration_url,
90
90
  :url => service_account_object.url,
91
+ :users_url => service_account_object.users_url,
91
92
  :configuration_required => service_account_object.configuration_required,
92
93
  }
93
94
  }
@@ -135,5 +136,33 @@ module EyServicesFake
135
136
  end
136
137
  end
137
138
 
139
+ def trigger_mock_user_update(sso_user, new_email)
140
+ sso_user.accounts.each do |account|
141
+ ServiceAccount.all(:sso_account_id => account.id).each do |service_account|
142
+ if service_account.users_url
143
+ users = app.partner_connection.get(service_account.users_url){|json,_| json }
144
+ users.each do |user|
145
+ unless user["user"]["ey_user_email"] == new_email
146
+ app.partner_connection.put(user["url"], :user => {:ey_user_email => new_email})
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
153
+
154
+ def trigger_mock_user_delete(sso_user)
155
+ sso_user.accounts.each do |account|
156
+ ServiceAccount.all(:sso_account_id => account.id).each do |service_account|
157
+ if service_account.users_url
158
+ users = app.partner_connection.get(service_account.users_url){|json,_| json }
159
+ users.each do |user|
160
+ app.partner_connection.delete(user["url"])
161
+ end
162
+ end
163
+ end
164
+ end
165
+ end
166
+
138
167
  end
139
168
  end
@@ -1,3 +1,3 @@
1
1
  module EyServicesFake
2
- VERSION = "0.3.11"
2
+ VERSION = "0.3.12"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey_services_fake
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 11
10
- version: 0.3.11
9
+ - 12
10
+ version: 0.3.12
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jacob Burkhart & Josh Lane
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-03 00:00:00 Z
18
+ date: 2012-05-08 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: sinatra
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  requirements: []
110
110
 
111
111
  rubyforge_project: ey_services_fake
112
- rubygems_version: 1.8.19
112
+ rubygems_version: 1.8.10
113
113
  signing_key:
114
114
  specification_version: 3
115
115
  summary: A fake for use when writting tests against the ey_services_api