github.com/aspring/terraform@v0.8.2-0.20161216122603-6a8619a5db2e/builtin/providers/aws/data_source_aws_iam_server_certificate_test.go (about)

     1  package aws
     2  
     3  import (
     4  	"fmt"
     5  	"sort"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/aws/aws-sdk-go/aws"
    10  	"github.com/aws/aws-sdk-go/service/iam"
    11  	"github.com/hashicorp/terraform/helper/resource"
    12  )
    13  
    14  func timePtr(t time.Time) *time.Time {
    15  	return &t
    16  }
    17  
    18  func TestResourceSortByExpirationDate(t *testing.T) {
    19  	certs := []*iam.ServerCertificateMetadata{
    20  		&iam.ServerCertificateMetadata{
    21  			ServerCertificateName: aws.String("oldest"),
    22  			Expiration:            timePtr(time.Now()),
    23  		},
    24  		&iam.ServerCertificateMetadata{
    25  			ServerCertificateName: aws.String("latest"),
    26  			Expiration:            timePtr(time.Now().Add(3 * time.Hour)),
    27  		},
    28  		&iam.ServerCertificateMetadata{
    29  			ServerCertificateName: aws.String("in between"),
    30  			Expiration:            timePtr(time.Now().Add(2 * time.Hour)),
    31  		},
    32  	}
    33  	sort.Sort(certificateByExpiration(certs))
    34  	if *certs[0].ServerCertificateName != "latest" {
    35  		t.Fatalf("Expected first item to be %q, but was %q", "latest", *certs[0].ServerCertificateName)
    36  	}
    37  }
    38  
    39  func TestAccAWSDataSourceIAMServerCertificate_basic(t *testing.T) {
    40  	resource.Test(t, resource.TestCase{
    41  		PreCheck:     func() { testAccPreCheck(t) },
    42  		Providers:    testAccProviders,
    43  		CheckDestroy: testAccCheckIAMServerCertificateDestroy,
    44  		Steps: []resource.TestStep{
    45  			{
    46  				Config: testAccAwsDataIAMServerCertConfig,
    47  				Check: resource.ComposeTestCheckFunc(
    48  					resource.TestCheckResourceAttrSet("aws_iam_server_certificate.test_cert", "arn"),
    49  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "arn"),
    50  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "name"),
    51  					resource.TestCheckResourceAttrSet("data.aws_iam_server_certificate.test", "path"),
    52  				),
    53  			},
    54  		},
    55  	})
    56  }
    57  
    58  var testAccAwsDataIAMServerCertConfig = fmt.Sprintf(`%s
    59  data "aws_iam_server_certificate" "test" {
    60    name = "${aws_iam_server_certificate.test_cert.name}"
    61    latest = true
    62  }
    63  `, testAccIAMServerCertConfig)