@@ -12,38 +12,80 @@ import (
1212 "github.com/stretchr/testify/require"
1313)
1414
15- func TestAccScalewayDataSourceObjectStorage_Basic (t * testing.T ) {
15+ func TestAccScalewayDataSourceObjectBucket_Basic (t * testing.T ) {
1616 tt := NewTestTools (t )
1717 defer tt .Cleanup ()
1818 bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
19- // resourceName := "data.scaleway_object_bucket.main"
19+ objectBucketTestDefaultRegion , _ := tt .Meta .scwClient .GetDefaultRegion ()
20+
2021 resource .ParallelTest (t , resource.TestCase {
2122 PreCheck : func () { testAccPreCheck (t ) },
2223 ProviderFactories : tt .ProviderFactories ,
23- CheckDestroy : testAccCheckScalewayRdbInstanceDestroy (tt ),
24+ CheckDestroy : testAccCheckScalewayObjectBucketDestroy (tt ),
2425 Steps : []resource.TestStep {
2526 {
2627 Config : fmt .Sprintf (`
2728 resource "scaleway_object_bucket" "base-01" {
2829 name = "%s"
30+ region = "%s"
2931 tags = {
3032 foo = "bar"
3133 }
3234 }
3335
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" {
3556 name = scaleway_object_bucket.base-01.name
3657 }
37- ` , bucketName ),
58+ ` , bucketName , objectBucketTestDefaultRegion ),
3859 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 ),
4062 ),
4163 },
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+ },
4284 },
4385 })
4486}
4587
46- func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed (t * testing.T ) {
88+ func TestAccScalewayDataSourceObjectBucket_ProjectIDAllowed (t * testing.T ) {
4789 tt := NewTestTools (t )
4890 defer tt .Cleanup ()
4991 bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
@@ -60,7 +102,7 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed(t *testing.T) {
60102 func (s * terraform.State ) error {
61103 return terminateFakeSideProject ()
62104 },
63- testAccCheckScalewayObjectDestroy (tt ),
105+ testAccCheckScalewayObjectBucketDestroy (tt ),
64106 ),
65107 Steps : []resource.TestStep {
66108 // 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) {
70112 resource "scaleway_object_bucket" "base" {
71113 name = "%[1]s"
72114 project_id = "%[2]s"
115+ region = "%[3]s"
73116 }
74117
75118 data "scaleway_object_bucket" "selected" {
76- name = scaleway_object_bucket.base.name
119+ name = scaleway_object_bucket.base.id
77120 provider = side
78121 }
79122 ` ,
80123 bucketName ,
81124 project .ID ,
125+ objectTestsMainRegion ,
82126 ),
83127 Check : resource .ComposeTestCheckFunc (
128+ testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base" , false ),
84129 resource .TestCheckResourceAttr ("data.scaleway_object_bucket.selected" , "name" , bucketName ),
85130 resource .TestCheckResourceAttr ("data.scaleway_object_bucket.selected" , "project_id" , project .ID ),
86131 ),
@@ -89,7 +134,7 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDAllowed(t *testing.T) {
89134 })
90135}
91136
92- func TestAccScalewayDataSourceObjectStorage_ProjectIDForbidden (t * testing.T ) {
137+ func TestAccScalewayDataSourceObjectBucket_ProjectIDForbidden (t * testing.T ) {
93138 tt := NewTestTools (t )
94139 defer tt .Cleanup ()
95140 bucketName := sdkacctest .RandomWithPrefix ("test-acc-scaleway-object-bucket" )
@@ -106,24 +151,27 @@ func TestAccScalewayDataSourceObjectStorage_ProjectIDForbidden(t *testing.T) {
106151 func (s * terraform.State ) error {
107152 return terminateFakeSideProject ()
108153 },
109- testAccCheckScalewayObjectDestroy (tt ),
154+ testAccCheckScalewayObjectBucketDestroy (tt ),
110155 ),
111156 Steps : []resource.TestStep {
112157 // The side provider should not be able to read the bucket from the main project
113158 {
114159 Config : fmt .Sprintf (`
115160 resource "scaleway_object_bucket" "base" {
116161 name = "%[1]s"
162+ region = "%[3]s"
117163 }
118164
119165 data "scaleway_object_bucket" "selected" {
120- name = scaleway_object_bucket.base.name
166+ name = scaleway_object_bucket.base.id
121167 provider = side
122168 }
123169 ` ,
124170 bucketName ,
125171 project .ID ,
172+ objectTestsMainRegion ,
126173 ),
174+ Check : testAccCheckScalewayObjectBucketExistsForceRegion (tt , "scaleway_object_bucket.base" , false ),
127175 ExpectError : regexp .MustCompile ("failed getting Object Storage bucket" ),
128176 },
129177 },
0 commit comments