github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/azure/datafactory/adapt_test.go (about) 1 package datafactory 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/datafactory" 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_adaptFactory(t *testing.T) { 18 tests := []struct { 19 name string 20 terraform string 21 expected datafactory.Factory 22 }{ 23 { 24 name: "defined", 25 terraform: ` 26 resource "azurerm_data_factory" "example" { 27 name = "example" 28 location = azurerm_resource_group.example.location 29 resource_group_name = azurerm_resource_group.example.name 30 public_network_enabled = false 31 } 32 `, 33 expected: datafactory.Factory{ 34 Metadata: defsecTypes.NewTestMetadata(), 35 EnablePublicNetwork: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 36 }, 37 }, 38 { 39 name: "default", 40 terraform: ` 41 resource "azurerm_data_factory" "example" { 42 name = "example" 43 } 44 `, 45 expected: datafactory.Factory{ 46 Metadata: defsecTypes.NewTestMetadata(), 47 EnablePublicNetwork: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 48 }, 49 }, 50 } 51 52 for _, test := range tests { 53 t.Run(test.name, func(t *testing.T) { 54 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 55 adapted := adaptFactory(modules.GetBlocks()[0]) 56 testutil.AssertDefsecEqual(t, test.expected, adapted) 57 }) 58 } 59 } 60 61 func TestLines(t *testing.T) { 62 src := ` 63 resource "azurerm_data_factory" "example" { 64 name = "example" 65 location = azurerm_resource_group.example.location 66 resource_group_name = azurerm_resource_group.example.name 67 public_network_enabled = false 68 }` 69 70 modules := tftestutil.CreateModulesFromSource(t, src, ".tf") 71 adapted := Adapt(modules) 72 73 require.Len(t, adapted.DataFactories, 1) 74 dataFactory := adapted.DataFactories[0] 75 76 assert.Equal(t, 6, dataFactory.EnablePublicNetwork.GetMetadata().Range().GetStartLine()) 77 assert.Equal(t, 6, dataFactory.EnablePublicNetwork.GetMetadata().Range().GetEndLine()) 78 79 }