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

     1  package aws
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/aws/aws-sdk-go/service/ses"
     8  	"github.com/hashicorp/terraform/helper/acctest"
     9  	"github.com/hashicorp/terraform/helper/resource"
    10  	"github.com/hashicorp/terraform/terraform"
    11  )
    12  
    13  func TestAccAWSSESConfigurationSet_basic(t *testing.T) {
    14  	resource.Test(t, resource.TestCase{
    15  		PreCheck: func() {
    16  			testAccPreCheck(t)
    17  		},
    18  		Providers:    testAccProviders,
    19  		CheckDestroy: testAccCheckSESConfigurationSetDestroy,
    20  		Steps: []resource.TestStep{
    21  			resource.TestStep{
    22  				Config: testAccAWSSESConfigurationSetConfig,
    23  				Check: resource.ComposeTestCheckFunc(
    24  					testAccCheckAwsSESConfigurationSetExists("aws_ses_configuration_set.test"),
    25  				),
    26  			},
    27  		},
    28  	})
    29  }
    30  
    31  func testAccCheckSESConfigurationSetDestroy(s *terraform.State) error {
    32  	conn := testAccProvider.Meta().(*AWSClient).sesConn
    33  
    34  	for _, rs := range s.RootModule().Resources {
    35  		if rs.Type != "aws_ses_configuration_set" {
    36  			continue
    37  		}
    38  
    39  		response, err := conn.ListConfigurationSets(&ses.ListConfigurationSetsInput{})
    40  		if err != nil {
    41  			return err
    42  		}
    43  
    44  		found := false
    45  		for _, element := range response.ConfigurationSets {
    46  			if *element.Name == fmt.Sprintf("some-configuration-set-%d", escRandomInteger) {
    47  				found = true
    48  			}
    49  		}
    50  
    51  		if found {
    52  			return fmt.Errorf("The configuration set still exists")
    53  		}
    54  
    55  	}
    56  
    57  	return nil
    58  
    59  }
    60  
    61  func testAccCheckAwsSESConfigurationSetExists(n string) resource.TestCheckFunc {
    62  	return func(s *terraform.State) error {
    63  		rs, ok := s.RootModule().Resources[n]
    64  		if !ok {
    65  			return fmt.Errorf("SES configuration set not found: %s", n)
    66  		}
    67  
    68  		if rs.Primary.ID == "" {
    69  			return fmt.Errorf("SES configuration set ID not set")
    70  		}
    71  
    72  		conn := testAccProvider.Meta().(*AWSClient).sesConn
    73  
    74  		response, err := conn.ListConfigurationSets(&ses.ListConfigurationSetsInput{})
    75  		if err != nil {
    76  			return err
    77  		}
    78  
    79  		found := false
    80  		for _, element := range response.ConfigurationSets {
    81  			if *element.Name == fmt.Sprintf("some-configuration-set-%d", escRandomInteger) {
    82  				found = true
    83  			}
    84  		}
    85  
    86  		if !found {
    87  			return fmt.Errorf("The configuration set was not created")
    88  		}
    89  
    90  		return nil
    91  	}
    92  }
    93  
    94  var escRandomInteger = acctest.RandInt()
    95  var testAccAWSSESConfigurationSetConfig = fmt.Sprintf(`
    96  resource "aws_ses_configuration_set" "test" {
    97      name = "some-configuration-set-%d"
    98  }
    99  `, escRandomInteger)