github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/rdb/db_instance_test.go (about) 1 package rdb 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/rdb" 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_adaptDBInstances(t *testing.T) { 16 tests := []struct { 17 name string 18 terraform string 19 expected []rdb.DBInstance 20 }{ 21 { 22 name: "configured", 23 terraform: ` 24 resource "nifcloud_db_instance" "example" { 25 backup_retention_period = 2 26 engine = "MySQL" 27 engine_version = "5.7.15" 28 publicly_accessible = false 29 network_id = "example-network" 30 } 31 `, 32 expected: []rdb.DBInstance{{ 33 Metadata: defsecTypes.NewTestMetadata(), 34 BackupRetentionPeriodDays: defsecTypes.Int(2, defsecTypes.NewTestMetadata()), 35 Engine: defsecTypes.String("MySQL", defsecTypes.NewTestMetadata()), 36 EngineVersion: defsecTypes.String("5.7.15", defsecTypes.NewTestMetadata()), 37 NetworkID: defsecTypes.String("example-network", defsecTypes.NewTestMetadata()), 38 PublicAccess: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 39 }}, 40 }, 41 { 42 name: "defaults", 43 terraform: ` 44 resource "nifcloud_db_instance" "example" { 45 } 46 `, 47 48 expected: []rdb.DBInstance{{ 49 Metadata: defsecTypes.NewTestMetadata(), 50 BackupRetentionPeriodDays: defsecTypes.Int(0, defsecTypes.NewTestMetadata()), 51 Engine: defsecTypes.String("", defsecTypes.NewTestMetadata()), 52 EngineVersion: defsecTypes.String("", defsecTypes.NewTestMetadata()), 53 NetworkID: defsecTypes.String("net-COMMON_PRIVATE", defsecTypes.NewTestMetadata()), 54 PublicAccess: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 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 := adaptDBInstances(modules) 63 testutil.AssertDefsecEqual(t, test.expected, adapted) 64 }) 65 } 66 }