mirror of
https://github.com/inspec/inspec
synced 2024-11-23 21:23:29 +00:00
commit
1ec156962a
4 changed files with 32 additions and 14 deletions
|
@ -12,7 +12,7 @@ class AwsIamUser < Inspec.resource(1)
|
|||
"
|
||||
def initialize(name, aws_user_provider = AwsIam::UserProvider.new)
|
||||
@name = name
|
||||
@user = aws_user_provider.get_user(name)
|
||||
@user = aws_user_provider.user(name)
|
||||
end
|
||||
|
||||
def has_mfa_enabled?
|
||||
|
|
|
@ -7,11 +7,18 @@ module AwsIam
|
|||
@iam_resource = conn.iam_resource
|
||||
end
|
||||
|
||||
def get_user(name)
|
||||
def user(name)
|
||||
aws_user = @iam_resource.user(name)
|
||||
self.class.convert(aws_user)
|
||||
end
|
||||
|
||||
def list_users
|
||||
aws_users = @iam_resource.users
|
||||
aws_users.map do |aws_user|
|
||||
self.class.convert(aws_user)
|
||||
end
|
||||
end
|
||||
|
||||
class << self
|
||||
def has_mfa_enabled?(aws_user)
|
||||
!aws_user.mfa_devices.first.nil?
|
||||
|
|
|
@ -17,42 +17,53 @@ class AwsIamUserProviderTest < Minitest::Test
|
|||
@user_provider = AwsIam::UserProvider.new(@mock_aws_connection)
|
||||
end
|
||||
|
||||
def test_get_user
|
||||
def test_user
|
||||
@mock_iam_resource.expect :user, create_mock_user, [Username]
|
||||
assert !@user_provider.get_user(Username).nil?
|
||||
assert !@user_provider.user(Username).nil?
|
||||
end
|
||||
|
||||
def test_list_users
|
||||
@mock_iam_resource.expect :users, [create_mock_user, create_mock_user, create_mock_user]
|
||||
mock_user_output = {has_mfa_enabled?: true, has_console_password?: true}
|
||||
assert @user_provider.list_users == [mock_user_output, mock_user_output, mock_user_output]
|
||||
end
|
||||
|
||||
def test_list_users_no_users
|
||||
@mock_iam_resource.expect :users, []
|
||||
assert @user_provider.list_users == []
|
||||
end
|
||||
|
||||
def test_has_mfa_enabled_returns_true
|
||||
@mock_iam_resource.expect :user, create_mock_user(has_mfa_enabled: true), [Username]
|
||||
assert @user_provider.get_user(Username)[:has_mfa_enabled?]
|
||||
assert @user_provider.user(Username)[:has_mfa_enabled?]
|
||||
end
|
||||
|
||||
def test_has_mfa_enabled_returns_false
|
||||
@mock_iam_resource.expect :user, create_mock_user(has_mfa_enabled: false), [Username]
|
||||
assert !@user_provider.get_user(Username)[:has_mfa_enabled?]
|
||||
assert !@user_provider.user(Username)[:has_mfa_enabled?]
|
||||
end
|
||||
|
||||
def test_has_console_password_returns_true
|
||||
@mock_iam_resource.expect :user, create_mock_user(has_console_password: true), [Username]
|
||||
assert @user_provider.get_user(Username)[:has_console_password?]
|
||||
assert @user_provider.user(Username)[:has_console_password?]
|
||||
end
|
||||
|
||||
def test_has_console_password_returns_false
|
||||
@mock_iam_resource.expect :user, create_mock_user(has_console_password: false), [Username]
|
||||
assert !@user_provider.get_user(Username)[:has_console_password?]
|
||||
assert !@user_provider.user(Username)[:has_console_password?]
|
||||
end
|
||||
|
||||
def test_has_console_password_returns_false_when_nosuchentity
|
||||
@mock_iam_resource.expect :user, create_mock_user_throw(Aws::IAM::Errors::NoSuchEntity.new(nil, nil)), [Username]
|
||||
|
||||
assert !@user_provider.get_user(Username)[:has_console_password?]
|
||||
assert !@user_provider.user(Username)[:has_console_password?]
|
||||
end
|
||||
|
||||
def test_has_console_password_throws
|
||||
@mock_iam_resource.expect :user, create_mock_user_throw(ArgumentError), [Username]
|
||||
|
||||
assert_raises ArgumentError do
|
||||
@user_provider.get_user(Username)
|
||||
@user_provider.user(Username)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -12,22 +12,22 @@ Username = "test"
|
|||
end
|
||||
|
||||
def test_that_MFA_enable_returns_true_if_MFA_Enabled
|
||||
@mock_user_provider.expect :get_user, {has_mfa_enabled?: true}, [Username]
|
||||
@mock_user_provider.expect :user, {has_mfa_enabled?: true}, [Username]
|
||||
assert AwsIamUser.new(Username, @mock_user_provider).has_mfa_enabled?
|
||||
end
|
||||
|
||||
def test_that_MFA_enable_returns_false_if_MFA_is_not_Enabled
|
||||
@mock_user_provider.expect :get_user, {has_mfa_enabled?: false}, [Username]
|
||||
@mock_user_provider.expect :user, {has_mfa_enabled?: false}, [Username]
|
||||
assert !AwsIamUser.new(Username, @mock_user_provider).has_mfa_enabled?
|
||||
end
|
||||
|
||||
def test_that_console_Password_returns_true_if_console_Password_has_been_set
|
||||
@mock_user_provider.expect :get_user, {has_console_password?: true}, [Username]
|
||||
@mock_user_provider.expect :user, {has_console_password?: true}, [Username]
|
||||
assert AwsIamUser.new(Username, @mock_user_provider).has_console_password?
|
||||
end
|
||||
|
||||
def test_that_console_Password_returns_false_if_console_Password_has_not_been_set
|
||||
@mock_user_provider.expect :get_user, {has_console_password?: false}, [Username]
|
||||
@mock_user_provider.expect :user, {has_console_password?: false}, [Username]
|
||||
assert !AwsIamUser.new(Username, @mock_user_provider).has_console_password?
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue