mirror of
https://github.com/inspec/inspec
synced 2024-11-24 05:33:17 +00:00
d2ae5c0d68
Add support in aws_route_table to allow 17 hexadecimal characters
80 lines
2.5 KiB
Ruby
80 lines
2.5 KiB
Ruby
require 'helper'
|
|
|
|
class EmptyAwsRouteTableTest < Minitest::Test
|
|
def setup
|
|
AwsRouteTable::BackendFactory.select(AwsMRtbB::Empty)
|
|
end
|
|
|
|
def test_search_hit_via_scalar_works
|
|
assert_empty AwsRouteTable.new[:routetables]
|
|
end
|
|
|
|
def test_search_hit_via_scalar_works
|
|
refute AwsRouteTable.new('rtb-123abcde').exists?
|
|
end
|
|
end
|
|
|
|
class BasicAwsRouteTableTest2 < Minitest::Test
|
|
def setup
|
|
AwsRouteTable::BackendFactory.select(AwsMRtbB::Basic)
|
|
end
|
|
|
|
def test_search_hit
|
|
assert AwsRouteTable.new('rtb-05462d2278326a79c').exists?
|
|
assert AwsRouteTable.new('rtb-58508630').exists?
|
|
|
|
# not hexadecimal
|
|
assert_raises(ArgumentError) do
|
|
AwsRouteTable.new('rtb-xyzxyzxy')
|
|
end
|
|
|
|
# not within length constraint
|
|
assert_raises(ArgumentError) do
|
|
AwsRouteTable.new('rtb-abcdef012')
|
|
end
|
|
end
|
|
end
|
|
|
|
# MRtbB = Mock Routetable Backend
|
|
module AwsMRtbB
|
|
class Empty < AwsBackendBase
|
|
def describe_route_tables(query)
|
|
OpenStruct.new(route_tables: [])
|
|
end
|
|
end
|
|
|
|
class Basic < AwsBackendBase
|
|
def describe_route_tables(query)
|
|
fixtures = [
|
|
OpenStruct.new({associations: [],
|
|
propagating_vgws: [],
|
|
route_table_id: 'rtb-05462d2278326a79c',
|
|
routes: [
|
|
{destination_cidr_block: '172.32.1.0/24', gateway_id: 'igw-4fb9e626', origin: 'CreateRoute', state: 'active'},
|
|
{destination_cidr_block: '172.31.0.0/16', gateway_id: 'local', origin: 'CreateRouteTable', state: 'active'}
|
|
],
|
|
tags: [{key: 'Name', value: 'InSpec'}],
|
|
vpc_id: 'vpc-169f777e'
|
|
}),
|
|
OpenStruct.new({associations: [],
|
|
propagating_vgws: [],
|
|
route_table_id: 'rtb-58508630',
|
|
routes: [
|
|
{destination_cidr_block: '172.33.0.0/16', gateway_id: 'local', origin: 'CreateRouteTable', state: 'active'},
|
|
{destination_cidr_block: '0.0.0.0/0', gateway_id: 'igw-4fb9e626', origin: 'CreateRoute', state: 'active'}
|
|
],
|
|
tags: [{key: 'Name', value: 'InSpec'}],
|
|
vpc_id: 'vpc-169f777e'
|
|
})
|
|
]
|
|
|
|
selected = fixtures.select do |rtb|
|
|
query[:filters].all? do |filter|
|
|
filter[:values].include?(rtb[filter[:name].tr('-','_')])
|
|
end
|
|
end
|
|
|
|
OpenStruct.new({ route_tables: selected })
|
|
end
|
|
end
|
|
end
|