From 3fe05e3e56e0ca38ea7c5f7b9436312eea807a32 Mon Sep 17 00:00:00 2001 From: drfaust92 Date: Sun, 27 Sep 2020 21:01:22 +0300 Subject: [PATCH] add Security Policy test refactor tests --- aws/resource_aws_transfer_server_test.go | 278 +++++++++++++---------- 1 file changed, 155 insertions(+), 123 deletions(-) diff --git a/aws/resource_aws_transfer_server_test.go b/aws/resource_aws_transfer_server_test.go index ee042da79267..d0a7001d75d3 100644 --- a/aws/resource_aws_transfer_server_test.go +++ b/aws/resource_aws_transfer_server_test.go @@ -67,8 +67,8 @@ func testSweepTransferServers(region string) error { func TestAccAWSTransferServer_basic(t *testing.T) { var conf transfer.DescribedServer - resourceName := "aws_transfer_server.foo" - rName := acctest.RandString(5) + resourceName := "aws_transfer_server.test" + rName := acctest.RandomWithPrefix("tf-acc-test") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -77,7 +77,7 @@ func TestAccAWSTransferServer_basic(t *testing.T) { CheckDestroy: testAccCheckAWSTransferServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSTransferServerConfig_basic, + Config: testAccAWSTransferServerBasicConfig(), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), testAccMatchResourceAttrRegionalARN(resourceName, "arn", "transfer", regexp.MustCompile(`server/.+`)), @@ -86,6 +86,8 @@ func TestAccAWSTransferServer_basic(t *testing.T) { resource.TestCheckResourceAttr( resourceName, "identity_provider_type", "SERVICE_MANAGED"), resource.TestCheckResourceAttr(resourceName, "tags.%", "0"), + resource.TestCheckResourceAttr(resourceName, "endpoint_type", "PUBLIC"), + resource.TestCheckResourceAttr(resourceName, "security_policy_name", "TransferSecurityPolicy-2018-11"), ), }, { @@ -95,17 +97,45 @@ func TestAccAWSTransferServer_basic(t *testing.T) { ImportStateVerifyIgnore: []string{"force_destroy"}, }, { - Config: testAccAWSTransferServerConfig_basicUpdate(rName), + Config: testAccAWSTransferServerUpdatedConfig(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), - resource.TestCheckResourceAttr( - resourceName, "tags.%", "2"), - resource.TestCheckResourceAttr( - resourceName, "tags.NAME", "tf-acc-test-transfer-server"), - resource.TestCheckResourceAttr( - resourceName, "tags.ENV", "test"), - resource.TestCheckResourceAttrPair( - resourceName, "logging_role", "aws_iam_role.foo", "arn"), + resource.TestCheckResourceAttrPair(resourceName, "logging_role", "aws_iam_role.test", "arn"), + resource.TestCheckResourceAttr(resourceName, "identity_provider_type", "SERVICE_MANAGED"), + ), + }, + }, + }) +} + +func TestAccAWSTransferServer_securityPolicy(t *testing.T) { + var conf transfer.DescribedServer + resourceName := "aws_transfer_server.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, + IDRefreshName: resourceName, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSTransferServerDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSTransferServerSecurityPolicyConfig("TransferSecurityPolicy-2020-06"), + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSTransferServerExists(resourceName, &conf), + resource.TestCheckResourceAttr(resourceName, "security_policy_name", "TransferSecurityPolicy-2020-06"), + ), + }, + { + ResourceName: resourceName, + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"force_destroy"}, + }, + { + Config: testAccAWSTransferServerSecurityPolicyConfig("TransferSecurityPolicy-2018-11"), + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSTransferServerExists(resourceName, &conf), + resource.TestCheckResourceAttr(resourceName, "security_policy_name", "TransferSecurityPolicy-2018-11"), ), }, }, @@ -115,6 +145,7 @@ func TestAccAWSTransferServer_basic(t *testing.T) { func TestAccAWSTransferServer_Vpc(t *testing.T) { var conf transfer.DescribedServer resourceName := "aws_transfer_server.test" + rName := acctest.RandomWithPrefix("tf-acc-test") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -123,7 +154,7 @@ func TestAccAWSTransferServer_Vpc(t *testing.T) { CheckDestroy: testAccCheckAWSTransferServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSTransferServerConfig_Vpc, + Config: testAccAWSTransferServerConfig_Vpc(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), resource.TestCheckResourceAttr( @@ -141,7 +172,7 @@ func TestAccAWSTransferServer_Vpc(t *testing.T) { ImportStateVerifyIgnore: []string{"force_destroy"}, }, { - Config: testAccAWSTransferServerConfig_VpcUpdate, + Config: testAccAWSTransferServerConfig_VpcUpdate(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), resource.TestCheckResourceAttr( @@ -156,8 +187,8 @@ func TestAccAWSTransferServer_Vpc(t *testing.T) { func TestAccAWSTransferServer_apigateway(t *testing.T) { var conf transfer.DescribedServer - resourceName := "aws_transfer_server.foo" - rName := acctest.RandString(5) + resourceName := "aws_transfer_server.test" + rName := acctest.RandomWithPrefix("tf-acc-test") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -169,16 +200,8 @@ func TestAccAWSTransferServer_apigateway(t *testing.T) { Config: testAccAWSTransferServerConfig_apigateway(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), - resource.TestCheckResourceAttr( - resourceName, "identity_provider_type", "API_GATEWAY"), - resource.TestCheckResourceAttrSet( - resourceName, "invocation_role"), - resource.TestCheckResourceAttr( - resourceName, "tags.%", "2"), - resource.TestCheckResourceAttr( - resourceName, "tags.NAME", "tf-acc-test-transfer-server"), - resource.TestCheckResourceAttr( - resourceName, "tags.TYPE", "apigateway"), + resource.TestCheckResourceAttr(resourceName, "identity_provider_type", "API_GATEWAY"), + resource.TestCheckResourceAttrPair(resourceName, "invocation_role", "aws_iam_role.test", "arn"), ), }, }, @@ -187,6 +210,7 @@ func TestAccAWSTransferServer_apigateway(t *testing.T) { func TestAccAWSTransferServer_disappears(t *testing.T) { var conf transfer.DescribedServer + resourceName := "aws_transfer_server.test" resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -194,10 +218,10 @@ func TestAccAWSTransferServer_disappears(t *testing.T) { CheckDestroy: testAccCheckAWSTransferServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSTransferServerConfig_basic, + Config: testAccAWSTransferServerBasicConfig(), Check: resource.ComposeTestCheckFunc( - testAccCheckAWSTransferServerExists("aws_transfer_server.foo", &conf), - testAccCheckAWSTransferServerDisappears(&conf), + testAccCheckAWSTransferServerExists(resourceName, &conf), + testAccCheckResourceDisappears(testAccProvider, resourceAwsTransferServer(), resourceName), ), ExpectNonEmptyPlan: true, }, @@ -208,8 +232,8 @@ func TestAccAWSTransferServer_disappears(t *testing.T) { func TestAccAWSTransferServer_forcedestroy(t *testing.T) { var conf transfer.DescribedServer var roleConf iam.GetRoleOutput - resourceName := "aws_transfer_server.foo" - rName := acctest.RandString(5) + resourceName := "aws_transfer_server.test" + rName := acctest.RandomWithPrefix("tf-acc-test") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -221,11 +245,9 @@ func TestAccAWSTransferServer_forcedestroy(t *testing.T) { Config: testAccAWSTransferServerConfig_forcedestroy(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), - testAccCheckAWSRoleExists("aws_iam_role.foo", &roleConf), - resource.TestCheckResourceAttr( - resourceName, "identity_provider_type", "SERVICE_MANAGED"), - resource.TestCheckResourceAttr( - resourceName, "force_destroy", "true"), + resource.TestCheckResourceAttr(resourceName, "identity_provider_type", "SERVICE_MANAGED"), + resource.TestCheckResourceAttr(resourceName, "force_destroy", "true"), + testAccCheckAWSRoleExists("aws_iam_role.test", &roleConf), testAccCheckAWSTransferCreateUser(&conf, &roleConf, rName), testAccCheckAWSTransferCreateSshKey(&conf, rName), ), @@ -242,7 +264,8 @@ func TestAccAWSTransferServer_forcedestroy(t *testing.T) { func TestAccAWSTransferServer_vpcEndpointId(t *testing.T) { var conf transfer.DescribedServer - resourceName := "aws_transfer_server.default" + resourceName := "aws_transfer_server.test" + rName := acctest.RandomWithPrefix("tf-acc-test") resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t); testAccPreCheckAWSTransfer(t) }, @@ -251,11 +274,10 @@ func TestAccAWSTransferServer_vpcEndpointId(t *testing.T) { CheckDestroy: testAccCheckAWSTransferServerDestroy, Steps: []resource.TestStep{ { - Config: testAccAWSTransferServerConfig_VpcEndPoint, + Config: testAccAWSTransferServerConfig_VpcEndPoint(rName), Check: resource.ComposeTestCheckFunc( testAccCheckAWSTransferServerExists(resourceName, &conf), - resource.TestCheckResourceAttr( - resourceName, "endpoint_type", "VPC_ENDPOINT"), + resource.TestCheckResourceAttr(resourceName, "endpoint_type", "VPC_ENDPOINT"), ), }, { @@ -270,7 +292,7 @@ func TestAccAWSTransferServer_vpcEndpointId(t *testing.T) { func TestAccAWSTransferServer_hostKey(t *testing.T) { var conf transfer.DescribedServer - resourceName := "aws_transfer_server.default" + resourceName := "aws_transfer_server.test" hostKey := "test-fixtures/transfer-ssh-rsa-key" resource.ParallelTest(t, resource.TestCase{ @@ -323,23 +345,6 @@ func testAccCheckAWSTransferServerExists(n string, res *transfer.DescribedServer } } -func testAccCheckAWSTransferServerDisappears(conf *transfer.DescribedServer) resource.TestCheckFunc { - return func(s *terraform.State) error { - conn := testAccProvider.Meta().(*AWSClient).transferconn - - params := &transfer.DeleteServerInput{ - ServerId: conf.ServerId, - } - - _, err := conn.DeleteServer(params) - if err != nil { - return err - } - - return waitForTransferServerDeletion(conn, *conf.ServerId) - } -} - func testAccCheckAWSTransferServerDestroy(s *terraform.State) error { conn := testAccProvider.Meta().(*AWSClient).transferconn @@ -416,14 +421,24 @@ func testAccPreCheckAWSTransfer(t *testing.T) { } } -const testAccAWSTransferServerConfig_basic = ` -resource "aws_transfer_server" "foo" {} +func testAccAWSTransferServerBasicConfig() string { + return ` +resource "aws_transfer_server" "test" {} ` +} -func testAccAWSTransferServerConfig_basicUpdate(rName string) string { +func testAccAWSTransferServerSecurityPolicyConfig(policy string) string { return fmt.Sprintf(` -resource "aws_iam_role" "foo" { - name = "tf-test-transfer-server-iam-role-%s" +resource "aws_transfer_server" "test" { + security_policy_name = %[1]q +} +`, policy) +} + +func testAccAWSTransferServerUpdatedConfig(rName string) string { + return fmt.Sprintf(` +resource "aws_iam_role" "test" { + name = %[1]q assume_role_policy = <