Skip to content

Commit

Permalink
Updating aws_iam_user with exists? function. (#115)
Browse files Browse the repository at this point in the history
* Updating aws_iam_user with exists? function. Solves #114

Signed-off-by: Nick Rycar <rycar@chef.io>

* Disabling class length rubocop rule.

Signed-off-by: Nick Rycar <rycar@chef.io>
  • Loading branch information
ChefRycar authored and chris-rock committed Nov 22, 2017
1 parent 351b200 commit 84b34b9
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 0 deletions.
4 changes: 4 additions & 0 deletions libraries/aws_iam_user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ def initialize(
@access_key_factory = access_key_factory
end

def exists?
@aws_user_details_provider.exists?
end

def has_mfa_enabled?
@aws_user_details_provider.has_mfa_enabled?
end
Expand Down
4 changes: 4 additions & 0 deletions libraries/aws_iam_user_details_provider.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ def initialize(user)
@aws_user = user
end

def exists?
@aws_user.exists?
end

def name
@aws_user.name
end
Expand Down
12 changes: 12 additions & 0 deletions test/unit/resources/aws_iam_user_details_provider_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@ def setup
@mock_iam_resource_user = Minitest::Mock.new
end

def test_exists_returns_true
@mock_iam_resource_user.expect :exists?, true
provider = AwsIam::UserDetailsProvider.new(@mock_iam_resource_user)
assert provider.exists?
end

def test_exists_returns_false
@mock_iam_resource_user.expect :exists?, false
provider = AwsIam::UserDetailsProvider.new(@mock_iam_resource_user)
refute provider.exists?
end

def test_has_mfa_enabled_returns_true
@mock_iam_resource_user.expect :mfa_devices, ['device']
provider = AwsIam::UserDetailsProvider.new(@mock_iam_resource_user)
Expand Down
23 changes: 23 additions & 0 deletions test/unit/resources/aws_iam_user_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require 'helper'
require 'aws_iam_user'

# rubocop:disable Metrics/ClassLength
class AwsIamUserTest < Minitest::Test
Username = 'test'.freeze

Expand All @@ -13,6 +14,28 @@ def setup
@mock_user = { name: Username }
end

def test_that_exists_returns_true_if_user_exists
@mock_user_provider.expect :user, @mock_user, [Username]
@mock_dets_provider.expect :exists?, true
@mock_dets_prov_ini.expect :create, @mock_dets_provider, [@mock_user]
assert AwsIamUser.new(
@mock_user,
@mock_user_provider,
@mock_dets_prov_ini,
).exists?
end

def test_that_exists_returns_false_if_user_does_not_exist
@mock_user_provider.expect :user, @mock_user, [Username]
@mock_dets_provider.expect :exists?, false
@mock_dets_prov_ini.expect :create, @mock_dets_provider, [@mock_user]
refute AwsIamUser.new(
@mock_user,
@mock_user_provider,
@mock_dets_prov_ini,
).exists?
end

def test_that_mfa_enable_returns_true_if_mfa_enabled
@mock_user_provider.expect :user, @mock_user, [Username]
@mock_dets_provider.expect :has_mfa_enabled?, true
Expand Down

0 comments on commit 84b34b9

Please sign in to comment.