github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/network/elastic_load_balancer_test.go (about) 1 package network 2 3 import ( 4 "testing" 5 6 "github.com/khulnasoft-lab/defsec/pkg/providers/nifcloud/network" 7 defsecTypes "github.com/khulnasoft-lab/defsec/pkg/types" 8 9 "github.com/khulnasoft-lab/defsec/internal/adapters/terraform/tftestutil" 10 11 "github.com/khulnasoft-lab/defsec/test/testutil" 12 ) 13 14 func Test_adaptElasticLoadBalancers(t *testing.T) { 15 tests := []struct { 16 name string 17 terraform string 18 expected []network.ElasticLoadBalancer 19 }{ 20 { 21 name: "configured", 22 terraform: ` 23 resource "nifcloud_elb" "example" { 24 protocol = "HTTP" 25 26 network_interface { 27 network_id = "net-COMMON_PRIVATE" 28 is_vip_network = false 29 } 30 } 31 32 resource "nifcloud_elb_listener" "example" { 33 elb_id = nifcloud_elb.example.id 34 protocol = "HTTPS" 35 } 36 `, 37 expected: []network.ElasticLoadBalancer{{ 38 Metadata: defsecTypes.NewTestMetadata(), 39 NetworkInterfaces: []network.NetworkInterface{ 40 { 41 Metadata: defsecTypes.NewTestMetadata(), 42 NetworkID: defsecTypes.String("net-COMMON_PRIVATE", defsecTypes.NewTestMetadata()), 43 IsVipNetwork: defsecTypes.Bool(false, defsecTypes.NewTestMetadata()), 44 }, 45 }, 46 Listeners: []network.ElasticLoadBalancerListener{ 47 { 48 Metadata: defsecTypes.NewTestMetadata(), 49 Protocol: defsecTypes.String("HTTP", defsecTypes.NewTestMetadata()), 50 }, 51 { 52 Metadata: defsecTypes.NewTestMetadata(), 53 Protocol: defsecTypes.String("HTTPS", defsecTypes.NewTestMetadata()), 54 }, 55 }, 56 }}, 57 }, 58 { 59 name: "defaults", 60 terraform: ` 61 resource "nifcloud_elb" "example" { 62 network_interface { 63 } 64 } 65 `, 66 67 expected: []network.ElasticLoadBalancer{{ 68 Metadata: defsecTypes.NewTestMetadata(), 69 NetworkInterfaces: []network.NetworkInterface{ 70 { 71 Metadata: defsecTypes.NewTestMetadata(), 72 NetworkID: defsecTypes.String("", defsecTypes.NewTestMetadata()), 73 IsVipNetwork: defsecTypes.Bool(true, defsecTypes.NewTestMetadata()), 74 }, 75 }, 76 Listeners: []network.ElasticLoadBalancerListener{{ 77 Metadata: defsecTypes.NewTestMetadata(), 78 }}, 79 }}, 80 }, 81 } 82 83 for _, test := range tests { 84 t.Run(test.name, func(t *testing.T) { 85 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 86 adapted := adaptElasticLoadBalancers(modules) 87 testutil.AssertDefsecEqual(t, test.expected, adapted) 88 }) 89 } 90 }