github.com/koding/terraform@v0.6.4-0.20170608090606-5d7e0339779d/builtin/providers/azure/resource_azure_storage_queue_test.go (about) 1 package azure 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 TestAccAzureStorageQueue(t *testing.T) { 12 name := "azure_storage_queue.foo" 13 14 resource.Test(t, resource.TestCase{ 15 PreCheck: func() { testAccPreCheck(t) }, 16 Providers: testAccProviders, 17 CheckDestroy: testAccCheckAzureStorageQueueDeleted, 18 Steps: []resource.TestStep{ 19 resource.TestStep{ 20 Config: testAccAzureStorageQueueConfig, 21 Check: resource.ComposeTestCheckFunc( 22 testAccCheckAzureStorageQueueExists(name), 23 resource.TestCheckResourceAttr(name, "name", "terraform-queue"), 24 resource.TestCheckResourceAttr(name, "storage_service_name", testAccStorageServiceName), 25 ), 26 }, 27 }, 28 }) 29 } 30 31 func testAccCheckAzureStorageQueueExists(name string) resource.TestCheckFunc { 32 return func(s *terraform.State) error { 33 resource, ok := s.RootModule().Resources[name] 34 if !ok { 35 return fmt.Errorf("Azure Storage Queue resource '%s' is missing.", name) 36 } 37 38 if resource.Primary.ID == "" { 39 return fmt.Errorf("Azure Storage Service Queue ID %s is missing.", name) 40 } 41 42 azureClient := testAccProvider.Meta().(*Client) 43 queueClient, err := azureClient.getStorageServiceQueueClient(testAccStorageServiceName) 44 if err != nil { 45 return err 46 } 47 48 queue := queueClient.GetQueueReference(resource.Primary.ID) 49 exists, err := queue.Exists() 50 if err != nil { 51 return fmt.Errorf("Error querying Azure for Storage Queue existence: %s", err) 52 } 53 if !exists { 54 return fmt.Errorf("Azure Storage Queue %s doesn't exist!", resource.Primary.ID) 55 } 56 57 return nil 58 } 59 } 60 61 func testAccCheckAzureStorageQueueDeleted(s *terraform.State) error { 62 for _, resource := range s.RootModule().Resources { 63 if resource.Type != "azure_storage_queue" { 64 continue 65 } 66 67 if resource.Primary.ID == "" { 68 return fmt.Errorf("Azure Storage Service Queue ID %s is missing.", resource.Primary.ID) 69 } 70 71 azureClient := testAccProvider.Meta().(*Client) 72 queueClient, err := azureClient.getStorageServiceQueueClient(testAccStorageServiceName) 73 if err != nil { 74 return err 75 } 76 77 queue := queueClient.GetQueueReference(resource.Primary.ID) 78 exists, err := queue.Exists() 79 if err != nil { 80 return fmt.Errorf("Error querying Azure for Storage Queue existence: %s", err) 81 } 82 if exists { 83 return fmt.Errorf("Azure Storage Queue %s still exists!", resource.Primary.ID) 84 } 85 } 86 87 return nil 88 } 89 90 var testAccAzureStorageQueueConfig = fmt.Sprintf(` 91 resource "azure_storage_queue" "foo" { 92 name = "terraform-queue" 93 storage_service_name = "%s" 94 } 95 `, testAccStorageServiceName)