@@ -74,6 +74,25 @@ func TestAccIAMPolicyDocumentDataSource_multipleConditionKeys(t *testing.T) {
74
74
})
75
75
}
76
76
77
+ func TestAccIAMPolicyDocumentDataSource_duplicateConditionKeys (t * testing.T ) {
78
+ ctx := acctest .Context (t )
79
+ dataSourceName := "data.aws_iam_policy_document.test"
80
+
81
+ resource .ParallelTest (t , resource.TestCase {
82
+ PreCheck : func () { acctest .PreCheck (ctx , t ) },
83
+ ErrorCheck : acctest .ErrorCheck (t , iam .EndpointsID ),
84
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
85
+ Steps : []resource.TestStep {
86
+ {
87
+ Config : testAccPolicyDocumentDataSourceConfig_duplicateConditionKeys ,
88
+ Check : resource .ComposeTestCheckFunc (
89
+ acctest .CheckResourceAttrEquivalentJSON (dataSourceName , "json" , testAccPolicyDocumentConfig_duplicateConditionKeys_ExpectedJSON ),
90
+ ),
91
+ },
92
+ },
93
+ })
94
+ }
95
+
77
96
func TestAccIAMPolicyDocumentDataSource_conditionWithBoolValue (t * testing.T ) {
78
97
ctx := acctest .Context (t )
79
98
resource .ParallelTest (t , resource.TestCase {
@@ -662,6 +681,57 @@ var testAccPolicyDocumentConfig_multipleConditionKeys_ExpectedJSON = `{
662
681
}
663
682
`
664
683
684
+ const testAccPolicyDocumentDataSourceConfig_duplicateConditionKeys = `
685
+ data "aws_iam_policy_document" "test" {
686
+ statement {
687
+ sid = "DuplicateConditionTest"
688
+
689
+ effect = "Allow"
690
+
691
+ principals {
692
+ type = "Service"
693
+ identifiers = ["cloudtrail.amazonaws.com"]
694
+ }
695
+
696
+ actions = ["s3:PutObject"]
697
+
698
+ resources = ["*"]
699
+
700
+ condition {
701
+ test = "StringEquals"
702
+ variable = "s3:prefix"
703
+ values = ["one/", "two/"]
704
+ }
705
+ condition {
706
+ test = "StringEquals"
707
+ variable = "s3:prefix"
708
+ values = ["three/"]
709
+ }
710
+ }
711
+ }
712
+ `
713
+
714
+ const testAccPolicyDocumentConfig_duplicateConditionKeys_ExpectedJSON = `{
715
+ "Version": "2012-10-17",
716
+ "Statement": [
717
+ {
718
+ "Sid": "DuplicateConditionTest",
719
+ "Effect": "Allow",
720
+ "Action": "s3:PutObject",
721
+ "Resource": "*",
722
+ "Principal": {
723
+ "Service": "cloudtrail.amazonaws.com"
724
+ },
725
+ "Condition": {
726
+ "StringEquals": {
727
+ "s3:prefix": ["one/", "two/", "three/"]
728
+ }
729
+ }
730
+ }
731
+ ]
732
+ }
733
+ `
734
+
665
735
var testAccPolicyDocumentDataSourceConfig_deprecated = `
666
736
data "aws_partition" "current" {}
667
737
0 commit comments