github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/opc/resource_ip_address_reservation_test.go (about)

     1  package opc
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/go-oracle-terraform/compute"
     8  	"github.com/hashicorp/terraform/helper/acctest"
     9  	"github.com/hashicorp/terraform/helper/resource"
    10  	"github.com/hashicorp/terraform/terraform"
    11  )
    12  
    13  func TestAccOPCIPAddressReservation_Basic(t *testing.T) {
    14  	rInt := acctest.RandInt()
    15  	resName := "opc_compute_ip_address_reservation.test"
    16  
    17  	resource.Test(t, resource.TestCase{
    18  		PreCheck:     func() { testAccPreCheck(t) },
    19  		Providers:    testAccProviders,
    20  		CheckDestroy: testAccOPCCheckIPAddressReservationDestroy,
    21  		Steps: []resource.TestStep{
    22  			{
    23  				Config: testAccOPCIPAddressReservationConfig_Basic(rInt),
    24  				Check: resource.ComposeTestCheckFunc(
    25  					testAccOPCCheckIPAddressReservationExists,
    26  					resource.TestCheckResourceAttr(resName, "name", fmt.Sprintf("testing-ip-address-reservation-%d", rInt)),
    27  				),
    28  			},
    29  		},
    30  	})
    31  }
    32  
    33  func testAccOPCCheckIPAddressReservationExists(s *terraform.State) error {
    34  	client := testAccProvider.Meta().(*compute.Client).IPAddressReservations()
    35  
    36  	for _, rs := range s.RootModule().Resources {
    37  		if rs.Type != "opc_compute_ip_address_reservation" {
    38  			continue
    39  		}
    40  
    41  		input := compute.GetIPAddressReservationInput{
    42  			Name: rs.Primary.Attributes["name"],
    43  		}
    44  		if _, err := client.GetIPAddressReservation(&input); err != nil {
    45  			return fmt.Errorf("Error retrieving state of IP Address Reservation %s: %s", input.Name, err)
    46  		}
    47  	}
    48  
    49  	return nil
    50  }
    51  func testAccOPCCheckIPAddressReservationDestroy(s *terraform.State) error {
    52  	client := testAccProvider.Meta().(*compute.Client).IPAddressReservations()
    53  
    54  	for _, rs := range s.RootModule().Resources {
    55  		if rs.Type != "opc_compute_ip_address_reservation" {
    56  			continue
    57  		}
    58  
    59  		input := compute.GetIPAddressReservationInput{
    60  			Name: rs.Primary.Attributes["name"],
    61  		}
    62  		if info, err := client.GetIPAddressReservation(&input); err == nil {
    63  			return fmt.Errorf("IP Address Reservation %s still exists: %#v", input.Name, info)
    64  		}
    65  	}
    66  
    67  	return nil
    68  }
    69  
    70  func testAccOPCIPAddressReservationConfig_Basic(rInt int) string {
    71  	return fmt.Sprintf(`
    72  resource "opc_compute_ip_address_reservation" "test" {
    73    name = "testing-ip-address-reservation-%d"
    74    description = "testing-desc-%d"
    75    ip_address_pool = "public-ippool"
    76  }`, rInt, rInt)
    77  }