github.com/leeprovoost/terraform@v0.6.10-0.20160119085442-96f3f76118e7/builtin/providers/aws/resource_aws_proxy_protocol_policy_test.go (about) 1 package aws 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/aws/aws-sdk-go/aws" 8 "github.com/aws/aws-sdk-go/service/elb" 9 "github.com/hashicorp/terraform/helper/resource" 10 "github.com/hashicorp/terraform/terraform" 11 ) 12 13 func TestAccAWSProxyProtocolPolicy_basic(t *testing.T) { 14 resource.Test(t, resource.TestCase{ 15 PreCheck: func() { testAccPreCheck(t) }, 16 Providers: testAccProviders, 17 CheckDestroy: testAccCheckProxyProtocolPolicyDestroy, 18 Steps: []resource.TestStep{ 19 resource.TestStep{ 20 Config: testAccProxyProtocolPolicyConfig, 21 Check: resource.ComposeTestCheckFunc( 22 resource.TestCheckResourceAttr( 23 "aws_proxy_protocol_policy.smtp", "load_balancer", "test-lb"), 24 resource.TestCheckResourceAttr( 25 "aws_proxy_protocol_policy.smtp", "instance_ports.#", "1"), 26 resource.TestCheckResourceAttr( 27 "aws_proxy_protocol_policy.smtp", "instance_ports.4196041389", "25"), 28 ), 29 }, 30 resource.TestStep{ 31 Config: testAccProxyProtocolPolicyConfigUpdate, 32 Check: resource.ComposeTestCheckFunc( 33 resource.TestCheckResourceAttr( 34 "aws_proxy_protocol_policy.smtp", "load_balancer", "test-lb"), 35 resource.TestCheckResourceAttr( 36 "aws_proxy_protocol_policy.smtp", "instance_ports.#", "2"), 37 resource.TestCheckResourceAttr( 38 "aws_proxy_protocol_policy.smtp", "instance_ports.4196041389", "25"), 39 resource.TestCheckResourceAttr( 40 "aws_proxy_protocol_policy.smtp", "instance_ports.1925441437", "587"), 41 ), 42 }, 43 }, 44 }) 45 } 46 47 func testAccCheckProxyProtocolPolicyDestroy(s *terraform.State) error { 48 conn := testAccProvider.Meta().(*AWSClient).elbconn 49 50 for _, rs := range s.RootModule().Resources { 51 if rs.Type != "aws_placement_group" { 52 continue 53 } 54 55 req := &elb.DescribeLoadBalancersInput{ 56 LoadBalancerNames: []*string{ 57 aws.String(rs.Primary.Attributes["load_balancer"])}, 58 } 59 _, err := conn.DescribeLoadBalancers(req) 60 if err != nil { 61 // Verify the error is what we want 62 if isLoadBalancerNotFound(err) { 63 continue 64 } 65 return err 66 } 67 68 return fmt.Errorf("still exists") 69 } 70 return nil 71 } 72 73 const testAccProxyProtocolPolicyConfig = ` 74 resource "aws_elb" "lb" { 75 name = "test-lb" 76 availability_zones = ["us-west-2a"] 77 78 listener { 79 instance_port = 25 80 instance_protocol = "tcp" 81 lb_port = 25 82 lb_protocol = "tcp" 83 } 84 85 listener { 86 instance_port = 587 87 instance_protocol = "tcp" 88 lb_port = 587 89 lb_protocol = "tcp" 90 } 91 } 92 93 resource "aws_proxy_protocol_policy" "smtp" { 94 load_balancer = "${aws_elb.lb.name}" 95 instance_ports = ["25"] 96 } 97 ` 98 99 const testAccProxyProtocolPolicyConfigUpdate = ` 100 resource "aws_elb" "lb" { 101 name = "test-lb" 102 availability_zones = ["us-west-2a"] 103 104 listener { 105 instance_port = 25 106 instance_protocol = "tcp" 107 lb_port = 25 108 lb_protocol = "tcp" 109 } 110 111 listener { 112 instance_port = 587 113 instance_protocol = "tcp" 114 lb_port = 587 115 lb_protocol = "tcp" 116 } 117 } 118 119 resource "aws_proxy_protocol_policy" "smtp" { 120 load_balancer = "${aws_elb.lb.name}" 121 instance_ports = ["25", "587"] 122 } 123 `