github.com/danp/terraform@v0.9.5-0.20170426144147-39d740081351/builtin/providers/opc/resource_ip_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 TestAccOPCIPReservation_Basic(t *testing.T) {
    14  
    15  	ri := acctest.RandInt()
    16  	config := fmt.Sprintf(testAccIPReservationBasic, ri)
    17  
    18  	resource.Test(t, resource.TestCase{
    19  		PreCheck:     func() { testAccPreCheck(t) },
    20  		Providers:    testAccProviders,
    21  		CheckDestroy: testAccCheckIPReservationDestroy,
    22  		Steps: []resource.TestStep{
    23  			{
    24  				Config: config,
    25  				Check:  testAccCheckIPReservationExists,
    26  			},
    27  		},
    28  	})
    29  }
    30  
    31  func testAccCheckIPReservationExists(s *terraform.State) error {
    32  	client := testAccProvider.Meta().(*compute.Client).IPReservations()
    33  
    34  	for _, rs := range s.RootModule().Resources {
    35  		if rs.Type != "opc_compute_ip_reservation" {
    36  			continue
    37  		}
    38  
    39  		input := compute.GetIPReservationInput{
    40  			Name: rs.Primary.Attributes["name"],
    41  		}
    42  		if _, err := client.GetIPReservation(&input); err != nil {
    43  			return fmt.Errorf("Error retrieving state of IP Reservation %s: %s", input.Name, err)
    44  		}
    45  	}
    46  
    47  	return nil
    48  }
    49  
    50  func testAccCheckIPReservationDestroy(s *terraform.State) error {
    51  	client := testAccProvider.Meta().(*compute.Client).IPReservations()
    52  
    53  	for _, rs := range s.RootModule().Resources {
    54  		if rs.Type != "opc_compute_ip_reservation" {
    55  			continue
    56  		}
    57  
    58  		input := compute.GetIPReservationInput{
    59  			Name: rs.Primary.Attributes["name"],
    60  		}
    61  		if info, err := client.GetIPReservation(&input); err == nil {
    62  			return fmt.Errorf("IP Reservation %s still exists: %#v", input.Name, info)
    63  		}
    64  	}
    65  
    66  	return nil
    67  }
    68  
    69  var testAccIPReservationBasic = `
    70  resource "opc_compute_ip_reservation" "test" {
    71    name        = "acc-test-ip-reservation-%d"
    72    parent_pool = "/oracle/public/ippool"
    73    permanent   = true
    74  }
    75  `