inspec/test/unit/resources/aws_iam_user_test.rb

108 lines
2.3 KiB
Ruby
Raw Normal View History

# author: Simon Varlow
require 'aws-sdk'
require 'helper'
require 'aws_iam_user'
class AwsIamUserTest < Minitest::Test
Username = 'test'.freeze
def setup
@mock_user_provider = Minitest::Mock.new
end
def test_mfa_enabled_returns_true_if_mfa_enabled
@mock_user_provider.expect(
:user,
{ has_mfa_enabled?: true },
[Username],
)
assert(
AwsIamUser.new(
{ name: Username },
@mock_user_provider,
).has_mfa_enabled?,
)
end
def test_mfa_enabled_returns_false_if_mfa_is_not_enabled
@mock_user_provider.expect(
:user,
{ has_mfa_enabled?: false },
[Username],
)
refute(
AwsIamUser.new(
{ name: Username },
@mock_user_provider,
).has_mfa_enabled?,
)
end
def test_console_password_returns_true_if_console_password_has_been_set
@mock_user_provider.expect(
:user,
{ has_console_password?: true },
[Username],
)
assert(
AwsIamUser.new(
{ name: Username },
@mock_user_provider,
).has_console_password?,
)
end
def test_console_password_returns_false_if_console_password_has_not_been_set
@mock_user_provider.expect(
:user,
{ has_console_password?: false },
[Username],
)
refute(
AwsIamUser.new(
{ name: Username },
@mock_user_provider,
).has_console_password?,
)
end
def test_that_access_keys_returns_aws_iam_access_key_resources
stub_aws_access_key = Object.new
stub_access_key_resource = Object.new
mock_access_key_factory = Minitest::Mock.new
@mock_user_provider.expect(
:user,
{ access_keys: [stub_aws_access_key] },
[Username],
)
mock_access_key_factory.expect(
:create_access_key,
stub_access_key_resource,
[stub_aws_access_key],
)
assert_equal(
stub_access_key_resource,
AwsIamUser.new(
{ name: Username },
@mock_user_provider,
mock_access_key_factory,
).access_keys[0],
)
mock_access_key_factory.verify
end
def test_to_s
@mock_user_provider.expect(
:user,
{ name: Username, has_mfa_enabled?: true },
[Username],
)
expected = "IAM User #{Username}"
test = AwsIamUser.new({ name: Username }, @mock_user_provider).to_s
assert_equal expected, test
end
end