133 lines
3.0 KiB
Go
133 lines
3.0 KiB
Go
package aws
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/helper/acctest"
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
)
|
|
|
|
func TestAccDataSourceAwsSubnetIDs(t *testing.T) {
|
|
rInt := acctest.RandIntRange(0, 256)
|
|
resource.Test(t, resource.TestCase{
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
Providers: testAccProviders,
|
|
CheckDestroy: testAccCheckVpcDestroy,
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: testAccDataSourceAwsSubnetIDsConfig(rInt),
|
|
},
|
|
{
|
|
Config: testAccDataSourceAwsSubnetIDsConfigWithDataSource(rInt),
|
|
Check: resource.ComposeTestCheckFunc(
|
|
resource.TestCheckResourceAttr("data.aws_subnet_ids.selected", "ids.#", "3"),
|
|
resource.TestCheckResourceAttr("data.aws_subnet_ids.private", "ids.#", "2"),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func testAccDataSourceAwsSubnetIDsConfigWithDataSource(rInt int) string {
|
|
return fmt.Sprintf(
|
|
`
|
|
resource "aws_vpc" "test" {
|
|
cidr_block = "172.%d.0.0/16"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_public_a" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.123.0/24"
|
|
availability_zone = "us-west-2a"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-public-a"
|
|
Tier = "Public"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_private_a" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.125.0/24"
|
|
availability_zone = "us-west-2a"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-private-a"
|
|
Tier = "Private"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_private_b" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.126.0/24"
|
|
availability_zone = "us-west-2b"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-private-b"
|
|
Tier = "Private"
|
|
}
|
|
}
|
|
|
|
data "aws_subnet_ids" "selected" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
}
|
|
|
|
data "aws_subnet_ids" "private" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
tags {
|
|
Tier = "Private"
|
|
}
|
|
}
|
|
`, rInt, rInt, rInt, rInt)
|
|
}
|
|
|
|
func testAccDataSourceAwsSubnetIDsConfig(rInt int) string {
|
|
return fmt.Sprintf(`
|
|
resource "aws_vpc" "test" {
|
|
cidr_block = "172.%d.0.0/16"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_public_a" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.123.0/24"
|
|
availability_zone = "us-west-2a"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-public-a"
|
|
Tier = "Public"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_private_a" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.125.0/24"
|
|
availability_zone = "us-west-2a"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-private-a"
|
|
Tier = "Private"
|
|
}
|
|
}
|
|
|
|
resource "aws_subnet" "test_private_b" {
|
|
vpc_id = "${aws_vpc.test.id}"
|
|
cidr_block = "172.%d.126.0/24"
|
|
availability_zone = "us-west-2b"
|
|
|
|
tags {
|
|
Name = "terraform-testacc-subnet-ids-data-source-private-b"
|
|
Tier = "Private"
|
|
}
|
|
}
|
|
`, rInt, rInt, rInt, rInt)
|
|
}
|