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  }