github.com/armen/terraform@v0.5.2-0.20150529052519-caa8117a08f1/builtin/providers/aws/resource_aws_ebs_volume_test.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/awslabs/aws-sdk-go/aws" 8 "github.com/awslabs/aws-sdk-go/service/ec2" 9 "github.com/hashicorp/terraform/helper/resource" 10 "github.com/hashicorp/terraform/terraform" 11 ) 12 13 func TestAccAWSEBSVolume(t *testing.T) { 14 var v ec2.Volume 15 resource.Test(t, resource.TestCase{ 16 PreCheck: func() { testAccPreCheck(t) }, 17 Providers: testAccProviders, 18 Steps: []resource.TestStep{ 19 resource.TestStep{ 20 Config: testAccAwsEbsVolumeConfig, 21 Check: resource.ComposeTestCheckFunc( 22 testAccCheckVolumeExists("aws_ebs_volume.test", &v), 23 ), 24 }, 25 }, 26 }) 27 } 28 29 func testAccCheckVolumeExists(n string, v *ec2.Volume) resource.TestCheckFunc { 30 return func(s *terraform.State) error { 31 rs, ok := s.RootModule().Resources[n] 32 if !ok { 33 return fmt.Errorf("Not found: %s", n) 34 } 35 36 if rs.Primary.ID == "" { 37 return fmt.Errorf("No ID is set") 38 } 39 40 conn := testAccProvider.Meta().(*AWSClient).ec2conn 41 42 request := &ec2.DescribeVolumesInput{ 43 VolumeIDs: []*string{aws.String(rs.Primary.ID)}, 44 } 45 46 response, err := conn.DescribeVolumes(request) 47 if err == nil { 48 if response.Volumes != nil && len(response.Volumes) > 0 { 49 *v = *response.Volumes[0] 50 return nil 51 } 52 } 53 return fmt.Errorf("Error finding EC2 volume %s", rs.Primary.ID) 54 } 55 } 56 57 const testAccAwsEbsVolumeConfig = ` 58 resource "aws_ebs_volume" "test" { 59 availability_zone = "us-west-2a" 60 size = 1 61 } 62 `