11package block_test
22
33import (
4- "fmt"
54 "testing"
65
76 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8- "github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
9- blockSDK "github.com/scaleway/scaleway-sdk-go/api/block/v1alpha1"
107 "github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
11- "github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
12- "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/block"
8+ "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/block/testfuncs"
139)
1410
1511func TestAccVolume_Basic (t * testing.T ) {
@@ -19,7 +15,7 @@ func TestAccVolume_Basic(t *testing.T) {
1915 resource .ParallelTest (t , resource.TestCase {
2016 PreCheck : func () { acctest .PreCheck (t ) },
2117 ProviderFactories : tt .ProviderFactories ,
22- CheckDestroy : isVolumeDestroyed (tt ),
18+ CheckDestroy : blocktestfuncs . IsVolumeDestroyed (tt ),
2319 Steps : []resource.TestStep {
2420 {
2521 Config : `
@@ -30,7 +26,7 @@ func TestAccVolume_Basic(t *testing.T) {
3026 }
3127 ` ,
3228 Check : resource .ComposeTestCheckFunc (
33- isVolumePresent (tt , "scaleway_block_volume.main" ),
29+ blocktestfuncs . IsVolumePresent (tt , "scaleway_block_volume.main" ),
3430 acctest .CheckResourceAttrUUID ("scaleway_block_volume.main" , "id" ),
3531 resource .TestCheckResourceAttr ("scaleway_block_volume.main" , "name" , "test-block-volume-basic" ),
3632 resource .TestCheckResourceAttr ("scaleway_block_volume.main" , "size_in_gb" , "20" ),
@@ -47,7 +43,7 @@ func TestAccVolume_FromSnapshot(t *testing.T) {
4743 resource .ParallelTest (t , resource.TestCase {
4844 PreCheck : func () { acctest .PreCheck (t ) },
4945 ProviderFactories : tt .ProviderFactories ,
50- CheckDestroy : isVolumeDestroyed (tt ),
46+ CheckDestroy : blocktestfuncs . IsVolumeDestroyed (tt ),
5147 Steps : []resource.TestStep {
5248 {
5349 Config : `
@@ -69,7 +65,7 @@ func TestAccVolume_FromSnapshot(t *testing.T) {
6965 }
7066 ` ,
7167 Check : resource .ComposeTestCheckFunc (
72- isVolumePresent (tt , "scaleway_block_volume.main" ),
68+ blocktestfuncs . IsVolumePresent (tt , "scaleway_block_volume.main" ),
7369 acctest .CheckResourceAttrUUID ("scaleway_block_volume.main" , "id" ),
7470 resource .TestCheckResourceAttrPair ("scaleway_block_volume.main" , "snapshot_id" , "scaleway_block_snapshot.main" , "id" ),
7571 resource .TestCheckResourceAttrPair ("scaleway_block_volume.main" , "size_in_gb" , "scaleway_block_volume.base" , "size_in_gb" ),
@@ -78,57 +74,3 @@ func TestAccVolume_FromSnapshot(t *testing.T) {
7874 },
7975 })
8076}
81-
82- func isVolumePresent (tt * acctest.TestTools , n string ) resource.TestCheckFunc {
83- return func (state * terraform.State ) error {
84- rs , ok := state .RootModule ().Resources [n ]
85- if ! ok {
86- return fmt .Errorf ("resource not found: %s" , n )
87- }
88-
89- api , zone , id , err := block .NewAPIWithZoneAndID (tt .Meta , rs .Primary .ID )
90- if err != nil {
91- return err
92- }
93-
94- _ , err = api .GetVolume (& blockSDK.GetVolumeRequest {
95- VolumeID : id ,
96- Zone : zone ,
97- })
98- if err != nil {
99- return err
100- }
101-
102- return nil
103- }
104- }
105-
106- func isVolumeDestroyed (tt * acctest.TestTools ) resource.TestCheckFunc {
107- return func (state * terraform.State ) error {
108- for _ , rs := range state .RootModule ().Resources {
109- if rs .Type != "scaleway_block_volume" {
110- continue
111- }
112-
113- api , zone , id , err := block .NewAPIWithZoneAndID (tt .Meta , rs .Primary .ID )
114- if err != nil {
115- return err
116- }
117-
118- err = api .DeleteVolume (& blockSDK.DeleteVolumeRequest {
119- VolumeID : id ,
120- Zone : zone ,
121- })
122-
123- if err == nil {
124- return fmt .Errorf ("block volume (%s) still exists" , rs .Primary .ID )
125- }
126-
127- if ! httperrors .Is404 (err ) && ! httperrors .Is410 (err ) {
128- return err
129- }
130- }
131-
132- return nil
133- }
134- }
0 commit comments