/spec/custom_rules/EC2NetworkAclEntryIneffectiveDenyRule_spec.rb

https://github.com/stelligent/cfn_nag · Ruby · 54 lines · 45 code · 9 blank · 0 comment · 0 complexity · d6532c151feb334c18ad53e56695f37d MD5 · raw file

  1. require 'spec_helper'
  2. require 'cfn-nag/custom_rules/EC2NetworkAclEntryIneffectiveDenyRule'
  3. require 'cfn-model'
  4. describe EC2NetworkAclEntryIneffectiveDenyRule do
  5. context 'EC2 Network ACL Entry uses a partial ipv4 CIDR range for a Deny rule' do
  6. it 'returns the offending logical resource id' do
  7. cfn_model = CfnParser.new.parse read_test_template(
  8. 'yaml/ec2_networkaclentry/ec2_networkaclentry_deny_partial_ipv4_cidr_range.yml'
  9. )
  10. actual_logical_resource_ids = EC2NetworkAclEntryIneffectiveDenyRule.new.audit_impl cfn_model
  11. expected_logical_resource_ids = %w[myNetworkAclEntry]
  12. expect(actual_logical_resource_ids).to eq expected_logical_resource_ids
  13. end
  14. end
  15. context 'EC2 Network ACL Entry uses a full ipv4 CIDR range for a Deny rule' do
  16. it 'returns an empty list' do
  17. cfn_model = CfnParser.new.parse read_test_template(
  18. 'yaml/ec2_networkaclentry/ec2_networkaclentry_deny_full_ipv4_cidr_range.yml'
  19. )
  20. actual_logical_resource_ids = EC2NetworkAclEntryIneffectiveDenyRule.new.audit_impl cfn_model
  21. expected_logical_resource_ids = %w[]
  22. expect(actual_logical_resource_ids).to eq expected_logical_resource_ids
  23. end
  24. end
  25. context 'EC2 Network ACL Entry uses a partial ipv6 CIDR range for a Deny rule' do
  26. it 'returns the offending logical resource id' do
  27. cfn_model = CfnParser.new.parse read_test_template(
  28. 'yaml/ec2_networkaclentry/ec2_networkaclentry_deny_partial_ipv6_cidr_range.yml'
  29. )
  30. actual_logical_resource_ids = EC2NetworkAclEntryIneffectiveDenyRule.new.audit_impl cfn_model
  31. expected_logical_resource_ids = %w[myNetworkAclEntry]
  32. expect(actual_logical_resource_ids).to eq expected_logical_resource_ids
  33. end
  34. end
  35. context 'EC2 Network ACL Entry uses a full ipv6 CIDR range for a Deny rule' do
  36. it 'returns an empty list' do
  37. cfn_model = CfnParser.new.parse read_test_template(
  38. 'yaml/ec2_networkaclentry/ec2_networkaclentry_deny_full_ipv6_cidr_range.yml'
  39. )
  40. actual_logical_resource_ids = EC2NetworkAclEntryIneffectiveDenyRule.new.audit_impl cfn_model
  41. expected_logical_resource_ids = %w[]
  42. expect(actual_logical_resource_ids).to eq expected_logical_resource_ids
  43. end
  44. end
  45. end