github.phpd.cn/hashicorp/packer@v1.3.2/builder/googlecompute/networking_test.go (about)

     1  package googlecompute
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestGetNetworking(t *testing.T) {
     8  	cases := []struct {
     9  		c                  *InstanceConfig
    10  		expectedNetwork    string
    11  		expectedSubnetwork string
    12  		error              bool
    13  	}{
    14  		{
    15  			c: &InstanceConfig{
    16  				Network:          "default",
    17  				Subnetwork:       "",
    18  				NetworkProjectId: "project-id",
    19  				Region:           "region-id",
    20  			},
    21  			expectedNetwork:    "global/networks/default",
    22  			expectedSubnetwork: "",
    23  			error:              false,
    24  		},
    25  		{
    26  			c: &InstanceConfig{
    27  				Network:          "",
    28  				Subnetwork:       "",
    29  				NetworkProjectId: "project-id",
    30  				Region:           "region-id",
    31  			},
    32  			expectedNetwork:    "",
    33  			expectedSubnetwork: "",
    34  			error:              true,
    35  		},
    36  		{
    37  			c: &InstanceConfig{
    38  				Network:          "some/network/path",
    39  				Subnetwork:       "some/subnetwork/path",
    40  				NetworkProjectId: "project-id",
    41  				Region:           "region-id",
    42  			},
    43  			expectedNetwork:    "some/network/path",
    44  			expectedSubnetwork: "some/subnetwork/path",
    45  			error:              false,
    46  		},
    47  		{
    48  			c: &InstanceConfig{
    49  				Network:          "network-value",
    50  				Subnetwork:       "subnetwork-value",
    51  				NetworkProjectId: "project-id",
    52  				Region:           "region-id",
    53  			},
    54  			expectedNetwork:    "projects/project-id/global/networks/network-value",
    55  			expectedSubnetwork: "projects/project-id/regions/region-id/subnetworks/subnetwork-value",
    56  			error:              false,
    57  		},
    58  	}
    59  
    60  	for _, tc := range cases {
    61  		n, sn, err := getNetworking(tc.c)
    62  		if n != tc.expectedNetwork {
    63  			t.Errorf("Expected network %q but got network %q", tc.expectedNetwork, n)
    64  		}
    65  		if sn != tc.expectedSubnetwork {
    66  			t.Errorf("Expected subnetwork %q but got subnetwork %q", tc.expectedSubnetwork, sn)
    67  		}
    68  		if !tc.error && err != nil {
    69  			t.Errorf("Did not expect an error but got: %v", err)
    70  		}
    71  	}
    72  }