github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/google/resource_compute_route_test.go (about)

     1  package google
     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  	"google.golang.org/api/compute/v1"
    11  )
    12  
    13  func TestAccComputeRoute_basic(t *testing.T) {
    14  	var route compute.Route
    15  
    16  	resource.Test(t, resource.TestCase{
    17  		PreCheck:     func() { testAccPreCheck(t) },
    18  		Providers:    testAccProviders,
    19  		CheckDestroy: testAccCheckComputeRouteDestroy,
    20  		Steps: []resource.TestStep{
    21  			resource.TestStep{
    22  				Config: testAccComputeRoute_basic,
    23  				Check: resource.ComposeTestCheckFunc(
    24  					testAccCheckComputeRouteExists(
    25  						"google_compute_route.foobar", &route),
    26  				),
    27  			},
    28  		},
    29  	})
    30  }
    31  
    32  func TestAccComputeRoute_defaultInternetGateway(t *testing.T) {
    33  	var route compute.Route
    34  
    35  	resource.Test(t, resource.TestCase{
    36  		PreCheck:     func() { testAccPreCheck(t) },
    37  		Providers:    testAccProviders,
    38  		CheckDestroy: testAccCheckComputeRouteDestroy,
    39  		Steps: []resource.TestStep{
    40  			resource.TestStep{
    41  				Config: testAccComputeRoute_defaultInternetGateway,
    42  				Check: resource.ComposeTestCheckFunc(
    43  					testAccCheckComputeRouteExists(
    44  						"google_compute_route.foobar", &route),
    45  				),
    46  			},
    47  		},
    48  	})
    49  }
    50  
    51  func testAccCheckComputeRouteDestroy(s *terraform.State) error {
    52  	config := testAccProvider.Meta().(*Config)
    53  
    54  	for _, rs := range s.RootModule().Resources {
    55  		if rs.Type != "google_compute_route" {
    56  			continue
    57  		}
    58  
    59  		_, err := config.clientCompute.Routes.Get(
    60  			config.Project, rs.Primary.ID).Do()
    61  		if err == nil {
    62  			return fmt.Errorf("Route still exists")
    63  		}
    64  	}
    65  
    66  	return nil
    67  }
    68  
    69  func testAccCheckComputeRouteExists(n string, route *compute.Route) resource.TestCheckFunc {
    70  	return func(s *terraform.State) error {
    71  		rs, ok := s.RootModule().Resources[n]
    72  		if !ok {
    73  			return fmt.Errorf("Not found: %s", n)
    74  		}
    75  
    76  		if rs.Primary.ID == "" {
    77  			return fmt.Errorf("No ID is set")
    78  		}
    79  
    80  		config := testAccProvider.Meta().(*Config)
    81  
    82  		found, err := config.clientCompute.Routes.Get(
    83  			config.Project, rs.Primary.ID).Do()
    84  		if err != nil {
    85  			return err
    86  		}
    87  
    88  		if found.Name != rs.Primary.ID {
    89  			return fmt.Errorf("Route not found")
    90  		}
    91  
    92  		*route = *found
    93  
    94  		return nil
    95  	}
    96  }
    97  
    98  var testAccComputeRoute_basic = fmt.Sprintf(`
    99  resource "google_compute_network" "foobar" {
   100  	name = "route-test-%s"
   101  	ipv4_range = "10.0.0.0/16"
   102  }
   103  
   104  resource "google_compute_route" "foobar" {
   105  	name = "route-test-%s"
   106  	dest_range = "15.0.0.0/24"
   107  	network = "${google_compute_network.foobar.name}"
   108  	next_hop_ip = "10.0.1.5"
   109  	priority = 100
   110  }`, acctest.RandString(10), acctest.RandString(10))
   111  
   112  var testAccComputeRoute_defaultInternetGateway = fmt.Sprintf(`
   113  resource "google_compute_network" "foobar" {
   114  	name = "route-test-%s"
   115  	ipv4_range = "10.0.0.0/16"
   116  }
   117  
   118  resource "google_compute_route" "foobar" {
   119  	name = "route-test-%s"
   120  	dest_range = "0.0.0.0/0"
   121  	network = "${google_compute_network.foobar.name}"
   122  	next_hop_gateway = "default-internet-gateway"
   123  	priority = 100
   124  }`, acctest.RandString(10), acctest.RandString(10))