github.com/erriapo/terraform@v0.6.12-0.20160203182612-0340ea72354f/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  `