github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/azurerm/resource_arm_sql_server_test.go (about)

     1  package azurerm
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/terraform/helper/acctest"
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  	"github.com/hashicorp/terraform/terraform"
    10  	"github.com/jen20/riviera/sql"
    11  )
    12  
    13  func TestAccAzureRMSqlServer_basic(t *testing.T) {
    14  	ri := acctest.RandInt()
    15  	config := fmt.Sprintf(testAccAzureRMSqlServer_basic, ri, ri)
    16  
    17  	resource.Test(t, resource.TestCase{
    18  		PreCheck:     func() { testAccPreCheck(t) },
    19  		Providers:    testAccProviders,
    20  		CheckDestroy: testCheckAzureRMSqlServerDestroy,
    21  		Steps: []resource.TestStep{
    22  			resource.TestStep{
    23  				Config: config,
    24  				Check: resource.ComposeTestCheckFunc(
    25  					testCheckAzureRMSqlServerExists("azurerm_sql_server.test"),
    26  				),
    27  			},
    28  		},
    29  	})
    30  }
    31  
    32  func TestAccAzureRMSqlServer_withTags(t *testing.T) {
    33  	ri := acctest.RandInt()
    34  	preConfig := fmt.Sprintf(testAccAzureRMSqlServer_withTags, ri, ri)
    35  	postConfig := fmt.Sprintf(testAccAzureRMSqlServer_withTagsUpdated, ri, ri)
    36  
    37  	resource.Test(t, resource.TestCase{
    38  		PreCheck:     func() { testAccPreCheck(t) },
    39  		Providers:    testAccProviders,
    40  		CheckDestroy: testCheckAzureRMSqlServerDestroy,
    41  		Steps: []resource.TestStep{
    42  			resource.TestStep{
    43  				Config: preConfig,
    44  				Check: resource.ComposeTestCheckFunc(
    45  					testCheckAzureRMSqlServerExists("azurerm_sql_server.test"),
    46  					resource.TestCheckResourceAttr(
    47  						"azurerm_sql_server.test", "tags.%", "2"),
    48  				),
    49  			},
    50  
    51  			resource.TestStep{
    52  				Config: postConfig,
    53  				Check: resource.ComposeTestCheckFunc(
    54  					testCheckAzureRMSqlServerExists("azurerm_sql_server.test"),
    55  					resource.TestCheckResourceAttr(
    56  						"azurerm_sql_server.test", "tags.%", "1"),
    57  				),
    58  			},
    59  		},
    60  	})
    61  }
    62  
    63  func testCheckAzureRMSqlServerExists(name string) resource.TestCheckFunc {
    64  	return func(s *terraform.State) error {
    65  
    66  		rs, ok := s.RootModule().Resources[name]
    67  		if !ok {
    68  			return fmt.Errorf("Not found: %s", name)
    69  		}
    70  
    71  		conn := testAccProvider.Meta().(*ArmClient).rivieraClient
    72  
    73  		readRequest := conn.NewRequestForURI(rs.Primary.ID)
    74  		readRequest.Command = &sql.GetServer{}
    75  
    76  		readResponse, err := readRequest.Execute()
    77  		if err != nil {
    78  			return fmt.Errorf("Bad: GetServer: %s", err)
    79  		}
    80  		if !readResponse.IsSuccessful() {
    81  			return fmt.Errorf("Bad: GetServer: %s", readResponse.Error)
    82  		}
    83  
    84  		return nil
    85  	}
    86  }
    87  
    88  func testCheckAzureRMSqlServerDestroy(s *terraform.State) error {
    89  	conn := testAccProvider.Meta().(*ArmClient).rivieraClient
    90  
    91  	for _, rs := range s.RootModule().Resources {
    92  		if rs.Type != "azurerm_sql_server" {
    93  			continue
    94  		}
    95  
    96  		readRequest := conn.NewRequestForURI(rs.Primary.ID)
    97  		readRequest.Command = &sql.GetServer{}
    98  
    99  		readResponse, err := readRequest.Execute()
   100  		if err != nil {
   101  			return fmt.Errorf("Bad: GetServer: %s", err)
   102  		}
   103  
   104  		if readResponse.IsSuccessful() {
   105  			return fmt.Errorf("Bad: SQL Server still exists: %s", readResponse.Error)
   106  		}
   107  	}
   108  
   109  	return nil
   110  }
   111  
   112  var testAccAzureRMSqlServer_basic = `
   113  resource "azurerm_resource_group" "test" {
   114      name = "acctestRG_%d"
   115      location = "West US"
   116  }
   117  resource "azurerm_sql_server" "test" {
   118      name = "acctestsqlserver%d"
   119      resource_group_name = "${azurerm_resource_group.test.name}"
   120      location = "West US"
   121      version = "12.0"
   122      administrator_login = "mradministrator"
   123      administrator_login_password = "thisIsDog11"
   124  }
   125  `
   126  
   127  var testAccAzureRMSqlServer_withTags = `
   128  resource "azurerm_resource_group" "test" {
   129      name = "acctestRG_%d"
   130      location = "West US"
   131  }
   132  resource "azurerm_sql_server" "test" {
   133      name = "acctestsqlserver%d"
   134      resource_group_name = "${azurerm_resource_group.test.name}"
   135      location = "West US"
   136      version = "12.0"
   137      administrator_login = "mradministrator"
   138      administrator_login_password = "thisIsDog11"
   139  
   140      tags {
   141      	environment = "staging"
   142      	database = "test"
   143      }
   144  }
   145  `
   146  
   147  var testAccAzureRMSqlServer_withTagsUpdated = `
   148  resource "azurerm_resource_group" "test" {
   149      name = "acctestRG_%d"
   150      location = "West US"
   151  }
   152  resource "azurerm_sql_server" "test" {
   153      name = "acctestsqlserver%d"
   154      resource_group_name = "${azurerm_resource_group.test.name}"
   155      location = "West US"
   156      version = "12.0"
   157      administrator_login = "mradministrator"
   158      administrator_login_password = "thisIsDog11"
   159  
   160      tags {
   161      	environment = "production"
   162      }
   163  }
   164  `