terraform/builtin/providers/aws/data_source_aws_vpc_peering...

130 lines
3.5 KiB
Go

// make testacc TEST=./builtin/providers/aws/ TESTARGS='-run=TestAccDataSourceAwsVpcPeeringConnection_'
package aws
import (
"fmt"
"testing"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
)
func TestAccDataSourceAwsVpcPeeringConnection_basic(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccDataSourceAwsVpcPeeringConnectionConfig,
Check: resource.ComposeTestCheckFunc(
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_id"),
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_requester_vpc_id"),
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_accepter_vpc_id"),
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_requester_cidr_block"),
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_accepter_cidr_block"),
testAccDataSourceAwsVpcPeeringConnectionCheck("data.aws_vpc_peering_connection.test_by_owner_ids"),
),
ExpectNonEmptyPlan: true,
},
},
})
}
func testAccDataSourceAwsVpcPeeringConnectionCheck(name string) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[name]
if !ok {
return fmt.Errorf("root module has no resource called %s", name)
}
pcxRs, ok := s.RootModule().Resources["aws_vpc_peering_connection.test"]
if !ok {
return fmt.Errorf("can't find aws_vpc_peering_connection.test in state")
}
attr := rs.Primary.Attributes
if attr["id"] != pcxRs.Primary.Attributes["id"] {
return fmt.Errorf(
"id is %s; want %s",
attr["id"],
pcxRs.Primary.Attributes["id"],
)
}
return nil
}
}
const testAccDataSourceAwsVpcPeeringConnectionConfig = `
provider "aws" {
region = "us-west-2"
}
resource "aws_vpc" "foo" {
cidr_block = "10.1.0.0/16"
tags {
Name = "terraform-testacc-vpc-peering-connection-data-source-foo"
}
}
resource "aws_vpc" "bar" {
cidr_block = "10.2.0.0/16"
tags {
Name = "terraform-testacc-vpc-peering-connection-data-source-bar"
}
}
resource "aws_vpc_peering_connection" "test" {
vpc_id = "${aws_vpc.foo.id}"
peer_vpc_id = "${aws_vpc.bar.id}"
auto_accept = true
tags {
Name = "terraform-testacc-vpc-peering-connection-data-source-foo-to-bar"
}
}
data "aws_caller_identity" "current" {}
data "aws_vpc_peering_connection" "test_by_id" {
id = "${aws_vpc_peering_connection.test.id}"
}
data "aws_vpc_peering_connection" "test_by_requester_vpc_id" {
vpc_id = "${aws_vpc.foo.id}"
depends_on = ["aws_vpc_peering_connection.test"]
}
data "aws_vpc_peering_connection" "test_by_accepter_vpc_id" {
peer_vpc_id = "${aws_vpc.bar.id}"
depends_on = ["aws_vpc_peering_connection.test"]
}
data "aws_vpc_peering_connection" "test_by_requester_cidr_block" {
cidr_block = "10.1.0.0/16"
status = "active"
depends_on = ["aws_vpc_peering_connection.test"]
}
data "aws_vpc_peering_connection" "test_by_accepter_cidr_block" {
peer_cidr_block = "10.2.0.0/16"
status = "active"
depends_on = ["aws_vpc_peering_connection.test"]
}
data "aws_vpc_peering_connection" "test_by_owner_ids" {
owner_id = "${data.aws_caller_identity.current.account_id}"
peer_owner_id = "${data.aws_caller_identity.current.account_id}"
status = "active"
depends_on = ["aws_vpc_peering_connection.test"]
}
`