github.com/simonswine/terraform@v0.9.0-beta2/builtin/providers/aws/data_source_aws_iam_server_certificate_test.go (about)

     1  package aws
     2  
     3  import (
     4  	"fmt"
     5  	"regexp"
     6  	"sort"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/aws/aws-sdk-go/aws"
    11  	"github.com/aws/aws-sdk-go/service/iam"
    12  	"github.com/hashicorp/terraform/helper/resource"
    13  )
    14  
    15  func timePtr(t time.Time) *time.Time {
    16  	return &t
    17  }
    18  
    19  func TestResourceSortByExpirationDate(t *testing.T) {
    20  	certs := []*iam.ServerCertificateMetadata{
    21  		&iam.ServerCertificateMetadata{
    22  			ServerCertificateName: aws.String("oldest"),
    23  			Expiration:            timePtr(time.Now()),
    24  		},
    25  		&iam.ServerCertificateMetadata{
    26  			ServerCertificateName: aws.String("latest"),
    27  			Expiration:            timePtr(time.Now().Add(3 * time.Hour)),
    28  		},
    29  		&iam.ServerCertificateMetadata{
    30  			ServerCertificateName: aws.String("in between"),
    31  			Expiration:            timePtr(time.Now().Add(2 * time.Hour)),
    32  		},
    33  	}
    34  	sort.Sort(certificateByExpiration(certs))
    35  	if *certs[0].ServerCertificateName != "latest" {
    36  		t.Fatalf("Expected first item to be %q, but was %q", "latest", *certs[0].ServerCertificateName)
    37  	}
    38  }
    39  
    40  func TestAccAWSDataSourceIAMServerCertificate_basic(t *testing.T) {
    41  	resource.Test(t, resource.TestCase{
    42  		PreCheck:     func() { testAccPreCheck(t) },
    43  		Providers:    testAccProviders,
    44  		CheckDestroy: testAccCheckIAMServerCertificateDestroy,
    45  		Steps: []resource.TestStep{
    46  			{
    47  				Config: testAccAwsDataIAMServerCertConfig,
    48  				Check: resource.ComposeTestCheckFunc(
    49  					resource.TestCheckResourceAttrSet("aws_iam_server_certificate.test_cert", "arn"),
    50  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "arn"),
    51  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "id"),
    52  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "name"),
    53  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "path"),
    54  				),
    55  			},
    56  		},
    57  	})
    58  }
    59  
    60  func TestAccAWSDataSourceIAMServerCertificate_matchNamePrefix(t *testing.T) {
    61  	resource.Test(t, resource.TestCase{
    62  		PreCheck:     func() { testAccPreCheck(t) },
    63  		Providers:    testAccProviders,
    64  		CheckDestroy: testAccCheckIAMServerCertificateDestroy,
    65  		Steps: []resource.TestStep{
    66  			{
    67  				Config:      testAccAwsDataIAMServerCertConfigMatchNamePrefix,
    68  				ExpectError: regexp.MustCompile(`Search for AWS IAM server certificate returned no results`),
    69  			},
    70  		},
    71  	})
    72  }
    73  
    74  var testAccAwsDataIAMServerCertConfig = fmt.Sprintf(`%s
    75  data "aws_iam_server_certificate" "test" {
    76    name = "${aws_iam_server_certificate.test_cert.name}"
    77    latest = true
    78  }
    79  `, testAccIAMServerCertConfig)
    80  
    81  var testAccAwsDataIAMServerCertConfigMatchNamePrefix = `
    82  data "aws_iam_server_certificate" "test" {
    83    name_prefix = "MyCert"
    84    latest = true
    85  }
    86  `