6
6
"testing"
7
7
8
8
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
9
+ "github.com/mongodb/terraform-provider-mongodbatlas/internal/common/conversion"
10
+ "github.com/mongodb/terraform-provider-mongodbatlas/internal/service/federatedsettingsidentityprovider"
9
11
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
10
12
)
11
13
@@ -20,22 +22,66 @@ func TestAccFederatedSettingsIdentityProvidersDS_basic(t *testing.T) {
20
22
ProtoV6ProviderFactories : acc .TestAccProviderV6Factories ,
21
23
Steps : []resource.TestStep {
22
24
{
23
- Config : configBasicPluralDS (federatedSettingsID ),
25
+ Config : configPluralDS (federatedSettingsID , conversion . StringPtr ( federatedsettingsidentityprovider . WORKFORCE ), [] string { oidcProtocol , samlProtocol } ),
24
26
Check : resource .ComposeTestCheckFunc (
25
27
resource .TestCheckResourceAttrSet (dataSourceName , "federation_settings_id" ),
26
28
resource .TestCheckResourceAttr (dataSourceName , "results.#" , "2" ),
27
29
),
28
30
},
31
+ {
32
+ Config : configPluralDS (federatedSettingsID , conversion .StringPtr (federatedsettingsidentityprovider .WORKFORCE ), []string {samlProtocol }),
33
+ Check : resource .ComposeTestCheckFunc (
34
+ resource .TestCheckResourceAttrSet (dataSourceName , "federation_settings_id" ),
35
+ resource .TestCheckResourceAttr (dataSourceName , "results.#" , "1" ),
36
+ resource .TestCheckResourceAttr (dataSourceName , "results.0.display_name" , "SAML-test" ),
37
+ ),
38
+ },
39
+ {
40
+ Config : configPluralDS (federatedSettingsID , conversion .StringPtr (federatedsettingsidentityprovider .WORKFORCE ), []string {oidcProtocol }),
41
+ Check : resource .ComposeTestCheckFunc (
42
+ resource .TestCheckResourceAttrSet (dataSourceName , "federation_settings_id" ),
43
+ resource .TestCheckResourceAttr (dataSourceName , "results.#" , "1" ),
44
+ resource .TestCheckResourceAttr (dataSourceName , "results.0.display_name" , "OIDC-test" ),
45
+ ),
46
+ },
47
+ {
48
+ Config : configPluralDS (federatedSettingsID , conversion .StringPtr (federatedsettingsidentityprovider .WORKFORCE ), []string {}),
49
+ Check : resource .ComposeTestCheckFunc (
50
+ resource .TestCheckResourceAttrSet (dataSourceName , "federation_settings_id" ),
51
+ resource .TestCheckResourceAttr (dataSourceName , "results.#" , "1" ),
52
+ resource .TestCheckResourceAttr (dataSourceName , "results.0.display_name" , "SAML-test" ), // if no protocol is specified, it defaults to SAML
53
+ ),
54
+ },
55
+ {
56
+ Config : configPluralDS (federatedSettingsID , conversion .StringPtr (federatedsettingsidentityprovider .WORKLOAD ), []string {}),
57
+ Check : resource .ComposeTestCheckFunc (
58
+ resource .TestCheckResourceAttrSet (dataSourceName , "federation_settings_id" ),
59
+ resource .TestCheckResourceAttr (dataSourceName , "results.#" , "0" ),
60
+ ),
61
+ },
29
62
},
30
63
})
31
64
}
32
65
33
- func configBasicPluralDS (federatedSettingsID string ) string {
66
+ func configPluralDS (federatedSettingsID string , idpType * string , protocols []string ) string {
67
+ var protocolString string
68
+ if len (protocols ) > 1 {
69
+ protocolString = fmt .Sprintf (`protocols = [%[1]q, %[2]q]` , protocols [0 ], protocols [1 ])
70
+ } else if len (protocols ) > 0 {
71
+ protocolString = fmt .Sprintf (`protocols = [%[1]q]` , protocols [0 ])
72
+ }
73
+ var idpTypeString string
74
+ if idpType != nil {
75
+ idpTypeString = fmt .Sprintf (`idp_types = [%[1]q]` , * idpType )
76
+ }
77
+
34
78
return fmt .Sprintf (`
35
79
data "mongodbatlas_federated_settings_identity_providers" "test" {
36
80
federation_settings_id = "%[1]s"
37
81
page_num = 1
38
82
items_per_page = 100
83
+ %[2]s
84
+ %[3]s
39
85
}
40
- ` , federatedSettingsID )
86
+ ` , federatedSettingsID , protocolString , idpTypeString )
41
87
}
0 commit comments