terraform-provider-google/google/resource_compute_network_peering_test.go
The Magician c605b0bc4b [Terraform]: Apply gofmt -s to all files managed by MM (#2676)
<!-- This change is generated by MagicModules. -->
/cc @rileykarson
2018-12-20 17:22:22 -08:00

126 lines
3.3 KiB
Go

package google
import (
"fmt"
"github.com/hashicorp/terraform/helper/acctest"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
"google.golang.org/api/compute/v1"
"strings"
"testing"
)
func TestAccComputeNetworkPeering_basic(t *testing.T) {
t.Parallel()
var peering compute.NetworkPeering
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccComputeNetworkPeeringDestroy,
Steps: []resource.TestStep{
{
Config: testAccComputeNetworkPeering_basic(),
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeNetworkPeeringExist("google_compute_network_peering.foo", &peering),
testAccCheckComputeNetworkPeeringAutoCreateRoutes(true, &peering),
testAccCheckComputeNetworkPeeringExist("google_compute_network_peering.bar", &peering),
testAccCheckComputeNetworkPeeringAutoCreateRoutes(true, &peering),
),
},
},
})
}
func testAccComputeNetworkPeeringDestroy(s *terraform.State) error {
config := testAccProvider.Meta().(*Config)
for _, rs := range s.RootModule().Resources {
if rs.Type != "google_compute_network_peering" {
continue
}
_, err := config.clientCompute.Networks.Get(
config.Project, rs.Primary.ID).Do()
if err == nil {
return fmt.Errorf("Network peering still exists")
}
}
return nil
}
func testAccCheckComputeNetworkPeeringExist(n string, peering *compute.NetworkPeering) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
return fmt.Errorf("Not found: %s", n)
}
if rs.Primary.ID == "" {
return fmt.Errorf("No ID is set")
}
config := testAccProvider.Meta().(*Config)
parts := strings.Split(rs.Primary.ID, "/")
if len(parts) != 2 {
return fmt.Errorf("Invalid network peering identifier: %s", rs.Primary.ID)
}
networkName, peeringName := parts[0], parts[1]
network, err := config.clientCompute.Networks.Get(config.Project, networkName).Do()
if err != nil {
return err
}
found := findPeeringFromNetwork(network, peeringName)
if found == nil {
return fmt.Errorf("Network peering '%s' not found in network '%s'", peeringName, network.Name)
}
*peering = *found
return nil
}
}
func testAccCheckComputeNetworkPeeringAutoCreateRoutes(v bool, peering *compute.NetworkPeering) resource.TestCheckFunc {
return func(s *terraform.State) error {
if peering.AutoCreateRoutes != v {
return fmt.Errorf("should AutoCreateRoutes set to %t", v)
}
return nil
}
}
func testAccComputeNetworkPeering_basic() string {
return fmt.Sprintf(`
resource "google_compute_network" "network1" {
name = "network-test-1-%s"
auto_create_subnetworks = false
}
resource "google_compute_network" "network2" {
name = "network-test-2-%s"
auto_create_subnetworks = false
}
resource "google_compute_network_peering" "foo" {
name = "peering-test-1-%s"
network = "${google_compute_network.network1.self_link}"
peer_network = "${google_compute_network.network2.self_link}"
}
resource "google_compute_network_peering" "bar" {
name = "peering-test-2-%s"
auto_create_routes = true
network = "${google_compute_network.network2.self_link}"
peer_network = "${google_compute_network.network1.self_link}"
}
`, acctest.RandString(10), acctest.RandString(10), acctest.RandString(10), acctest.RandString(10))
}