mirror of
https://github.com/inspec/inspec
synced 2024-12-12 14:22:38 +00:00
a5309ea392
Signed-off-by: Ryan Davis <zenspider@chef.io>
113 lines
3.7 KiB
Ruby
113 lines
3.7 KiB
Ruby
require "helper"
|
|
require "inspec/resource"
|
|
require "resources/aws/aws_cloudtrail_trails"
|
|
|
|
require "resource_support/aws"
|
|
require "resources/aws/aws_cloudtrail_trails"
|
|
|
|
# MACTTPB = MockAwsCloudTrailTrailsPluralBackend
|
|
# Abbreviation not used outside this file
|
|
|
|
#=============================================================================#
|
|
# Constructor Tests
|
|
#=============================================================================#
|
|
class AwsCloudTrailTrailsConstructorTest < Minitest::Test
|
|
|
|
def setup
|
|
AwsCloudTrailTrails::BackendFactory.select(MACTTPB::Empty)
|
|
end
|
|
|
|
def test_empty_params_ok
|
|
AwsCloudTrailTrails.new
|
|
end
|
|
|
|
def test_rejects_unrecognized_params
|
|
assert_raises(ArgumentError) { AwsCloudTrailTrails.new(shoe_size: 9) }
|
|
end
|
|
end
|
|
|
|
#=============================================================================#
|
|
# Search / Recall
|
|
#=============================================================================#
|
|
class AwsCloudTrailTrailsRecallEmptyTest < Minitest::Test
|
|
|
|
def setup
|
|
AwsCloudTrailTrails::BackendFactory.select(MACTTPB::Empty)
|
|
end
|
|
|
|
def test_search_miss_trail_empty_trail_list
|
|
refute AwsCloudTrailTrails.new.exists?
|
|
end
|
|
end
|
|
|
|
class AwsCloudTrailTrailsRecallBasicTest < Minitest::Test
|
|
|
|
def setup
|
|
AwsCloudTrailTrails::BackendFactory.select(MACTTPB::Basic)
|
|
end
|
|
|
|
def test_search_hit_via_empty_filter
|
|
assert AwsCloudTrailTrails.new.exists?
|
|
end
|
|
end
|
|
|
|
#=============================================================================#
|
|
# Properties
|
|
#=============================================================================#
|
|
class AwsCloudTrailTrailsProperties < Minitest::Test
|
|
def setup
|
|
AwsCloudTrailTrails::BackendFactory.select(MACTTPB::Basic)
|
|
end
|
|
|
|
def test_property_names
|
|
basic = AwsCloudTrailTrails.new
|
|
assert_kind_of(Array, basic.names)
|
|
assert(basic.names.include?("test-trail-1"))
|
|
refute(basic.names.include?(nil))
|
|
end
|
|
|
|
def test_property_trail_arns
|
|
basic = AwsCloudTrailTrails.new
|
|
assert_kind_of(Array, basic.trail_arns)
|
|
assert(basic.trail_arns.include?("arn:aws:cloudtrail:us-east-1::trail/test-trail-1"))
|
|
refute(basic.trail_arns.include?(nil))
|
|
end
|
|
end
|
|
#=============================================================================#
|
|
# Test Fixtures
|
|
#=============================================================================#
|
|
module MACTTPB
|
|
class Empty < AwsBackendBase
|
|
def describe_trails(query = {})
|
|
OpenStruct.new({ trail_list: [] })
|
|
end
|
|
end
|
|
|
|
class Basic < AwsBackendBase
|
|
def describe_trails(query = {})
|
|
fixtures = [
|
|
OpenStruct.new({
|
|
name: "test-trail-1",
|
|
s3_bucket_name: "aws-s3-bucket-test-trail-1",
|
|
is_multi_region_trail: true,
|
|
home_region: "us-east-1",
|
|
trail_arn: "arn:aws:cloudtrail:us-east-1::trail/test-trail-1",
|
|
log_file_validation_enabled: true,
|
|
cloud_watch_logs_log_group_arn: "arn:aws:logs:us-east-1::log-group:test:*",
|
|
cloud_watch_logs_role_arn: "arn:aws:iam:::role/CloudTrail_CloudWatchLogs_Role",
|
|
kms_key_id: "arn:aws:kms:us-east-1::key/88197884-041f-4f8e-a801-cf120e4845a8",
|
|
}),
|
|
OpenStruct.new({
|
|
name: "test-trail-2",
|
|
s3_bucket_name: "aws-s3-bucket-test-trail-2",
|
|
home_region: "us-east-1",
|
|
trail_arn: "arn:aws:cloudtrail:us-east-1::trail/test-trail-2",
|
|
cloud_watch_logs_log_group_arn: "arn:aws:logs:us-east-1::log-group:test:*",
|
|
cloud_watch_logs_role_arn: "arn:aws:iam:::role/CloudTrail_CloudWatchLogs_Role",
|
|
}),
|
|
]
|
|
|
|
OpenStruct.new({ trail_list: fixtures })
|
|
end
|
|
end
|
|
end
|