inspec/test/unit/resources/aws_iam_policies_test.rb

109 lines
3 KiB
Ruby
Raw Normal View History

require "helper"
require "inspec/resource"
require "resources/aws/aws_iam_policies"
require "resource_support/aws"
# MAIPPB = MockAwsIamPoliciesPluralBackend
# Abbreviation not used outside this file
#=============================================================================#
# Constructor Tests
#=============================================================================#
class AwsIamPoliciesConstructorTest < Minitest::Test
def setup
AwsIamPolicies::BackendFactory.select(MAIPPB::Empty)
end
def test_empty_params_ok
AwsIamPolicies.new
end
def test_rejects_unrecognized_params
assert_raises(ArgumentError) { AwsIamPolicies.new(shoe_size: 9) }
end
end
#=============================================================================#
# Search / Recall
#=============================================================================#
class AwsIamPoliciesRecallEmptyTest < Minitest::Test
def setup
AwsIamPolicies::BackendFactory.select(MAIPPB::Empty)
end
def test_search_miss_policy_empty_policy_list
refute AwsIamPolicies.new.exists?
end
end
class AwsIamPoliciesRecallBasicTest < Minitest::Test
def setup
AwsIamPolicies::BackendFactory.select(MAIPPB::Basic)
end
def test_search_hit_via_empty_filter
assert AwsIamPolicies.new.exists?
end
end
#=============================================================================#
# Properties
#=============================================================================#
class AwsIamPoliciesProperties < Minitest::Test
def setup
AwsIamPolicies::BackendFactory.select(MAIPPB::Basic)
end
def test_property_policy_names
basic = AwsIamPolicies.new
assert_kind_of(Array, basic.policy_names)
assert(basic.policy_names.include?("test-policy-1"))
refute(basic.policy_names.include?(nil))
end
def test_property_arns
basic = AwsIamPolicies.new
assert_kind_of(Array, basic.arns)
assert(basic.arns.include?("arn:aws:iam::aws:policy/test-policy-1"))
refute(basic.arns.include?(nil))
end
end
#=============================================================================#
# Test Fixtures
#=============================================================================#
module MAIPPB
class Empty < AwsBackendBase
def list_policies(query = {})
OpenStruct.new({ policies: [] })
end
end
class Basic < AwsBackendBase
def list_policies(query = {})
fixtures = [
OpenStruct.new({
policy_name: "test-policy-1",
arn: "arn:aws:iam::aws:policy/test-policy-1",
default_version_id: "v1",
attachment_count: 3,
is_attachable: true,
}),
OpenStruct.new({
policy_name: "test-policy-2",
arn: "arn:aws:iam::aws:policy/test-policy-2",
default_version_id: "v2",
attachment_count: 0,
is_attachable: false,
}),
]
OpenStruct.new({ policies: fixtures })
end
end
end