github.com/anuaimi/terraform@v0.6.4-0.20150904235404-2bf9aec61da8/builtin/providers/google/resource_dns_record_set_test.go (about) 1 package google 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/hashicorp/terraform/helper/resource" 8 "github.com/hashicorp/terraform/terraform" 9 ) 10 11 func TestAccDnsRecordSet_basic(t *testing.T) { 12 resource.Test(t, resource.TestCase{ 13 PreCheck: func() { testAccPreCheck(t) }, 14 Providers: testAccProviders, 15 CheckDestroy: testAccCheckDnsRecordSetDestroy, 16 Steps: []resource.TestStep{ 17 resource.TestStep{ 18 Config: testAccDnsRecordSet_basic, 19 Check: resource.ComposeTestCheckFunc( 20 testAccCheckDnsRecordSetExists( 21 "google_dns_record_set.foobar"), 22 ), 23 }, 24 }, 25 }) 26 } 27 28 func testAccCheckDnsRecordSetDestroy(s *terraform.State) error { 29 config := testAccProvider.Meta().(*Config) 30 31 for _, rs := range s.RootModule().Resources { 32 // Deletion of the managed_zone implies everything is gone 33 if rs.Type == "google_dns_managed_zone" { 34 _, err := config.clientDns.ManagedZones.Get( 35 config.Project, rs.Primary.ID).Do() 36 if err == nil { 37 return fmt.Errorf("DNS ManagedZone still exists") 38 } 39 } 40 } 41 42 return nil 43 } 44 45 func testAccCheckDnsRecordSetExists(name string) resource.TestCheckFunc { 46 return func(s *terraform.State) error { 47 rs, ok := s.RootModule().Resources[name] 48 if !ok { 49 return fmt.Errorf("Not found: %s", name) 50 } 51 52 dnsName := rs.Primary.Attributes["name"] 53 dnsType := rs.Primary.Attributes["type"] 54 55 if rs.Primary.ID == "" { 56 return fmt.Errorf("No ID is set") 57 } 58 59 config := testAccProvider.Meta().(*Config) 60 61 resp, err := config.clientDns.ResourceRecordSets.List( 62 config.Project, "terraform-test-zone").Name(dnsName).Type(dnsType).Do() 63 if err != nil { 64 return fmt.Errorf("Error confirming DNS RecordSet existence: %#v", err) 65 } 66 if len(resp.Rrsets) == 0 { 67 // The resource doesn't exist anymore 68 return fmt.Errorf("DNS RecordSet not found") 69 } 70 71 if len(resp.Rrsets) > 1 { 72 return fmt.Errorf("Only expected 1 record set, got %d", len(resp.Rrsets)) 73 } 74 75 return nil 76 } 77 } 78 79 const testAccDnsRecordSet_basic = ` 80 resource "google_dns_managed_zone" "parent-zone" { 81 name = "terraform-test-zone" 82 dns_name = "terraform.test." 83 description = "Test Description" 84 } 85 resource "google_dns_record_set" "foobar" { 86 managed_zone = "${google_dns_managed_zone.parent-zone.name}" 87 name = "test-record.terraform.test." 88 type = "A" 89 rrdatas = ["127.0.0.1", "127.0.0.10"] 90 ttl = 600 91 } 92 `