github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/azure/datalake/adapt_test.go (about) 1 package datalake 2 3 import ( 4 "testing" 5 6 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 7 8 "github.com/khulnasoft-lab/defsec/pkg/providers/azure/datalake" 9 10 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 11 12 "github.com/khulnasoft-lab/defsec/test/testutil" 13 "github.com/stretchr/testify/assert" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func Test_adaptStore(t *testing.T) { 18 tests := []struct { 19 name string 20 terraform string 21 expected datalake.Store 22 }{ 23 { 24 name: "enabled", 25 terraform: ` 26 resource "azurerm_data_lake_store" "good_example" { 27 encryption_state = "Enabled" 28 } 29 `, 30 expected: datalake.Store{ 31 Metadata: defsecTypes.NewTestMetadata(), 32 EnableEncryption: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 33 }, 34 }, 35 { 36 name: "disabled", 37 terraform: ` 38 resource "azurerm_data_lake_store" "good_example" { 39 encryption_state = "Disabled" 40 } 41 `, 42 expected: datalake.Store{ 43 Metadata: defsecTypes.NewTestMetadata(), 44 EnableEncryption: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 45 }, 46 }, 47 { 48 name: "enabled by default", 49 terraform: ` 50 resource "azurerm_data_lake_store" "good_example" { 51 } 52 `, 53 expected: datalake.Store{ 54 Metadata: defsecTypes.NewTestMetadata(), 55 EnableEncryption: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 56 }, 57 }, 58 } 59 60 for _, test := range tests { 61 t.Run(test.name, func(t *testing.T) { 62 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 63 adapted := adaptStore(modules.GetBlocks()[0]) 64 testutil.AssertDefsecEqual(t, test.expected, adapted) 65 }) 66 } 67 } 68 69 func TestLines(t *testing.T) { 70 src := ` 71 resource "azurerm_data_lake_store" "good_example" { 72 encryption_state = "Disabled" 73 }` 74 75 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 76 adapted := Adapt(modules) 77 78 require.Len(t, adapted.Stores, 1) 79 store := adapted.Stores[0] 80 81 assert.Equal(t, 3, store.EnableEncryption.GetMetadata().Range().GetStartLine()) 82 assert.Equal(t, 3, store.EnableEncryption.GetMetadata().Range().GetEndLine()) 83 }