fun deployAppUsingSamWithTags()

in jetbrains-core/it/software/aws/toolkits/jetbrains/services/lambda/deploy/SamDeployTest.kt [155:197]


    fun deployAppUsingSamWithTags() {
        val stackName = "SamDeployTest-${UUID.randomUUID()}"
        val templateFile = setUpProject()
        runAssertsAndClean(stackName) {
            val changeSetArn = createChangeSet(
                templateFile, stackName, hasImage = false,
                tags = mapOf(
                    "TestTag" to "FooBar",
                    "some:gross" to "tag name and value",
                    // SAM test cases https://github.com/aws/aws-sam-cli/pull/1798/files
                    "a+-=._:/@" to "b+-=._:/@",
                    "--c=" to "=d/"
                )
            )

            assertThat(changeSetArn).isNotNull

            val describeChangeSetResponse = projectRule.project.awsClient<CloudFormationClient>().describeChangeSet {
                it.stackName(stackName)
                it.changeSetName(changeSetArn)
            }

            assertThat(describeChangeSetResponse).isNotNull
            assertThat(describeChangeSetResponse.tags()).containsExactlyInAnyOrder(
                Tag.builder()
                    .key("TestTag")
                    .value("FooBar")
                    .build(),
                Tag.builder()
                    .key("some:gross")
                    .value("tag name and value")
                    .build(),
                Tag.builder()
                    .key("a+-=._:/@")
                    .value("b+-=._:/@")
                    .build(),
                Tag.builder()
                    .key("--c=")
                    .value("=d/")
                    .build()
            )
        }
    }