github.com/subuk/terraform@v0.6.14-0.20160317140351-de1567c2e732/builtin/providers/google/resource_compute_subnetwork_test.go (about)

     1  package google
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/terraform/helper/acctest"
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  	"github.com/hashicorp/terraform/terraform"
    10  	"google.golang.org/api/compute/v1"
    11  )
    12  
    13  func TestAccComputeSubnetwork_basic(t *testing.T) {
    14  	var subnetwork compute.Subnetwork
    15  
    16  	resource.Test(t, resource.TestCase{
    17  		PreCheck:     func() { testAccPreCheck(t) },
    18  		Providers:    testAccProviders,
    19  		CheckDestroy: testAccCheckComputeSubnetworkDestroy,
    20  		Steps: []resource.TestStep{
    21  			resource.TestStep{
    22  				Config: testAccComputeSubnetwork_basic,
    23  				Check: resource.ComposeTestCheckFunc(
    24  					testAccCheckComputeSubnetworkExists(
    25  						"google_compute_subnetwork.foobar", &subnetwork),
    26  				),
    27  			},
    28  		},
    29  	})
    30  }
    31  
    32  func testAccCheckComputeSubnetworkDestroy(s *terraform.State) error {
    33  	config := testAccProvider.Meta().(*Config)
    34  
    35  	for _, rs := range s.RootModule().Resources {
    36  		if rs.Type != "google_compute_subnetwork" {
    37  			continue
    38  		}
    39  
    40  		region, subnet_name := splitSubnetID(rs.Primary.ID)
    41  		_, err := config.clientCompute.Subnetworks.Get(
    42  			config.Project, region, subnet_name).Do()
    43  		if err == nil {
    44  			return fmt.Errorf("Network still exists")
    45  		}
    46  	}
    47  
    48  	return nil
    49  }
    50  
    51  func testAccCheckComputeSubnetworkExists(n string, subnetwork *compute.Subnetwork) resource.TestCheckFunc {
    52  	return func(s *terraform.State) error {
    53  		rs, ok := s.RootModule().Resources[n]
    54  		if !ok {
    55  			return fmt.Errorf("Not found: %s", n)
    56  		}
    57  
    58  		if rs.Primary.ID == "" {
    59  			return fmt.Errorf("No ID is set")
    60  		}
    61  
    62  		config := testAccProvider.Meta().(*Config)
    63  
    64  		region, subnet_name := splitSubnetID(rs.Primary.ID)
    65  		found, err := config.clientCompute.Subnetworks.Get(
    66  			config.Project, region, subnet_name).Do()
    67  		if err != nil {
    68  			return err
    69  		}
    70  
    71  		if found.Name != subnet_name {
    72  			return fmt.Errorf("Subnetwork not found")
    73  		}
    74  
    75  		*subnetwork = *found
    76  
    77  		return nil
    78  	}
    79  }
    80  
    81  var testAccComputeSubnetwork_basic = fmt.Sprintf(`
    82  resource "google_compute_network" "custom-test" {
    83  	name = "network-test-%s"
    84  	auto_create_subnetworks = false
    85  }
    86  
    87  resource "google_compute_subnetwork" "foobar" {
    88  	name = "subnetwork-test-%s"
    89  	ip_cidr_range = "10.0.0.0/16"
    90  	region = "us-central1"
    91  	network = "${google_compute_network.custom-test.self_link}"
    92  }`, acctest.RandString(10), acctest.RandString(10))