github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/openstack/networking_test.go (about) 1 package openstack 2 3 import ( 4 "testing" 5 6 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_Networking(t *testing.T) { 13 14 src := ` 15 resource "openstack_networking_secgroup_v2" "secgroup_1" { 16 name = "secgroup_1" 17 description = "My neutron security group" 18 } 19 20 resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_1" { 21 direction = "ingress" 22 ethertype = "IPv4" 23 protocol = "tcp" 24 port_range_min = 22 25 port_range_max = 22 26 remote_ip_prefix = "0.0.0.0/0" 27 security_group_id = "${openstack_networking_secgroup_v2.secgroup_1.id}" 28 } 29 ` 30 31 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 32 adapted := Adapt(modules) 33 34 require.Len(t, adapted.Networking.SecurityGroups, 1) 35 group := adapted.Networking.SecurityGroups[0] 36 37 assert.True(t, group.Name.EqualTo("secgroup_1")) 38 assert.Equal(t, 3, group.Name.GetMetadata().Range().GetStartLine()) 39 assert.Equal(t, 3, group.Name.GetMetadata().Range().GetEndLine()) 40 41 assert.True(t, group.Description.EqualTo("My neutron security group")) 42 assert.Equal(t, 4, group.Description.GetMetadata().Range().GetStartLine()) 43 assert.Equal(t, 4, group.Description.GetMetadata().Range().GetEndLine()) 44 45 require.Len(t, group.Rules, 1) 46 rule := group.Rules[0] 47 48 assert.True(t, rule.IsIngress.IsTrue()) 49 assert.Equal(t, 8, rule.IsIngress.GetMetadata().Range().GetStartLine()) 50 assert.Equal(t, 8, rule.IsIngress.GetMetadata().Range().GetEndLine()) 51 52 assert.True(t, rule.EtherType.EqualTo(4)) 53 assert.Equal(t, 9, rule.EtherType.GetMetadata().Range().GetStartLine()) 54 assert.Equal(t, 9, rule.EtherType.GetMetadata().Range().GetEndLine()) 55 56 assert.True(t, rule.Protocol.EqualTo("tcp")) 57 assert.Equal(t, 10, rule.Protocol.GetMetadata().Range().GetStartLine()) 58 assert.Equal(t, 10, rule.Protocol.GetMetadata().Range().GetEndLine()) 59 60 assert.True(t, rule.PortMin.EqualTo(22)) 61 assert.Equal(t, 11, rule.PortMin.GetMetadata().Range().GetStartLine()) 62 assert.Equal(t, 11, rule.PortMin.GetMetadata().Range().GetEndLine()) 63 64 assert.True(t, rule.PortMax.EqualTo(22)) 65 assert.Equal(t, 12, rule.PortMax.GetMetadata().Range().GetStartLine()) 66 assert.Equal(t, 12, rule.PortMax.GetMetadata().Range().GetEndLine()) 67 68 assert.True(t, rule.CIDR.EqualTo("0.0.0.0/0")) 69 assert.Equal(t, 13, rule.CIDR.GetMetadata().Range().GetStartLine()) 70 assert.Equal(t, 13, rule.CIDR.GetMetadata().Range().GetEndLine()) 71 72 }