mirror of
https://github.com/inspec/inspec
synced 2024-12-21 10:33:23 +00:00
129 lines
4.5 KiB
Ruby
129 lines
4.5 KiB
Ruby
|
# encoding: utf-8
|
||
|
require 'helper'
|
||
|
|
||
|
# MDCSB = MockDeliveryChannelSingleBackend
|
||
|
# Abbreviation not used outside this file
|
||
|
|
||
|
#=============================================================================#
|
||
|
# Constructor Tests
|
||
|
#=============================================================================#
|
||
|
class AwsConfigDeliveryChannelConstructorTest < Minitest::Test
|
||
|
def setup
|
||
|
AwsConfigDeliveryChannel::BackendFactory.select(AwsMDCSB::Basic)
|
||
|
end
|
||
|
|
||
|
def test_constructor_when_no_params_provided
|
||
|
AwsConfigDeliveryChannel.new
|
||
|
end
|
||
|
|
||
|
|
||
|
def test_constructor_expected_well_formed_args_scalar
|
||
|
AwsConfigDeliveryChannel.new('default')
|
||
|
end
|
||
|
|
||
|
def test_constructor_expected_well_formed_args_hash
|
||
|
AwsConfigDeliveryChannel.new(channel_name: 'default')
|
||
|
end
|
||
|
|
||
|
def test_constructor_reject_unknown_resource_params
|
||
|
assert_raises(ArgumentError) { AwsConfigDeliveryChannel.new(bla: 'blabla') }
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#=============================================================================#
|
||
|
# Recall
|
||
|
#=============================================================================#
|
||
|
|
||
|
class AwsConfigDeliveryChannelRecallTest < Minitest::Test
|
||
|
def setup
|
||
|
AwsConfigDeliveryChannel::BackendFactory.select(AwsMDCSB::Basic)
|
||
|
end
|
||
|
|
||
|
def test_search_hit_by_default
|
||
|
assert AwsConfigDeliveryChannel.new.exists?
|
||
|
end
|
||
|
|
||
|
def test_search_hit_via_scalar
|
||
|
assert AwsConfigDeliveryChannel.new('default').exists?
|
||
|
end
|
||
|
|
||
|
def test_search_hit_via_hash
|
||
|
assert AwsConfigDeliveryChannel.new(channel_name: 'default').exists?
|
||
|
end
|
||
|
|
||
|
def test_search_miss_is_not_an_exception
|
||
|
refute AwsConfigDeliveryChannel.new(channel_name: 'NonExistentDeliveryChannel').exists?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#=============================================================================#
|
||
|
# properties
|
||
|
#=============================================================================#
|
||
|
|
||
|
class AwsConfigDeliveryChannelPropertiesTest < Minitest::Test
|
||
|
def setup
|
||
|
AwsConfigDeliveryChannel::BackendFactory.select(AwsMDCSB::Basic)
|
||
|
end
|
||
|
|
||
|
def test_property_channel_name
|
||
|
assert_equal('default', AwsConfigDeliveryChannel.new('default').channel_name)
|
||
|
assert_equal('default', AwsConfigDeliveryChannel.new.channel_name)
|
||
|
assert_equal('NonExistentDeliveryChannel',AwsConfigDeliveryChannel.new('NonExistentDeliveryChannel').channel_name)
|
||
|
end
|
||
|
|
||
|
def test_property_delivery_frequency_in_hours
|
||
|
assert_equal(3, AwsConfigDeliveryChannel.new('default').delivery_frequency_in_hours)
|
||
|
assert_nil(AwsConfigDeliveryChannel.new('NonExistentDeliveryChannel').delivery_frequency_in_hours)
|
||
|
end
|
||
|
|
||
|
def test_property_s3_bucket_name
|
||
|
assert_equal('my-bucket', AwsConfigDeliveryChannel.new('default').s3_bucket_name)
|
||
|
assert_nil(AwsConfigDeliveryChannel.new('NonExistentDeliveryChannel').s3_bucket_name)
|
||
|
end
|
||
|
|
||
|
def test_property_s3_key_prefix
|
||
|
assert_equal('config-logs/', AwsConfigDeliveryChannel.new('default').s3_key_prefix)
|
||
|
assert_nil(AwsConfigDeliveryChannel.new('NonExistentDeliveryChannel').s3_key_prefix)
|
||
|
end
|
||
|
|
||
|
def test_property_sns_topic_arn
|
||
|
assert_equal('arn:aws:sns:::my-topic-name', AwsConfigDeliveryChannel.new('default').sns_topic_arn)
|
||
|
assert_nil(AwsConfigDeliveryChannel.new('NonExistentDeliveryChannel').sns_topic_arn)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#=============================================================================#
|
||
|
# Test Matchers
|
||
|
#=============================================================================#
|
||
|
|
||
|
# None
|
||
|
|
||
|
#=============================================================================#
|
||
|
# Test Fixtures
|
||
|
#=============================================================================#
|
||
|
|
||
|
module AwsMDCSB
|
||
|
class Basic < AwsBackendBase
|
||
|
def describe_delivery_channels(query = {})
|
||
|
fixtures = {
|
||
|
'default' => Aws::ConfigService::Types::DescribeDeliveryChannelsResponse.new(
|
||
|
:delivery_channels => [
|
||
|
{
|
||
|
name: "default",
|
||
|
s3_bucket_name: 'my-bucket',
|
||
|
s3_key_prefix: 'config-logs/',
|
||
|
sns_topic_arn: 'arn:aws:sns:::my-topic-name',
|
||
|
config_snapshot_delivery_properties: {
|
||
|
delivery_frequency: 'Three_Hours'
|
||
|
},
|
||
|
},
|
||
|
]
|
||
|
),
|
||
|
}
|
||
|
return fixtures['default'] if query.empty?
|
||
|
return fixtures[query[:delivery_channel_names][0]] unless fixtures[query[:delivery_channel_names][0]].nil?
|
||
|
raise Aws::ConfigService::Errors::NoSuchDeliveryChannelException.new(nil, nil)
|
||
|
end
|
||
|
end
|
||
|
end
|