github.com/nathanielks/terraform@v0.6.1-0.20170509030759-13e1a62319dc/builtin/providers/azurerm/resource_arm_sql_elasticpool_test.go (about) 1 package azurerm 2 3 import ( 4 "fmt" 5 "github.com/hashicorp/terraform/helper/acctest" 6 "github.com/hashicorp/terraform/helper/resource" 7 "github.com/hashicorp/terraform/terraform" 8 "net/http" 9 "testing" 10 ) 11 12 func TestAccAzureRMSqlElasticPool_basic(t *testing.T) { 13 ri := acctest.RandInt() 14 config := fmt.Sprintf(testAccAzureRMSqlElasticPool_basic, ri) 15 16 resource.Test(t, resource.TestCase{ 17 PreCheck: func() { testAccPreCheck(t) }, 18 Providers: testAccProviders, 19 CheckDestroy: testCheckAzureRMSqlElasticPoolDestroy, 20 Steps: []resource.TestStep{ 21 { 22 Config: config, 23 Check: resource.ComposeTestCheckFunc( 24 testCheckAzureRMSqlElasticPoolExists("azurerm_sql_elasticpool.test"), 25 ), 26 }, 27 }, 28 }) 29 } 30 31 func TestAccAzureRMSqlElasticPool_resizeDtu(t *testing.T) { 32 ri := acctest.RandInt() 33 preConfig := fmt.Sprintf(testAccAzureRMSqlElasticPool_basic, ri) 34 postConfig := fmt.Sprintf(testAccAzureRMSqlElasticPool_resizedDtu, ri) 35 36 resource.Test(t, resource.TestCase{ 37 PreCheck: func() { testAccPreCheck(t) }, 38 Providers: testAccProviders, 39 CheckDestroy: testCheckAzureRMSqlElasticPoolDestroy, 40 Steps: []resource.TestStep{ 41 { 42 Config: preConfig, 43 Check: resource.ComposeTestCheckFunc( 44 testCheckAzureRMSqlElasticPoolExists("azurerm_sql_elasticpool.test"), 45 resource.TestCheckResourceAttr( 46 "azurerm_sql_elasticpool.test", "dtu", "50"), 47 resource.TestCheckResourceAttr( 48 "azurerm_sql_elasticpool.test", "pool_size", "5000"), 49 ), 50 }, 51 { 52 Config: postConfig, 53 Check: resource.ComposeTestCheckFunc( 54 testCheckAzureRMSqlElasticPoolExists("azurerm_sql_elasticpool.test"), 55 resource.TestCheckResourceAttr( 56 "azurerm_sql_elasticpool.test", "dtu", "100"), 57 resource.TestCheckResourceAttr( 58 "azurerm_sql_elasticpool.test", "pool_size", "10000"), 59 ), 60 }, 61 }, 62 }) 63 } 64 65 func testCheckAzureRMSqlElasticPoolExists(name string) resource.TestCheckFunc { 66 return func(s *terraform.State) error { 67 ressource, ok := s.RootModule().Resources[name] 68 if !ok { 69 return fmt.Errorf("Not found: %s", name) 70 } 71 72 resourceGroup, serverName, name, err := parseArmSqlElasticPoolId(ressource.Primary.ID) 73 if err != nil { 74 return err 75 } 76 77 conn := testAccProvider.Meta().(*ArmClient).sqlElasticPoolsClient 78 79 resp, err := conn.Get(resourceGroup, serverName, name) 80 if err != nil { 81 return fmt.Errorf("Bad: Get on sqlElasticPoolsClient: %s", err) 82 } 83 84 if resp.StatusCode == http.StatusNotFound { 85 return fmt.Errorf("Bad: SQL Elastic Pool %q on server: %q (resource group: %q) does not exist", name, serverName, resourceGroup) 86 } 87 88 return nil 89 } 90 } 91 92 func testCheckAzureRMSqlElasticPoolDestroy(s *terraform.State) error { 93 conn := testAccProvider.Meta().(*ArmClient).sqlElasticPoolsClient 94 95 for _, rs := range s.RootModule().Resources { 96 if rs.Type != "azurerm_sql_elasticpool" { 97 continue 98 } 99 100 name := rs.Primary.Attributes["name"] 101 serverName := rs.Primary.Attributes["server_name"] 102 resourceGroup := rs.Primary.Attributes["resource_group_name"] 103 104 resp, err := conn.Get(resourceGroup, serverName, name) 105 106 if err != nil { 107 return nil 108 } 109 110 if resp.StatusCode != http.StatusNotFound { 111 return fmt.Errorf("SQL Elastic Pool still exists:\n%#v", resp.ElasticPoolProperties) 112 } 113 } 114 115 return nil 116 } 117 118 var testAccAzureRMSqlElasticPool_basic = ` 119 resource "azurerm_resource_group" "test" { 120 name = "acctest-%[1]d" 121 location = "West US" 122 } 123 124 resource "azurerm_sql_server" "test" { 125 name = "acctest%[1]d" 126 resource_group_name = "${azurerm_resource_group.test.name}" 127 location = "West US" 128 version = "12.0" 129 administrator_login = "4dm1n157r470r" 130 administrator_login_password = "4-v3ry-53cr37-p455w0rd" 131 } 132 133 resource "azurerm_sql_elasticpool" "test" { 134 name = "acctest-pool-%[1]d" 135 resource_group_name = "${azurerm_resource_group.test.name}" 136 location = "West US" 137 server_name = "${azurerm_sql_server.test.name}" 138 edition = "Basic" 139 dtu = 50 140 pool_size = 5000 141 } 142 ` 143 144 var testAccAzureRMSqlElasticPool_resizedDtu = ` 145 resource "azurerm_resource_group" "test" { 146 name = "acctest-%[1]d" 147 location = "West US" 148 } 149 150 resource "azurerm_sql_server" "test" { 151 name = "acctest%[1]d" 152 resource_group_name = "${azurerm_resource_group.test.name}" 153 location = "West US" 154 version = "12.0" 155 administrator_login = "4dm1n157r470r" 156 administrator_login_password = "4-v3ry-53cr37-p455w0rd" 157 } 158 159 resource "azurerm_sql_elasticpool" "test" { 160 name = "acctest-pool-%[1]d" 161 resource_group_name = "${azurerm_resource_group.test.name}" 162 location = "West US" 163 server_name = "${azurerm_sql_server.test.name}" 164 edition = "Basic" 165 dtu = 100 166 pool_size = 10000 167 } 168 `