github.com/shvar/terraform@v0.6.9-0.20151215234924-3365cd2231df/builtin/providers/azurerm/resource_arm_virtual_network_test.go (about)

     1  package azurerm
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/Azure/azure-sdk-for-go/core/http"
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  	"github.com/hashicorp/terraform/terraform"
    10  )
    11  
    12  func TestAccAzureRMVirtualNetwork_basic(t *testing.T) {
    13  	resource.Test(t, resource.TestCase{
    14  		PreCheck:     func() { testAccPreCheck(t) },
    15  		Providers:    testAccProviders,
    16  		CheckDestroy: testCheckAzureRMVirtualNetworkDestroy,
    17  		Steps: []resource.TestStep{
    18  			resource.TestStep{
    19  				Config: testAccAzureRMVirtualNetwork_basic,
    20  				Check: resource.ComposeTestCheckFunc(
    21  					testCheckAzureRMVirtualNetworkExists("azurerm_virtual_network.test"),
    22  				),
    23  			},
    24  		},
    25  	})
    26  }
    27  
    28  func testCheckAzureRMVirtualNetworkExists(name string) resource.TestCheckFunc {
    29  	return func(s *terraform.State) error {
    30  		// Ensure we have enough information in state to look up in API
    31  		rs, ok := s.RootModule().Resources[name]
    32  		if !ok {
    33  			return fmt.Errorf("Not found: %s", name)
    34  		}
    35  
    36  		virtualNetworkName := rs.Primary.Attributes["name"]
    37  		resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"]
    38  		if !hasResourceGroup {
    39  			return fmt.Errorf("Bad: no resource group found in state for virtual network: %s", virtualNetworkName)
    40  		}
    41  
    42  		// Ensure resource group/virtual network combination exists in API
    43  		conn := testAccProvider.Meta().(*ArmClient).vnetClient
    44  
    45  		resp, err := conn.Get(resourceGroup, virtualNetworkName)
    46  		if err != nil {
    47  			return fmt.Errorf("Bad: Get on vnetClient: %s", err)
    48  		}
    49  
    50  		if resp.StatusCode == http.StatusNotFound {
    51  			return fmt.Errorf("Bad: Virtual Network %q (resource group: %q) does not exist", name, resourceGroup)
    52  		}
    53  
    54  		return nil
    55  	}
    56  }
    57  
    58  func testCheckAzureRMVirtualNetworkDestroy(s *terraform.State) error {
    59  	conn := testAccProvider.Meta().(*ArmClient).vnetClient
    60  
    61  	for _, rs := range s.RootModule().Resources {
    62  		if rs.Type != "azurerm_virtual_network" {
    63  			continue
    64  		}
    65  
    66  		name := rs.Primary.Attributes["name"]
    67  		resourceGroup := rs.Primary.Attributes["resource_group_name"]
    68  
    69  		resp, err := conn.Get(resourceGroup, name)
    70  
    71  		if err != nil {
    72  			return nil
    73  		}
    74  
    75  		if resp.StatusCode != http.StatusNotFound {
    76  			return fmt.Errorf("Virtual Network sitll exists:\n%#v", resp.Properties)
    77  		}
    78  	}
    79  
    80  	return nil
    81  }
    82  
    83  var testAccAzureRMVirtualNetwork_basic = `
    84  resource "azurerm_resource_group" "test" {
    85      name = "acceptanceTestResourceGroup1"
    86      location = "West US"
    87  }
    88  
    89  resource "azurerm_virtual_network" "test" {
    90      name = "acceptanceTestVirtualNetwork1"
    91      address_space = ["10.0.0.0/16"]
    92      location = "West US"
    93      resource_group_name = "${azurerm_resource_group.test.name}"
    94  
    95      subnet {
    96          name = "subnet1"
    97          address_prefix = "10.0.1.0/24"
    98      }
    99  }
   100  `