github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/computing/instance_test.go (about) 1 package computing 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/computing" 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_adaptInstances(t *testing.T) { 16 tests := []struct { 17 name string 18 terraform string 19 expected []computing.Instance 20 }{ 21 { 22 name: "configured", 23 terraform: ` 24 resource "nifcloud_instance" "my_example" { 25 security_group = "example-security-group" 26 network_interface { 27 network_id = "net-COMMON_PRIVATE" 28 } 29 } 30 `, 31 expected: []computing.Instance{{ 32 Metadata: defsecTypes.NewTestMetadata(), 33 SecurityGroup: defsecTypes.String("example-security-group", defsecTypes.NewTestMetadata()), 34 NetworkInterfaces: []computing.NetworkInterface{ 35 { 36 Metadata: defsecTypes.NewTestMetadata(), 37 NetworkID: defsecTypes.String("net-COMMON_PRIVATE", defsecTypes.NewTestMetadata()), 38 }, 39 }, 40 }}, 41 }, 42 { 43 name: "defaults", 44 terraform: ` 45 resource "nifcloud_instance" "my_example" { 46 network_interface { 47 } 48 } 49 `, 50 51 expected: []computing.Instance{{ 52 Metadata: defsecTypes.NewTestMetadata(), 53 SecurityGroup: defsecTypes.String("", defsecTypes.NewTestMetadata()), 54 NetworkInterfaces: []computing.NetworkInterface{ 55 { 56 Metadata: defsecTypes.NewTestMetadata(), 57 NetworkID: defsecTypes.String("", defsecTypes.NewTestMetadata()), 58 }, 59 }, 60 }}, 61 }, 62 } 63 64 for _, test := range tests { 65 t.Run(test.name, func(t *testing.T) { 66 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 67 adapted := adaptInstances(modules) 68 testutil.AssertDefsecEqual(t, test.expected, adapted) 69 }) 70 } 71 }