github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/nas/nas_security_group_test.go (about) 1 package nas 2 3 import ( 4 "testing" 5 6 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 7 8 "github.com/khulnasoft-lab/defsec/pkg/providers/nifcloud/nas" 9 10 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 11 12 "github.com/khulnasoft-lab/defsec/test/testutil" 13 ) 14 15 func Test_adaptNASSecurityGroups(t *testing.T) { 16 tests := []struct { 17 name string 18 terraform string 19 expected []nas.NASSecurityGroup 20 }{ 21 { 22 name: "configured", 23 terraform: ` 24 resource "nifcloud_nas_security_group" "example" { 25 description = "memo" 26 27 rule { 28 cidr_ip = "0.0.0.0/0" 29 } 30 } 31 `, 32 expected: []nas.NASSecurityGroup{{ 33 Metadata: defsecTypes.NewTestMetadata(), 34 Description: defsecTypes.String("memo", defsecTypes.NewTestMetadata()), 35 CIDRs: []defsecTypes.StringValue{ 36 defsecTypes.String("0.0.0.0/0", defsecTypes.NewTestMetadata()), 37 }, 38 }}, 39 }, 40 { 41 name: "defaults", 42 terraform: ` 43 resource "nifcloud_nas_security_group" "example" { 44 rule { 45 } 46 } 47 `, 48 49 expected: []nas.NASSecurityGroup{{ 50 Metadata: defsecTypes.NewTestMetadata(), 51 Description: defsecTypes.String("", defsecTypes.NewTestMetadata()), 52 CIDRs: []defsecTypes.StringValue{ 53 defsecTypes.String("", defsecTypes.NewTestMetadata()), 54 }, 55 }}, 56 }, 57 } 58 59 for _, test := range tests { 60 t.Run(test.name, func(t *testing.T) { 61 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 62 adapted := adaptNASSecurityGroups(modules) 63 testutil.AssertDefsecEqual(t, test.expected, adapted) 64 }) 65 } 66 }