stormpath-sdk 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 +4 -4
- data/.rspec +1 -0
- data/.travis.yml +0 -3
- data/CHANGES.md +9 -0
- data/README.md +8 -21
- data/Rakefile +1 -15
- data/lib/stormpath-sdk/oauth/error.rb +21 -0
- data/lib/stormpath-sdk/oauth/local_access_token_verification.rb +2 -2
- data/lib/stormpath-sdk/oauth/remote_access_token_verification.rb +2 -2
- data/lib/stormpath-sdk/version.rb +2 -2
- data/spec/auth/http_basic_authentication_spec.rb +6 -21
- data/spec/auth/http_bearer_authentication_spec.rb +11 -24
- data/spec/client_spec.rb +116 -258
- data/spec/oauth/access_token_authentication_result_spec.rb +14 -14
- data/spec/provider/provider_spec.rb +32 -40
- data/spec/resource/account_creation_policy_spec.rb +8 -13
- data/spec/resource/account_link_spec.rb +4 -17
- data/spec/resource/account_spec.rb +37 -81
- data/spec/resource/account_store_mapping_spec.rb +20 -32
- data/spec/resource/account_store_spec.rb +8 -31
- data/spec/resource/api_key_spec.rb +11 -14
- data/spec/resource/application_spec.rb +39 -168
- data/spec/resource/collection_spec.rb +17 -17
- data/spec/resource/custom_data_spec.rb +2 -2
- data/spec/resource/directory_spec.rb +164 -240
- data/spec/resource/email_template_spec.rb +21 -24
- data/spec/resource/group_membership_spec.rb +9 -12
- data/spec/resource/group_spec.rb +17 -31
- data/spec/resource/linked_account_spec.rb +4 -17
- data/spec/resource/organization_spec.rb +38 -110
- data/spec/resource/password_policy_spec.rb +13 -16
- data/spec/resource/password_strength_spec.rb +15 -18
- data/spec/resource/status_spec.rb +32 -35
- data/spec/spec_helper.rb +8 -139
- data/spec/support/api_key_helpers.rb +34 -0
- data/spec/support/custom_data_storage_behavior.rb +139 -156
- data/spec/support/env_names_warning.rb +59 -0
- data/spec/support/resource_helpers.rb +84 -0
- data/spec/support/resource_matchers.rb +6 -0
- data/stormpath-sdk.gemspec +1 -0
- metadata +20 -3
- data/support/api.rb +0 -55
@@ -0,0 +1,59 @@
|
|
1
|
+
module Stormpath
|
2
|
+
module Test
|
3
|
+
module EnvNamesWarning
|
4
|
+
TEST_ENV_VARS = {
|
5
|
+
required: {
|
6
|
+
STORMPATH_CLIENT_APIKEY_ID: 'The id from your Stormpath API Key',
|
7
|
+
STORMPATH_CLIENT_APIKEY_SECRET: 'The secret from your Stormpath API Key'
|
8
|
+
},
|
9
|
+
deprecated: {
|
10
|
+
STORMPATH_SDK_TEST_API_KEY_ID: 'The id from your Stormpath API Key',
|
11
|
+
STORMPATH_SDK_TEST_API_KEY_SECRET: 'The secret from your Stormpath API Key'
|
12
|
+
}
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
def self.test_missing_deprecated_env_vars
|
16
|
+
TEST_ENV_VARS[:deprecated].reject do |var, _|
|
17
|
+
ENV[var.to_s]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.test_missing_required_env_vars
|
22
|
+
TEST_ENV_VARS[:required].reject do |var, _|
|
23
|
+
ENV[var.to_s]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.env_vars_not_set?
|
28
|
+
!test_missing_deprecated_env_vars.empty? && !test_missing_required_env_vars.empty?
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.check_env_variable_names
|
32
|
+
unless Stormpath::Test::EnvNamesWarning.test_missing_required_env_vars.empty?
|
33
|
+
warn_message = "\n\n"
|
34
|
+
40.times { warn_message << '*' }
|
35
|
+
warn_message << 'STORMPATH RUBY SDK'
|
36
|
+
52.times { warn_message << '*' }
|
37
|
+
warn_message << "\n\n"
|
38
|
+
warn_message << TEST_ENV_VARS[:deprecated].map do |var, _|
|
39
|
+
"\t#{var} will be deprecated in the next release of the Ruby SDK."
|
40
|
+
end.join("\n")
|
41
|
+
warn_message << "\n\tPlease update your environment variables to use the new names:\n"
|
42
|
+
warn_message << "\n\t\texport STORMPATH_CLIENT_APIKEY_ID=your_api_key_id"
|
43
|
+
warn_message << "\n\t\texport STORMPATH_CLIENT_APIKEY_SECRET=your_api_key_secret\n\n"
|
44
|
+
110.times { warn_message << '*' }
|
45
|
+
warn "#{warn_message}\n\n"
|
46
|
+
end
|
47
|
+
|
48
|
+
if Stormpath::Test::EnvNamesWarning.env_vars_not_set?
|
49
|
+
set_up_message = "In order to run the specs of the Stormpath SDK you need to setup the following environment variables:\n\t"
|
50
|
+
set_up_message << Stormpath::Test::EnvNamesWarning.test_missing_required_env_vars.map do |var, message|
|
51
|
+
"#{var} : #{message}"
|
52
|
+
end.join("\n\t")
|
53
|
+
set_up_message << "\nBe sure to configure these before running the specs again."
|
54
|
+
raise set_up_message
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Stormpath
|
2
|
+
module Test
|
3
|
+
module ResourceHelpers
|
4
|
+
def build_account(opts = {})
|
5
|
+
opts.tap do |o|
|
6
|
+
if !opts[:email].blank? && opts[:email]
|
7
|
+
if opts[:email].include?('@')
|
8
|
+
raise ArgumentError, "Invalid email format. Please send the email without the domain. For example, 'anakin.skywalker', instead of 'anakin.skywalker@darkside.com'"
|
9
|
+
end
|
10
|
+
o[:email] = "#{opts[:email]}#{default_domain}"
|
11
|
+
else
|
12
|
+
o[:email] = "ruby#{random_number}#{default_domain}"
|
13
|
+
end
|
14
|
+
o[:username] = (!opts[:username].blank? && opts[:username]) || "ruby#{random_number}"
|
15
|
+
o[:password] = (!opts[:password].blank? && opts[:password]) || 'P@$$w0rd'
|
16
|
+
o[:surname] = (!opts[:surname].blank? && opts[:surname]) || 'surname'
|
17
|
+
o[:given_name] = (!opts[:given_name].blank? && opts[:given_name]) || 'givenname'
|
18
|
+
o[:middle_name] = (!opts[:middle_name].blank? && opts[:middle_name]) || 'middle_name'
|
19
|
+
o[:status] = (!opts[:status].blank? && opts[:status]) || 'ENABLED'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def default_domain
|
24
|
+
'@testmail.stormpath.com'
|
25
|
+
end
|
26
|
+
|
27
|
+
def build_application(opts = {})
|
28
|
+
opts.tap do |o|
|
29
|
+
o[:name] = (!opts[:name].blank? && opts[:name]) || "ruby#{random_number}-app"
|
30
|
+
o[:description] = (!opts[:description].blank? && opts[:description]) || "ruby#{random_number}-desc"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_directory(opts = {})
|
35
|
+
opts.tap do |o|
|
36
|
+
o[:name] = (!opts[:name].blank? && opts[:name]) || "ruby#{random_number}-dir"
|
37
|
+
o[:description] = (!opts[:description].blank? && opts[:description]) || "ruby#{random_number}-desc"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def build_organization(opts = {})
|
42
|
+
opts.tap do |o|
|
43
|
+
o[:name] = (!opts[:name].blank? && opts[:name]) || "ruby#{random_number}-org"
|
44
|
+
o[:name_key] = (!opts[:name_key].blank? && opts[:name_key]) || "ruby#{random_number}-org"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def build_group(opts = {})
|
49
|
+
opts.tap do |o|
|
50
|
+
o[:name] = (!opts[:name].blank? && opts[:name]) || "ruby#{random_number}-group"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def enable_email_verification(directory)
|
55
|
+
directory.account_creation_policy.verification_email_status = 'ENABLED'
|
56
|
+
directory.account_creation_policy.verification_success_email_status = 'ENABLED'
|
57
|
+
directory.account_creation_policy.welcome_email_status = 'ENABLED'
|
58
|
+
directory.account_creation_policy.save
|
59
|
+
end
|
60
|
+
|
61
|
+
def map_account_store(app, store, index, default_account_store, default_group_store)
|
62
|
+
test_api_client.account_store_mappings.create(
|
63
|
+
application: app,
|
64
|
+
account_store: store,
|
65
|
+
list_index: index,
|
66
|
+
is_default_account_store: default_account_store,
|
67
|
+
is_default_group_store: default_group_store
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
def map_organization_store(account_store, organization, default_account_store = false)
|
72
|
+
test_api_client.organization_account_store_mappings.create(
|
73
|
+
account_store: { href: account_store.href },
|
74
|
+
organization: { href: organization.href },
|
75
|
+
is_default_account_store: default_account_store
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
def random_number
|
80
|
+
Random.rand(1..10_000)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
data/stormpath-sdk.gemspec
CHANGED
@@ -40,6 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.add_development_dependency 'redis', '~> 3.0.4'
|
41
41
|
s.add_development_dependency 'memcached', '~> 1.8.0'
|
42
42
|
s.add_development_dependency 'listen', '~> 3.0.6'
|
43
|
+
s.add_development_dependency 'fivemat', '~> 1.3.2'
|
43
44
|
|
44
45
|
s.rdoc_options = ['--line-numbers', '--inline-source', '--title', 'stormpath-sdk', '--main']
|
45
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stormpath-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stormpath, Inc
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-11-
|
12
|
+
date: 2016-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
@@ -291,6 +291,20 @@ dependencies:
|
|
291
291
|
- - "~>"
|
292
292
|
- !ruby/object:Gem::Version
|
293
293
|
version: 3.0.6
|
294
|
+
- !ruby/object:Gem::Dependency
|
295
|
+
name: fivemat
|
296
|
+
requirement: !ruby/object:Gem::Requirement
|
297
|
+
requirements:
|
298
|
+
- - "~>"
|
299
|
+
- !ruby/object:Gem::Version
|
300
|
+
version: 1.3.2
|
301
|
+
type: :development
|
302
|
+
prerelease: false
|
303
|
+
version_requirements: !ruby/object:Gem::Requirement
|
304
|
+
requirements:
|
305
|
+
- - "~>"
|
306
|
+
- !ruby/object:Gem::Version
|
307
|
+
version: 1.3.2
|
294
308
|
description: Stormpath SDK used to interact with the Stormpath REST API
|
295
309
|
email: support@stormpath.com
|
296
310
|
executables: []
|
@@ -298,6 +312,7 @@ extensions: []
|
|
298
312
|
extra_rdoc_files: []
|
299
313
|
files:
|
300
314
|
- ".gitignore"
|
315
|
+
- ".rspec"
|
301
316
|
- ".ruby-gemset"
|
302
317
|
- ".travis.yml"
|
303
318
|
- CHANGES.md
|
@@ -445,15 +460,17 @@ files:
|
|
445
460
|
- spec/resource/status_spec.rb
|
446
461
|
- spec/resource/tenant_spec.rb
|
447
462
|
- spec/spec_helper.rb
|
463
|
+
- spec/support/api_key_helpers.rb
|
448
464
|
- spec/support/custom_data_storage_behavior.rb
|
465
|
+
- spec/support/env_names_warning.rb
|
449
466
|
- spec/support/mocked_provider_accounts.rb
|
450
467
|
- spec/support/resource_factory.rb
|
468
|
+
- spec/support/resource_helpers.rb
|
451
469
|
- spec/support/resource_matchers.rb
|
452
470
|
- spec/support/test_cache_stores.rb
|
453
471
|
- spec/support/test_request_executor.rb
|
454
472
|
- spec/util/uri_builder_spec.rb
|
455
473
|
- stormpath-sdk.gemspec
|
456
|
-
- support/api.rb
|
457
474
|
homepage: https://github.com/stormpath/stormpath-sdk-ruby
|
458
475
|
licenses:
|
459
476
|
- Apache-2.0
|
data/support/api.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
module Stormpath
|
2
|
-
module Support
|
3
|
-
class Api
|
4
|
-
def self.destroy_resources(
|
5
|
-
api_key_id, api_key_secret, application_url,
|
6
|
-
directory_url, directory_with_verification_url
|
7
|
-
)
|
8
|
-
|
9
|
-
api_key = Stormpath::ApiKey.new(
|
10
|
-
api_key_id, api_key_secret
|
11
|
-
)
|
12
|
-
|
13
|
-
Stormpath::Client.new(api_key: api_key).tap do |client|
|
14
|
-
delete_applications client.applications, application_url
|
15
|
-
|
16
|
-
client.directories.each do |dir|
|
17
|
-
delete_accounts dir.accounts
|
18
|
-
|
19
|
-
unless [directory_url, directory_with_verification_url].include? dir.href
|
20
|
-
delete_directory dir
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.delete_applications applications, application_url
|
27
|
-
applications.each do |app|
|
28
|
-
begin
|
29
|
-
app.delete if app.href != application_url
|
30
|
-
rescue Stormpath::Error => e
|
31
|
-
raise e if e.message != "System Application cannot be deleted!!!"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.delete_accounts accounts
|
37
|
-
accounts.each do |account|
|
38
|
-
begin
|
39
|
-
account.delete
|
40
|
-
rescue Stormpath::Error => e
|
41
|
-
raise e unless e.code == 4001
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.delete_directory directory
|
47
|
-
begin
|
48
|
-
directory.delete
|
49
|
-
rescue Stormpath::Error => e
|
50
|
-
raise e if e.message != "System Directory cannot be deleted!"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|