github.com/koding/terraform@v0.6.4-0.20170608090606-5d7e0339779d/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  }