github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/google/resource_compute_target_pool_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  )
    11  
    12  func TestAccComputeTargetPool_basic(t *testing.T) {
    13  
    14  	resource.Test(t, resource.TestCase{
    15  		PreCheck:     func() { testAccPreCheck(t) },
    16  		Providers:    testAccProviders,
    17  		CheckDestroy: testAccCheckComputeTargetPoolDestroy,
    18  		Steps: []resource.TestStep{
    19  			resource.TestStep{
    20  				Config: testAccComputeTargetPool_basic,
    21  				Check: resource.ComposeTestCheckFunc(
    22  					testAccCheckComputeTargetPoolExists(
    23  						"google_compute_target_pool.foobar"),
    24  				),
    25  			},
    26  		},
    27  	})
    28  }
    29  
    30  func testAccCheckComputeTargetPoolDestroy(s *terraform.State) error {
    31  	config := testAccProvider.Meta().(*Config)
    32  
    33  	for _, rs := range s.RootModule().Resources {
    34  		if rs.Type != "google_compute_target_pool" {
    35  			continue
    36  		}
    37  
    38  		_, err := config.clientCompute.TargetPools.Get(
    39  			config.Project, config.Region, rs.Primary.ID).Do()
    40  		if err == nil {
    41  			return fmt.Errorf("TargetPool still exists")
    42  		}
    43  	}
    44  
    45  	return nil
    46  }
    47  
    48  func testAccCheckComputeTargetPoolExists(n string) resource.TestCheckFunc {
    49  	return func(s *terraform.State) error {
    50  		rs, ok := s.RootModule().Resources[n]
    51  		if !ok {
    52  			return fmt.Errorf("Not found: %s", n)
    53  		}
    54  
    55  		if rs.Primary.ID == "" {
    56  			return fmt.Errorf("No ID is set")
    57  		}
    58  
    59  		config := testAccProvider.Meta().(*Config)
    60  
    61  		found, err := config.clientCompute.TargetPools.Get(
    62  			config.Project, config.Region, rs.Primary.ID).Do()
    63  		if err != nil {
    64  			return err
    65  		}
    66  
    67  		if found.Name != rs.Primary.ID {
    68  			return fmt.Errorf("TargetPool not found")
    69  		}
    70  
    71  		return nil
    72  	}
    73  }
    74  
    75  var testAccComputeTargetPool_basic = fmt.Sprintf(`
    76  resource "google_compute_http_health_check" "foobar" {
    77  	name = "healthcheck-test-%s"
    78  	host = "example.com"
    79  }
    80  
    81  resource "google_compute_target_pool" "foobar" {
    82  	description = "Resource created for Terraform acceptance testing"
    83  	instances = ["us-central1-a/foo", "us-central1-b/bar"]
    84  	name = "tpool-test-%s"
    85  	session_affinity = "CLIENT_IP_PROTO"
    86  	health_checks = [
    87  		"${google_compute_http_health_check.foobar.name}"
    88  	]
    89  }`, acctest.RandString(10), acctest.RandString(10))