github.com/bradfeehan/terraform@v0.7.0-rc3.0.20170529055808-34b45c5ad841/builtin/providers/azurerm/resource_arm_express_route_circuit_test.go (about) 1 package azurerm 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 8 "github.com/Azure/azure-sdk-for-go/arm/network" 9 "github.com/hashicorp/terraform/helper/acctest" 10 "github.com/hashicorp/terraform/helper/resource" 11 "github.com/hashicorp/terraform/terraform" 12 ) 13 14 func TestAccAzureRMExpressRouteCircuit_basic(t *testing.T) { 15 var erc network.ExpressRouteCircuit 16 ri := acctest.RandInt() 17 18 resource.Test(t, resource.TestCase{ 19 PreCheck: func() { testAccPreCheck(t) }, 20 Providers: testAccProviders, 21 CheckDestroy: testCheckAzureRMExpressRouteCircuitDestroy, 22 Steps: []resource.TestStep{ 23 { 24 Config: testAccAzureRMExpressRouteCircuit_basic(ri), 25 Check: resource.ComposeTestCheckFunc( 26 testCheckAzureRMExpressRouteCircuitExists("azurerm_express_route_circuit.test", &erc), 27 ), 28 }, 29 }, 30 }) 31 } 32 33 func testCheckAzureRMExpressRouteCircuitExists(name string, erc *network.ExpressRouteCircuit) resource.TestCheckFunc { 34 return func(s *terraform.State) error { 35 rs, ok := s.RootModule().Resources[name] 36 if !ok { 37 return fmt.Errorf("Not found: %s", name) 38 } 39 40 expressRouteCircuitName := rs.Primary.Attributes["name"] 41 resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] 42 if !hasResourceGroup { 43 return fmt.Errorf("Bad: no resource group found in state for Express Route Circuit: %s", expressRouteCircuitName) 44 } 45 46 conn := testAccProvider.Meta().(*ArmClient).expressRouteCircuitClient 47 48 resp, err := conn.Get(resourceGroup, expressRouteCircuitName) 49 if err != nil { 50 if resp.StatusCode == http.StatusNotFound { 51 return fmt.Errorf("Bad: Express Route Circuit %q (resource group: %q) does not exist", expressRouteCircuitName, resourceGroup) 52 } 53 54 return fmt.Errorf("Bad: Get on expressRouteCircuitClient: %s", err) 55 } 56 57 *erc = resp 58 59 return nil 60 } 61 } 62 63 func testCheckAzureRMExpressRouteCircuitDestroy(s *terraform.State) error { 64 conn := testAccProvider.Meta().(*ArmClient).expressRouteCircuitClient 65 66 for _, rs := range s.RootModule().Resources { 67 if rs.Type != "azurerm_express_route_circuit" { 68 continue 69 } 70 71 name := rs.Primary.Attributes["name"] 72 resourceGroup := rs.Primary.Attributes["resource_group_name"] 73 74 resp, err := conn.Get(resourceGroup, name) 75 76 if err != nil { 77 return nil 78 } 79 80 if resp.StatusCode != http.StatusNotFound { 81 return fmt.Errorf("Express Route Circuit still exists:\n%#v", resp.ExpressRouteCircuitPropertiesFormat) 82 } 83 } 84 85 return nil 86 } 87 88 func testAccAzureRMExpressRouteCircuit_basic(rInt int) string { 89 return fmt.Sprintf(` 90 resource "azurerm_resource_group" "test" { 91 name = "acctestrg-%d" 92 location = "West US" 93 } 94 95 resource "azurerm_express_route_circuit" "test" { 96 name = "acctest-erc-%[1]d" 97 location = "West US" 98 resource_group_name = "${azurerm_resource_group.test.name}" 99 service_provider_name = "Equinix" 100 peering_location = "Silicon Valley" 101 bandwidth_in_mbps = 50 102 sku { 103 tier = "Standard" 104 family = "MeteredData" 105 } 106 allow_classic_operations = false 107 108 tags { 109 Environment = "production" 110 Purpose = "AcceptanceTests" 111 } 112 }`, rInt) 113 }