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 `