@@ -3,15 +3,13 @@ package resourcemanager_test
33import (
44 "context"
55 "fmt"
6- "strings"
76 "testing"
87
98 "github.com/hashicorp/terraform-plugin-testing/helper/acctest"
109 "github.com/hashicorp/terraform-plugin-testing/helper/resource"
1110 "github.com/hashicorp/terraform-plugin-testing/terraform"
1211 "github.com/stackitcloud/stackit-sdk-go/core/config"
1312 "github.com/stackitcloud/stackit-sdk-go/core/utils"
14- "github.com/stackitcloud/stackit-sdk-go/services/authorization"
1513 "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager"
1614 "github.com/stackitcloud/stackit-sdk-go/services/resourcemanager/wait"
1715 "github.com/stackitcloud/terraform-provider-stackit/stackit/internal/testutil"
@@ -26,19 +24,7 @@ var projectResource = map[string]string{
2624 "new_label" : "a-label" ,
2725}
2826
29- func membersConfig (members []authorization.Member ) string {
30- membersConfig := make ([]string , 0 , len (members ))
31- for _ , m := range members {
32- memberConfig := fmt .Sprintf (`{
33- subject = "%s"
34- role = "%s"
35- }` , * m .Subject , * m .Role )
36- membersConfig = append (membersConfig , memberConfig )
37- }
38- return strings .Join (membersConfig , ",\n " )
39- }
40-
41- func resourceConfig (name string , label * string , members string ) string {
27+ func resourceConfig (name string , label * string ) string {
4228 labelConfig := ""
4329 if label != nil {
4430 labelConfig = fmt .Sprintf ("new_label = %q" , * label )
@@ -53,19 +39,13 @@ func resourceConfig(name string, label *string, members string) string {
5339 "billing_reference" = "%[4]s"
5440 %[5]s
5541 }
56- members = [
57- %[7]s
58- ]
59- owner_email = "%[8]s"
42+ owner_email = "%[7]s"
6043 }
6144
6245 resource "stackit_resourcemanager_project" "parent_by_uuid" {
6346 parent_container_id = "%[6]s"
6447 name = "%[3]s-uuid"
65- members = [
66- %[7]s
67- ]
68- owner_email = "%[8]s"
48+ owner_email = "%[7]s"
6949 }
7050 ` ,
7151 testutil .ResourceManagerProviderConfig (),
@@ -74,26 +54,18 @@ func resourceConfig(name string, label *string, members string) string {
7454 projectResource ["billing_reference" ],
7555 labelConfig ,
7656 projectResource ["parent_uuid" ],
77- members ,
7857 testutil .TestProjectServiceAccountEmail ,
7958 )
8059}
8160
8261func TestAccResourceManagerResource (t * testing.T ) {
83- initialMembersConfig := membersConfig ([]authorization.Member {
84- {
85- Subject : & testutil .TestProjectUserEmail ,
86- Role : utils .Ptr ("owner" ),
87- },
88- })
89-
9062 resource .Test (t , resource.TestCase {
9163 ProtoV6ProviderFactories : testutil .TestAccProtoV6ProviderFactories ,
9264 CheckDestroy : testAccCheckResourceManagerDestroy ,
9365 Steps : []resource.TestStep {
9466 // Creation
9567 {
96- Config : resourceConfig (projectResource ["name" ], nil , initialMembersConfig ),
68+ Config : resourceConfig (projectResource ["name" ], nil ),
9769 Check : resource .ComposeAggregateTestCheckFunc (
9870 // Parent container id project data
9971 resource .TestCheckResourceAttrSet ("stackit_resourcemanager_project.parent_by_container" , "container_id" ),
@@ -128,7 +100,7 @@ func TestAccResourceManagerResource(t *testing.T) {
128100 project_id = stackit_resourcemanager_project.parent_by_container.project_id
129101 }
130102 ` ,
131- resourceConfig (projectResource ["name" ], nil , initialMembersConfig ),
103+ resourceConfig (projectResource ["name" ], nil ),
132104 ),
133105 Check : resource .ComposeAggregateTestCheckFunc (
134106 // Container project data
@@ -139,6 +111,7 @@ func TestAccResourceManagerResource(t *testing.T) {
139111 resource .TestCheckResourceAttrSet ("data.stackit_resourcemanager_project.project_by_container" , "parent_container_id" ),
140112 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_container" , "labels.%" , "1" ),
141113 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_container" , "labels.billing_reference" , projectResource ["billing_reference" ]),
114+ resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_container" , "owner_email" , testutil .TestProjectServiceAccountEmail ),
142115
143116 // UUID project data
144117 resource .TestCheckResourceAttrSet ("data.stackit_resourcemanager_project.project_by_uuid" , "id" ),
@@ -148,6 +121,7 @@ func TestAccResourceManagerResource(t *testing.T) {
148121 resource .TestCheckResourceAttrSet ("data.stackit_resourcemanager_project.project_by_uuid" , "parent_container_id" ),
149122 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_uuid" , "labels.%" , "1" ),
150123 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_uuid" , "labels.billing_reference" , projectResource ["billing_reference" ]),
124+ resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_uuid" , "owner_email" , testutil .TestProjectServiceAccountEmail ),
151125
152126 // Both project data
153127 resource .TestCheckResourceAttrSet ("data.stackit_resourcemanager_project.project_by_both" , "id" ),
@@ -157,6 +131,7 @@ func TestAccResourceManagerResource(t *testing.T) {
157131 resource .TestCheckResourceAttrSet ("data.stackit_resourcemanager_project.project_by_both" , "parent_container_id" ),
158132 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_both" , "labels.%" , "1" ),
159133 resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_both" , "labels.billing_reference" , projectResource ["billing_reference" ]),
134+ resource .TestCheckResourceAttr ("data.stackit_resourcemanager_project.project_by_both" , "owner_email" , testutil .TestProjectServiceAccountEmail ),
160135 ),
161136 },
162137 // Import
@@ -178,11 +153,11 @@ func TestAccResourceManagerResource(t *testing.T) {
178153 ImportStateVerify : true ,
179154 // The owner_email attributes don't exist in the
180155 // API, therefore there is no value for it during import.
181- ImportStateVerifyIgnore : []string {"owner_email" , "members" },
156+ ImportStateVerifyIgnore : []string {"owner_email" },
182157 },
183158 // Update
184159 {
185- Config : resourceConfig (fmt .Sprintf ("%s-new" , projectResource ["name" ]), utils .Ptr ("a-label" ), initialMembersConfig ),
160+ Config : resourceConfig (fmt .Sprintf ("%s-new" , projectResource ["name" ]), utils .Ptr ("a-label" )),
186161 Check : resource .ComposeAggregateTestCheckFunc (
187162 // Project data
188163 resource .TestCheckResourceAttrSet ("stackit_resourcemanager_project.parent_by_container" , "container_id" ),
@@ -191,6 +166,7 @@ func TestAccResourceManagerResource(t *testing.T) {
191166 resource .TestCheckResourceAttr ("stackit_resourcemanager_project.parent_by_container" , "labels.%" , "2" ),
192167 resource .TestCheckResourceAttr ("stackit_resourcemanager_project.parent_by_container" , "labels.billing_reference" , projectResource ["billing_reference" ]),
193168 resource .TestCheckResourceAttr ("stackit_resourcemanager_project.parent_by_container" , "labels.new_label" , projectResource ["new_label" ]),
169+ resource .TestCheckResourceAttr ("stackit_resourcemanager_project.parent_by_container" , "owner_email" , testutil .TestProjectServiceAccountEmail ),
194170 ),
195171 },
196172 // Deletion is done by the framework implicitly
0 commit comments