mirror of
https://github.com/inspec/inspec
synced 2024-12-26 21:13:25 +00:00
6aaab8691c
Includes train aws:// targeting and some new resources Signed-off-by: Clinton Wolfe <clintoncwolfe@gmail.com>
102 lines
No EOL
2.9 KiB
Ruby
102 lines
No EOL
2.9 KiB
Ruby
require 'helper'
|
|
|
|
# MIRB = MockIamRoleBackend
|
|
# Abbreviation not used outside this file
|
|
|
|
#=============================================================================#
|
|
# Constructor Tests
|
|
#=============================================================================#
|
|
class AwsIamRoleConstructorTest < Minitest::Test
|
|
def setup
|
|
AwsIamRole::BackendFactory.select(AwsMIRB::Basic)
|
|
end
|
|
|
|
def test_constructor_some_args_required
|
|
assert_raises(ArgumentError) { AwsIamRole.new }
|
|
end
|
|
|
|
def test_constructor_accepts_scalar_role_name
|
|
AwsIamRole.new('alpha')
|
|
end
|
|
|
|
def test_constructor_accepts_role_name_as_hash
|
|
AwsIamRole.new(role_name: 'alpha')
|
|
end
|
|
|
|
def test_constructor_rejects_unrecognized_resource_params
|
|
assert_raises(ArgumentError) { AwsIamRole.new(beep: 'boop') }
|
|
end
|
|
end
|
|
|
|
#=============================================================================#
|
|
# Search / Recall
|
|
#=============================================================================#
|
|
class AwsIamRoleRecallTest < Minitest::Test
|
|
# No setup here - each test needs to explicitly declare
|
|
# what they want from the backend.
|
|
|
|
def test_recall_no_match_is_no_exception
|
|
AwsIamRole::BackendFactory.select(AwsMIRB::Miss)
|
|
refute AwsIamRole.new('nonesuch').exists?
|
|
end
|
|
|
|
def test_recall_match_single_result_works
|
|
AwsIamRole::BackendFactory.select(AwsMIRB::Basic)
|
|
assert AwsIamRole.new('alpha').exists?
|
|
end
|
|
end
|
|
|
|
|
|
#=============================================================================#
|
|
# Properties
|
|
#=============================================================================#
|
|
|
|
class AwsIamRolePropertiesTest < Minitest::Test
|
|
def setup
|
|
AwsIamRole::BackendFactory.select(AwsMIRB::Basic)
|
|
end
|
|
|
|
#---------------------------------------
|
|
# description
|
|
#---------------------------------------
|
|
def test_property_description
|
|
assert_equal('alpha role', AwsIamRole.new('alpha').description)
|
|
end
|
|
|
|
def test_prop_conf_sub_count_zero
|
|
assert_empty(AwsIamRole.new('beta').description)
|
|
end
|
|
end
|
|
|
|
|
|
#=============================================================================#
|
|
# Test Fixtures
|
|
#=============================================================================#
|
|
module AwsMIRB
|
|
class Miss < AwsBackendBase
|
|
def get_role(query)
|
|
raise Aws::IAM::Errors::NoSuchEntity.new('Nope', 'Nope')
|
|
end
|
|
end
|
|
|
|
class Basic < AwsBackendBase
|
|
def get_role(query)
|
|
fixtures = {
|
|
'alpha' => OpenStruct.new({
|
|
role_name: 'alpha',
|
|
description: 'alpha role',
|
|
}),
|
|
'beta' => OpenStruct.new({
|
|
role_name: 'beta',
|
|
description: '',
|
|
}),
|
|
}
|
|
unless fixtures.key?(query[:role_name])
|
|
raise Aws::IAM::Errors::NoSuchEntity.new('Nope', 'Nope')
|
|
end
|
|
OpenStruct.new({
|
|
role: fixtures[query[:role_name]]
|
|
})
|
|
end
|
|
end
|
|
end |