github.com/aspring/terraform@v0.8.2-0.20161216122603-6a8619a5db2e/builtin/providers/aws/resource_aws_opsworks_permission_test.go (about)

     1  package aws
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/hashicorp/terraform/helper/acctest"
     8  	"github.com/hashicorp/terraform/helper/resource"
     9  )
    10  
    11  func TestAccAWSOpsworksPermission(t *testing.T) {
    12  	sName := fmt.Sprintf("tf-ops-perm-%d", acctest.RandInt())
    13  	resource.Test(t, resource.TestCase{
    14  		PreCheck:  func() { testAccPreCheck(t) },
    15  		Providers: testAccProviders,
    16  		Steps: []resource.TestStep{
    17  			resource.TestStep{
    18  				Config: testAccAwsOpsworksPermissionCreate(sName, "true", "true", "iam_only"),
    19  				Check: resource.ComposeTestCheckFunc(
    20  					resource.TestCheckResourceAttr(
    21  						"aws_opsworks_permission.tf-acc-perm", "allow_ssh", "true",
    22  					),
    23  					resource.TestCheckResourceAttr(
    24  						"aws_opsworks_permission.tf-acc-perm", "allow_sudo", "true",
    25  					),
    26  					resource.TestCheckResourceAttr(
    27  						"aws_opsworks_permission.tf-acc-perm", "level", "iam_only",
    28  					),
    29  				),
    30  			},
    31  			resource.TestStep{
    32  				Config: testAccAwsOpsworksPermissionCreate(sName, "true", "false", "iam_only"),
    33  				Check: resource.ComposeTestCheckFunc(
    34  					resource.TestCheckResourceAttr(
    35  						"aws_opsworks_permission.tf-acc-perm", "allow_ssh", "true",
    36  					),
    37  					resource.TestCheckResourceAttr(
    38  						"aws_opsworks_permission.tf-acc-perm", "allow_sudo", "false",
    39  					),
    40  					resource.TestCheckResourceAttr(
    41  						"aws_opsworks_permission.tf-acc-perm", "level", "iam_only",
    42  					),
    43  				),
    44  			},
    45  			resource.TestStep{
    46  				Config: testAccAwsOpsworksPermissionCreate(sName, "false", "false", "deny"),
    47  				Check: resource.ComposeTestCheckFunc(
    48  					resource.TestCheckResourceAttr(
    49  						"aws_opsworks_permission.tf-acc-perm", "allow_ssh", "false",
    50  					),
    51  					resource.TestCheckResourceAttr(
    52  						"aws_opsworks_permission.tf-acc-perm", "allow_sudo", "false",
    53  					),
    54  					resource.TestCheckResourceAttr(
    55  						"aws_opsworks_permission.tf-acc-perm", "level", "deny",
    56  					),
    57  				),
    58  			},
    59  			resource.TestStep{
    60  				Config: testAccAwsOpsworksPermissionCreate(sName, "false", "false", "show"),
    61  				Check: resource.ComposeTestCheckFunc(
    62  					resource.TestCheckResourceAttr(
    63  						"aws_opsworks_permission.tf-acc-perm", "allow_ssh", "false",
    64  					),
    65  					resource.TestCheckResourceAttr(
    66  						"aws_opsworks_permission.tf-acc-perm", "allow_sudo", "false",
    67  					),
    68  					resource.TestCheckResourceAttr(
    69  						"aws_opsworks_permission.tf-acc-perm", "level", "show",
    70  					),
    71  				),
    72  			},
    73  		},
    74  	})
    75  }
    76  
    77  func testAccAwsOpsworksPermissionCreate(name, ssh, sudo, level string) string {
    78  	return fmt.Sprintf(`
    79  resource "aws_opsworks_permission" "tf-acc-perm" {
    80    stack_id = "${aws_opsworks_stack.tf-acc.id}"
    81  
    82    allow_ssh = %s
    83    allow_sudo = %s
    84    user_arn = "${aws_opsworks_user_profile.user.user_arn}"
    85    level = "%s"
    86  }
    87  
    88  resource "aws_opsworks_user_profile" "user" {
    89    user_arn = "${aws_iam_user.user.arn}"
    90    ssh_username = "${aws_iam_user.user.name}"
    91  }
    92  
    93  resource "aws_iam_user" "user" {
    94  	name = "%s"
    95  	path = "/"
    96  }
    97  	
    98  %s
    99  `, ssh, sudo, level, name, testAccAwsOpsworksStackConfigVpcCreate(name))
   100  }