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))