github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/network/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_adaptLoadBalancers(t *testing.T) { 15 tests := []struct { 16 name string 17 terraform string 18 expected []network.LoadBalancer 19 }{ 20 { 21 name: "configured", 22 terraform: ` 23 resource "nifcloud_load_balancer" "example" { 24 load_balancer_name = "example" 25 load_balancer_port = 80 26 ssl_policy_id = "example-ssl-policy-id" 27 } 28 29 resource "nifcloud_load_balancer_listener" "example" { 30 load_balancer_name = nifcloud_load_balancer.example.load_balancer_name 31 load_balancer_port = 443 32 ssl_policy_name = "example-ssl-policy-name" 33 } 34 35 `, 36 expected: []network.LoadBalancer{{ 37 Metadata: defsecTypes.NewTestMetadata(), 38 Listeners: []network.LoadBalancerListener{ 39 { 40 Metadata: defsecTypes.NewTestMetadata(), 41 TLSPolicy: defsecTypes.String("example-ssl-policy-id", defsecTypes.NewTestMetadata()), 42 Protocol: defsecTypes.String("HTTP", defsecTypes.NewTestMetadata()), 43 }, 44 { 45 Metadata: defsecTypes.NewTestMetadata(), 46 TLSPolicy: defsecTypes.String("example-ssl-policy-name", defsecTypes.NewTestMetadata()), 47 Protocol: defsecTypes.String("HTTPS", defsecTypes.NewTestMetadata()), 48 }, 49 }, 50 }}, 51 }, 52 { 53 name: "defaults", 54 terraform: ` 55 resource "nifcloud_load_balancer" "example" { 56 } 57 `, 58 59 expected: []network.LoadBalancer{{ 60 Metadata: defsecTypes.NewTestMetadata(), 61 Listeners: []network.LoadBalancerListener{{ 62 Metadata: defsecTypes.NewTestMetadata(), 63 }}, 64 }}, 65 }, 66 } 67 68 for _, test := range tests { 69 t.Run(test.name, func(t *testing.T) { 70 modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf") 71 adapted := adaptLoadBalancers(modules) 72 testutil.AssertDefsecEqual(t, test.expected, adapted) 73 }) 74 } 75 }