terraform/builtin/providers/google/resource_compute_address_te...

82 lines
1.8 KiB
Go
Raw Normal View History

2014-08-25 20:48:20 +02:00
package google
import (
"fmt"
2014-08-25 20:48:20 +02:00
"testing"
"code.google.com/p/google-api-go-client/compute/v1"
2014-08-25 20:48:20 +02:00
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
2014-08-25 20:48:20 +02:00
)
func TestAccComputeAddress_basic(t *testing.T) {
var addr compute.Address
2014-08-25 20:48:20 +02:00
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckComputeAddressDestroy,
2014-08-25 20:48:20 +02:00
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccComputeAddress_basic,
2014-08-25 20:48:20 +02:00
Check: resource.ComposeTestCheckFunc(
testAccCheckComputeAddressExists(
"google_compute_address.foobar", &addr),
2014-08-25 20:48:20 +02:00
),
},
},
})
}
func testAccCheckComputeAddressDestroy(s *terraform.State) error {
config := testAccProvider.Meta().(*Config)
2014-08-25 20:48:20 +02:00
for _, rs := range s.RootModule().Resources {
if rs.Type != "google_compute_address" {
2014-08-25 20:48:20 +02:00
continue
}
_, err := config.clientCompute.Addresses.Get(
config.Project, config.Region, rs.Primary.ID).Do()
2014-08-25 20:48:20 +02:00
if err == nil {
return fmt.Errorf("Address still exists")
2014-08-25 20:48:20 +02:00
}
}
return nil
}
func testAccCheckComputeAddressExists(n string, addr *compute.Address) resource.TestCheckFunc {
2014-08-25 20:48:20 +02:00
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
2014-08-25 20:48:20 +02:00
if !ok {
return fmt.Errorf("Not found: %s", n)
}
if rs.Primary.ID == "" {
return fmt.Errorf("No ID is set")
2014-08-25 20:48:20 +02:00
}
config := testAccProvider.Meta().(*Config)
2014-08-25 20:48:20 +02:00
found, err := config.clientCompute.Addresses.Get(
config.Project, config.Region, rs.Primary.ID).Do()
2014-08-25 20:48:20 +02:00
if err != nil {
return err
}
if found.Name != rs.Primary.ID {
return fmt.Errorf("Addr not found")
2014-08-25 20:48:20 +02:00
}
*addr = *found
2014-08-25 20:48:20 +02:00
return nil
}
}
const testAccComputeAddress_basic = `
resource "google_compute_address" "foobar" {
name = "terraform-test"
2014-08-25 20:48:20 +02:00
}`