github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/azurerm/resource_arm_sql_firewall_rule_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 TestAccAzureRMSqlFirewallRule_basic(t *testing.T) {
    14  	ri := acctest.RandInt()
    15  	preConfig := fmt.Sprintf(testAccAzureRMSqlFirewallRule_basic, ri, ri, ri)
    16  	postConfig := fmt.Sprintf(testAccAzureRMSqlFirewallRule_withUpdates, ri, ri, ri)
    17  
    18  	resource.Test(t, resource.TestCase{
    19  		PreCheck:     func() { testAccPreCheck(t) },
    20  		Providers:    testAccProviders,
    21  		CheckDestroy: testCheckAzureRMSqlFirewallRuleDestroy,
    22  		Steps: []resource.TestStep{
    23  			resource.TestStep{
    24  				Config: preConfig,
    25  				Check: resource.ComposeTestCheckFunc(
    26  					testCheckAzureRMSqlFirewallRuleExists("azurerm_sql_firewall_rule.test"),
    27  					resource.TestCheckResourceAttr("azurerm_sql_firewall_rule.test", "start_ip_address", "0.0.0.0"),
    28  					resource.TestCheckResourceAttr("azurerm_sql_firewall_rule.test", "end_ip_address", "255.255.255.255"),
    29  				),
    30  			},
    31  
    32  			resource.TestStep{
    33  				Config: postConfig,
    34  				Check: resource.ComposeTestCheckFunc(
    35  					testCheckAzureRMSqlFirewallRuleExists("azurerm_sql_firewall_rule.test"),
    36  					resource.TestCheckResourceAttr("azurerm_sql_firewall_rule.test", "start_ip_address", "10.0.17.62"),
    37  					resource.TestCheckResourceAttr("azurerm_sql_firewall_rule.test", "end_ip_address", "10.0.17.62"),
    38  				),
    39  			},
    40  		},
    41  	})
    42  }
    43  
    44  func testCheckAzureRMSqlFirewallRuleExists(name string) resource.TestCheckFunc {
    45  	return func(s *terraform.State) error {
    46  
    47  		rs, ok := s.RootModule().Resources[name]
    48  		if !ok {
    49  			return fmt.Errorf("Not found: %s", name)
    50  		}
    51  
    52  		conn := testAccProvider.Meta().(*ArmClient).rivieraClient
    53  
    54  		readRequest := conn.NewRequestForURI(rs.Primary.ID)
    55  		readRequest.Command = &sql.GetFirewallRule{}
    56  
    57  		readResponse, err := readRequest.Execute()
    58  		if err != nil {
    59  			return fmt.Errorf("Bad: GetFirewallRule: %s", err)
    60  		}
    61  		if !readResponse.IsSuccessful() {
    62  			return fmt.Errorf("Bad: GetFirewallRule: %s", readResponse.Error)
    63  		}
    64  
    65  		return nil
    66  	}
    67  }
    68  
    69  func testCheckAzureRMSqlFirewallRuleDestroy(s *terraform.State) error {
    70  	conn := testAccProvider.Meta().(*ArmClient).rivieraClient
    71  
    72  	for _, rs := range s.RootModule().Resources {
    73  		if rs.Type != "azurerm_sql_firewall_rule" {
    74  			continue
    75  		}
    76  
    77  		readRequest := conn.NewRequestForURI(rs.Primary.ID)
    78  		readRequest.Command = &sql.GetFirewallRule{}
    79  
    80  		readResponse, err := readRequest.Execute()
    81  		if err != nil {
    82  			return fmt.Errorf("Bad: GetFirewallRule: %s", err)
    83  		}
    84  
    85  		if readResponse.IsSuccessful() {
    86  			return fmt.Errorf("Bad: SQL Server Firewall Rule still exists: %s", readResponse.Error)
    87  		}
    88  	}
    89  
    90  	return nil
    91  }
    92  
    93  var testAccAzureRMSqlFirewallRule_basic = `
    94  resource "azurerm_resource_group" "test" {
    95      name = "acctestRG_%d"
    96      location = "West US"
    97  }
    98  resource "azurerm_sql_server" "test" {
    99      name = "acctestsqlserver%d"
   100      resource_group_name = "${azurerm_resource_group.test.name}"
   101      location = "West US"
   102      version = "12.0"
   103      administrator_login = "mradministrator"
   104      administrator_login_password = "thisIsDog11"
   105  }
   106  
   107  resource "azurerm_sql_firewall_rule" "test" {
   108      name = "acctestsqlserver%d"
   109      resource_group_name = "${azurerm_resource_group.test.name}"
   110      server_name = "${azurerm_sql_server.test.name}"
   111      start_ip_address = "0.0.0.0"
   112      end_ip_address = "255.255.255.255"
   113  }
   114  `
   115  
   116  var testAccAzureRMSqlFirewallRule_withUpdates = `
   117  resource "azurerm_resource_group" "test" {
   118      name = "acctestRG_%d"
   119      location = "West US"
   120  }
   121  resource "azurerm_sql_server" "test" {
   122      name = "acctestsqlserver%d"
   123      resource_group_name = "${azurerm_resource_group.test.name}"
   124      location = "West US"
   125      version = "12.0"
   126      administrator_login = "mradministrator"
   127      administrator_login_password = "thisIsDog11"
   128  }
   129  
   130  resource "azurerm_sql_firewall_rule" "test" {
   131      name = "acctestsqlserver%d"
   132      resource_group_name = "${azurerm_resource_group.test.name}"
   133      server_name = "${azurerm_sql_server.test.name}"
   134      start_ip_address = "10.0.17.62"
   135      end_ip_address = "10.0.17.62"
   136  }
   137  `