@@ -12,38 +12,80 @@ import (
12
12
"github.com/stretchr/testify/require"
13
13
)
14
14
15
- func TestAccScalewayDataSourceObjectStorage_Basic (t * testing.T ) {
15
+ func TestAccScalewayDataSourceObjectBucket_Basic (t * testing.T ) {
16
16
tt := NewTestTools (t )
17
17
defer tt .Cleanup ()
18
18
bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
19
- // resourceName := "data.scaleway_object_bucket.main"
19
+ objectBucketTestDefaultRegion , _ := tt .Meta .scwClient .GetDefaultRegion ()
20
+
20
21
resource .ParallelTest (t , resource.TestCase {
21
22
PreCheck : func () { testAccPreCheck (t ) },
22
23
ProviderFactories : tt .ProviderFactories ,
23
- CheckDestroy : testAccCheckScalewayRdbInstanceDestroy (tt ),
24
+ CheckDestroy : testAccCheckScalewayObjectBucketDestroy (tt ),
24
25
Steps : []resource.TestStep {
25
26
{
26
27
Config : fmt .Sprintf (`
27
28
resource "scaleway_object_bucket" "base-01" {
28
29
name = "%s"
30
+ region = "%s"
29
31
tags = {
30
32
foo = "bar"
31
33
}
32
34
}
33
35
34
- data "scaleway_object_bucket" "selected" {
36
+ data "scaleway_object_bucket" "by-id" {
37
+ name = scaleway_object_bucket.base-01.id
38
+ }
39
+ ` , bucketName , objectTestsMainRegion ),
40
+ Check : resource .ComposeTestCheckFunc (
41
+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base-01" , true ),
42
+ resource .TestCheckResourceAttr ("data.scaleway_object_bucket.by-id" , "name" , bucketName ),
43
+ ),
44
+ },
45
+ {
46
+ Config : fmt .Sprintf (`
47
+ resource "scaleway_object_bucket" "base-01" {
48
+ name = "%s"
49
+ region = "%s"
50
+ tags = {
51
+ foo = "bar"
52
+ }
53
+ }
54
+
55
+ data "scaleway_object_bucket" "by-name" {
35
56
name = scaleway_object_bucket.base-01.name
36
57
}
37
- ` , bucketName ),
58
+ ` , bucketName , objectBucketTestDefaultRegion ),
38
59
Check : resource .ComposeTestCheckFunc (
39
- resource .TestCheckResourceAttr ("data.scaleway_object_bucket.selected" , "name" , bucketName ),
60
+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base-01" , true ),
61
+ resource .TestCheckResourceAttr ("data.scaleway_object_bucket.by-name" , "name" , bucketName ),
40
62
),
41
63
},
64
+ {
65
+ Config : fmt .Sprintf (`
66
+ resource "scaleway_object_bucket" "base-01" {
67
+ name = "%s"
68
+ region = "%s"
69
+ tags = {
70
+ foo = "bar"
71
+ }
72
+ }
73
+
74
+ data "scaleway_object_bucket" "by-name" {
75
+ name = scaleway_object_bucket.base-01.name
76
+ }
77
+ ` , bucketName , objectTestsMainRegion ),
78
+ Check : resource .ComposeTestCheckFunc (
79
+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base-01" , true ),
80
+ resource .TestCheckResourceAttr ("data.scaleway_object_bucket.by-name" , "name" , bucketName ),
81
+ ),
82
+ ExpectError : regexp .MustCompile ("failed getting Object Storage bucket" ),
83
+ },
42
84
},
43
85
})
44
86
}
45
87
46
- func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed (t * testing.T ) {
88
+ func TestAccScalewayDataSourceObjectBucket_ProjectIDAllowed (t * testing.T ) {
47
89
tt := NewTestTools (t )
48
90
defer tt .Cleanup ()
49
91
bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
@@ -60,7 +102,7 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed(t *testing.T) {
60
102
func (s * terraform.State ) error {
61
103
return terminateFakeSideProject ()
62
104
},
63
- testAccCheckScalewayObjectDestroy (tt ),
105
+ testAccCheckScalewayObjectBucketDestroy (tt ),
64
106
),
65
107
Steps : []resource.TestStep {
66
108
// Create a bucket from the main provider into the side project and read it from the side provider
@@ -70,17 +112,20 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed(t *testing.T) {
70
112
resource "scaleway_object_bucket" "base" {
71
113
name = "%[1]s"
72
114
project_id = "%[2]s"
115
+ region = "%[3]s"
73
116
}
74
117
75
118
data "scaleway_object_bucket" "selected" {
76
- name = scaleway_object_bucket.base.name
119
+ name = scaleway_object_bucket.base.id
77
120
provider = side
78
121
}
79
122
` ,
80
123
bucketName ,
81
124
project .ID ,
125
+ objectTestsMainRegion ,
82
126
),
83
127
Check : resource .ComposeTestCheckFunc (
128
+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base" , false ),
84
129
resource .TestCheckResourceAttr ("data.scaleway_object_bucket.selected" , "name" , bucketName ),
85
130
resource .TestCheckResourceAttr ("data.scaleway_object_bucket.selected" , "project_id" , project .ID ),
86
131
),
@@ -89,7 +134,7 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed(t *testing.T) {
89
134
})
90
135
}
91
136
92
- func TestAccScalewayDataSourceObjectStorage_ProjectIDForbidden (t * testing.T ) {
137
+ func TestAccScalewayDataSourceObjectBucket_ProjectIDForbidden (t * testing.T ) {
93
138
tt := NewTestTools (t )
94
139
defer tt .Cleanup ()
95
140
bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
@@ -106,24 +151,27 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDForbidden(t *testing.T) {
106
151
func (s * terraform.State ) error {
107
152
return terminateFakeSideProject ()
108
153
},
109
- testAccCheckScalewayObjectDestroy (tt ),
154
+ testAccCheckScalewayObjectBucketDestroy (tt ),
110
155
),
111
156
Steps : []resource.TestStep {
112
157
// The side provider should not be able to read the bucket from the main project
113
158
{
114
159
Config : fmt .Sprintf (`
115
160
resource "scaleway_object_bucket" "base" {
116
161
name = "%[1]s"
162
+ region = "%[3]s"
117
163
}
118
164
119
165
data "scaleway_object_bucket" "selected" {
120
- name = scaleway_object_bucket.base.name
166
+ name = scaleway_object_bucket.base.id
121
167
provider = side
122
168
}
123
169
` ,
124
170
bucketName ,
125
171
project .ID ,
172
+ objectTestsMainRegion ,
126
173
),
174
+ Check : testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base" , false ),
127
175
ExpectError : regexp .MustCompile ("failed getting Object Storage bucket" ),
128
176
},
129
177
},
0 commit comments