github.com/andresvia/terraform@v0.6.15-0.20160412045437-d51c75946785/builtin/providers/azurerm/resource_arm_storage_queue_test.go (about) 1 package azurerm 2 3 import ( 4 "fmt" 5 "testing" 6 7 "strings" 8 9 "github.com/hashicorp/terraform/helper/acctest" 10 "github.com/hashicorp/terraform/helper/resource" 11 "github.com/hashicorp/terraform/terraform" 12 ) 13 14 func TestResourceAzureRMStorageQueueName_Validation(t *testing.T) { 15 cases := []struct { 16 Value string 17 ErrCount int 18 }{ 19 { 20 Value: "testing_123", 21 ErrCount: 1, 22 }, 23 { 24 Value: "testing123-", 25 ErrCount: 1, 26 }, 27 { 28 Value: "-testing123", 29 ErrCount: 1, 30 }, 31 { 32 Value: "TestingSG", 33 ErrCount: 1, 34 }, 35 { 36 Value: acctest.RandString(256), 37 ErrCount: 1, 38 }, 39 { 40 Value: acctest.RandString(1), 41 ErrCount: 1, 42 }, 43 } 44 45 for _, tc := range cases { 46 _, errors := validateArmStorageQueueName(tc.Value, "azurerm_storage_queue") 47 48 if len(errors) != tc.ErrCount { 49 t.Fatalf("Expected the ARM Storage Queue Name to trigger a validation error") 50 } 51 } 52 } 53 54 func TestAccAzureRMStorageQueue_basic(t *testing.T) { 55 ri := acctest.RandInt() 56 rs := strings.ToLower(acctest.RandString(11)) 57 config := fmt.Sprintf(testAccAzureRMStorageQueue_basic, ri, rs, ri) 58 59 resource.Test(t, resource.TestCase{ 60 PreCheck: func() { testAccPreCheck(t) }, 61 Providers: testAccProviders, 62 CheckDestroy: testCheckAzureRMStorageQueueDestroy, 63 Steps: []resource.TestStep{ 64 resource.TestStep{ 65 Config: config, 66 Check: resource.ComposeTestCheckFunc( 67 testCheckAzureRMStorageQueueExists("azurerm_storage_queue.test"), 68 ), 69 }, 70 }, 71 }) 72 } 73 74 func testCheckAzureRMStorageQueueExists(name string) resource.TestCheckFunc { 75 return func(s *terraform.State) error { 76 77 rs, ok := s.RootModule().Resources[name] 78 if !ok { 79 return fmt.Errorf("Not found: %s", name) 80 } 81 82 name := rs.Primary.Attributes["name"] 83 storageAccountName := rs.Primary.Attributes["storage_account_name"] 84 resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] 85 if !hasResourceGroup { 86 return fmt.Errorf("Bad: no resource group found in state for storage queue: %s", name) 87 } 88 89 armClient := testAccProvider.Meta().(*ArmClient) 90 queueClient, err := armClient.getQueueServiceClientForStorageAccount(resourceGroup, storageAccountName) 91 if err != nil { 92 return err 93 } 94 95 exists, err := queueClient.QueueExists(name) 96 if err != nil { 97 return err 98 } 99 100 if !exists { 101 return fmt.Errorf("Bad: Storage Queue %q (storage account: %q) does not exist", name, storageAccountName) 102 } 103 104 return nil 105 } 106 } 107 108 func testCheckAzureRMStorageQueueDestroy(s *terraform.State) error { 109 for _, rs := range s.RootModule().Resources { 110 if rs.Type != "azurerm_storage_queue" { 111 continue 112 } 113 114 name := rs.Primary.Attributes["name"] 115 storageAccountName := rs.Primary.Attributes["storage_account_name"] 116 resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] 117 if !hasResourceGroup { 118 return fmt.Errorf("Bad: no resource group found in state for storage queue: %s", name) 119 } 120 121 armClient := testAccProvider.Meta().(*ArmClient) 122 queueClient, err := armClient.getQueueServiceClientForStorageAccount(resourceGroup, storageAccountName) 123 if err != nil { 124 return nil 125 } 126 127 exists, err := queueClient.QueueExists(name) 128 if err != nil { 129 return nil 130 } 131 132 if exists { 133 return fmt.Errorf("Bad: Storage Queue %q (storage account: %q) still exists", name, storageAccountName) 134 } 135 } 136 137 return nil 138 } 139 140 var testAccAzureRMStorageQueue_basic = ` 141 resource "azurerm_resource_group" "test" { 142 name = "acctestrg-%d" 143 location = "westus" 144 } 145 146 resource "azurerm_storage_account" "test" { 147 name = "acctestacc%s" 148 resource_group_name = "${azurerm_resource_group.test.name}" 149 location = "westus" 150 account_type = "Standard_LRS" 151 152 tags { 153 environment = "staging" 154 } 155 } 156 157 resource "azurerm_storage_queue" "test" { 158 name = "mysamplequeue-%d" 159 resource_group_name = "${azurerm_resource_group.test.name}" 160 storage_account_name = "${azurerm_storage_account.test.name}" 161 } 162 `