github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/computing/instance_test.go (about)

     1  package computing
     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/computing"
     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_adaptInstances(t *testing.T) {
    16  	tests := []struct {
    17  		name      string
    18  		terraform string
    19  		expected  []computing.Instance
    20  	}{
    21  		{
    22  			name: "configured",
    23  			terraform: `
    24  			resource "nifcloud_instance" "my_example" {
    25  				security_group  = "example-security-group"
    26  				network_interface  {
    27  					network_id    = "net-COMMON_PRIVATE"
    28  				}
    29  			}
    30  `,
    31  			expected: []computing.Instance{{
    32  				Metadata:      defsecTypes.NewTestMetadata(),
    33  				SecurityGroup: defsecTypes.String("example-security-group", defsecTypes.NewTestMetadata()),
    34  				NetworkInterfaces: []computing.NetworkInterface{
    35  					{
    36  						Metadata:  defsecTypes.NewTestMetadata(),
    37  						NetworkID: defsecTypes.String("net-COMMON_PRIVATE", defsecTypes.NewTestMetadata()),
    38  					},
    39  				},
    40  			}},
    41  		},
    42  		{
    43  			name: "defaults",
    44  			terraform: `
    45  			resource "nifcloud_instance" "my_example" {
    46  				network_interface  {
    47  				}
    48  			}
    49  `,
    50  
    51  			expected: []computing.Instance{{
    52  				Metadata:      defsecTypes.NewTestMetadata(),
    53  				SecurityGroup: defsecTypes.String("", defsecTypes.NewTestMetadata()),
    54  				NetworkInterfaces: []computing.NetworkInterface{
    55  					{
    56  						Metadata:  defsecTypes.NewTestMetadata(),
    57  						NetworkID: defsecTypes.String("", defsecTypes.NewTestMetadata()),
    58  					},
    59  				},
    60  			}},
    61  		},
    62  	}
    63  
    64  	for _, test := range tests {
    65  		t.Run(test.name, func(t *testing.T) {
    66  			modules := tftestutil.CreateModulesFromSource(t, test.terraform, ".tf")
    67  			adapted := adaptInstances(modules)
    68  			testutil.AssertDefsecEqual(t, test.expected, adapted)
    69  		})
    70  	}
    71  }