@@ -11,9 +11,10 @@ import (
1111 "testing"
1212)
1313
14- func TestAccResourceRedisCloudEssentialsSubscription_FreeCRUDI (t * testing.T ) {
14+ func TestAccResourceRedisCloudEssentialsSubscription_Free_CRUDI (t * testing.T ) {
1515
16- testAccRequiresEnvVar (t , "EXECUTE_TESTS" )
16+ // TODO: remove comments: temp
17+ //testAccRequiresEnvVar(t, "EXECUTE_TESTS")
1718
1819 subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
1920 subscriptionNameUpdated := subscriptionName + "-updated"
@@ -76,9 +77,10 @@ func TestAccResourceRedisCloudEssentialsSubscription_FreeCRUDI(t *testing.T) {
7677 })
7778}
7879
79- func TestAccResourceRedisCloudEssentialsSubscription_PaidCRUDI (t * testing.T ) {
80+ func TestAccResourceRedisCloudEssentialsSubscription_Paid_CreditCard_CRUDI (t * testing.T ) {
8081
81- testAccRequiresEnvVar (t , "EXECUTE_TESTS" )
82+ // TODO: remove comments: temp
83+ //testAccRequiresEnvVar(t, "EXECUTE_TESTS")
8284
8385 subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
8486 subscriptionNameUpdated := subscriptionName + "-updated"
@@ -142,6 +144,141 @@ func TestAccResourceRedisCloudEssentialsSubscription_PaidCRUDI(t *testing.T) {
142144 })
143145}
144146
147+ func TestAccResourceRedisCloudEssentialsSubscription_Paid_NoPaymentType_CRUDI (t * testing.T ) {
148+
149+ // TODO: remove comments: temp
150+ //testAccRequiresEnvVar(t, "EXECUTE_TESTS")
151+
152+ subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
153+ subscriptionNameUpdated := subscriptionName + "-updated"
154+
155+ const resourceName = "rediscloud_essentials_subscription.example"
156+ const datasourceName = "data.rediscloud_essentials_subscription.example"
157+
158+ resource .ParallelTest (t , resource.TestCase {
159+ PreCheck : func () { testAccPreCheck (t ) },
160+ ProviderFactories : providerFactories ,
161+ CheckDestroy : testAccCheckEssentialsSubscriptionDestroy ,
162+ Steps : []resource.TestStep {
163+ {
164+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidNoPaymentTypeEssentialsSubscription , subscriptionName ),
165+ Check : resource .ComposeAggregateTestCheckFunc (
166+ // Test the resource
167+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
168+ resource .TestCheckResourceAttr (resourceName , "name" , subscriptionName ),
169+ resource .TestCheckResourceAttr (resourceName , "status" , "active" ),
170+ resource .TestCheckResourceAttrSet (resourceName , "plan_id" ),
171+ resource .TestCheckResourceAttrSet (resourceName , "payment_method" ),
172+ resource .TestCheckResourceAttrSet (resourceName , "payment_method_id" ),
173+ resource .TestCheckResourceAttrSet (resourceName , "creation_date" ),
174+
175+ // Test the datasource
176+ resource .TestCheckResourceAttrSet (datasourceName , "id" ),
177+ resource .TestCheckResourceAttr (datasourceName , "name" , subscriptionName ),
178+ resource .TestCheckResourceAttr (datasourceName , "status" , "active" ),
179+ resource .TestCheckResourceAttrSet (datasourceName , "plan_id" ),
180+ resource .TestCheckResourceAttrSet (datasourceName , "payment_method_id" ),
181+ resource .TestCheckResourceAttrSet (datasourceName , "creation_date" ),
182+ ),
183+ },
184+ {
185+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidNoPaymentTypeEssentialsSubscription , subscriptionNameUpdated ),
186+ Check : resource .ComposeAggregateTestCheckFunc (
187+ // Test the resource
188+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
189+ resource .TestCheckResourceAttr (resourceName , "name" , subscriptionNameUpdated ),
190+ resource .TestCheckResourceAttr (resourceName , "status" , "active" ),
191+ resource .TestCheckResourceAttrSet (resourceName , "plan_id" ),
192+ resource .TestCheckResourceAttrSet (resourceName , "payment_method_id" ),
193+ resource .TestCheckResourceAttrSet (resourceName , "creation_date" ),
194+
195+ // Test the datasource
196+ resource .TestCheckResourceAttrSet (datasourceName , "id" ),
197+ resource .TestCheckResourceAttr (datasourceName , "name" , subscriptionNameUpdated ),
198+ resource .TestCheckResourceAttr (datasourceName , "status" , "active" ),
199+ resource .TestCheckResourceAttrSet (datasourceName , "plan_id" ),
200+ resource .TestCheckResourceAttrSet (datasourceName , "payment_method_id" ),
201+ resource .TestCheckResourceAttrSet (datasourceName , "creation_date" ),
202+ ),
203+ },
204+ {
205+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidNoPaymentTypeEssentialsSubscription , subscriptionNameUpdated ),
206+ ResourceName : resourceName ,
207+ ImportState : true ,
208+ ImportStateVerify : true ,
209+ },
210+ },
211+ })
212+ }
213+
214+ func TestAccResourceRedisCloudEssentialsSubscription_Paid_Marketplace_CRUDI (t * testing.T ) {
215+
216+ // TODO: remove comments: temp
217+ //testAccRequiresEnvVar(t, "EXECUTE_TESTS")
218+
219+ subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
220+ subscriptionNameUpdated := subscriptionName + "-updated"
221+
222+ const resourceName = "rediscloud_essentials_subscription.example"
223+ const datasourceName = "data.rediscloud_essentials_subscription.example"
224+
225+ resource .ParallelTest (t , resource.TestCase {
226+ PreCheck : func () { testAccPreCheck (t ) },
227+ ProviderFactories : providerFactories ,
228+ CheckDestroy : testAccCheckEssentialsSubscriptionDestroy ,
229+ Steps : []resource.TestStep {
230+ {
231+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidMarketplaceEssentialsSubscription , subscriptionName ),
232+ Check : resource .ComposeAggregateTestCheckFunc (
233+ // Test the resource
234+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
235+ resource .TestCheckResourceAttr (resourceName , "name" , subscriptionName ),
236+ resource .TestCheckResourceAttr (resourceName , "status" , "active" ),
237+ resource .TestCheckResourceAttrSet (resourceName , "plan_id" ),
238+ resource .TestCheckResourceAttr (resourceName , "payment_method" , "credit-card" ),
239+ resource .TestCheckResourceAttrSet (resourceName , "payment_method_id" ),
240+ resource .TestCheckResourceAttrSet (resourceName , "creation_date" ),
241+
242+ // Test the datasource
243+ resource .TestCheckResourceAttrSet (datasourceName , "id" ),
244+ resource .TestCheckResourceAttr (datasourceName , "name" , subscriptionName ),
245+ resource .TestCheckResourceAttr (datasourceName , "status" , "active" ),
246+ resource .TestCheckResourceAttrSet (datasourceName , "plan_id" ),
247+ resource .TestCheckResourceAttrSet (datasourceName , "payment_method_id" ),
248+ resource .TestCheckResourceAttrSet (datasourceName , "creation_date" ),
249+ ),
250+ },
251+ {
252+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidMarketplaceEssentialsSubscription , subscriptionNameUpdated ),
253+ Check : resource .ComposeAggregateTestCheckFunc (
254+ // Test the resource
255+ resource .TestCheckResourceAttrSet (resourceName , "id" ),
256+ resource .TestCheckResourceAttr (resourceName , "name" , subscriptionNameUpdated ),
257+ resource .TestCheckResourceAttr (resourceName , "status" , "active" ),
258+ resource .TestCheckResourceAttrSet (resourceName , "plan_id" ),
259+ resource .TestCheckResourceAttr (resourceName , "payment_method" , "credit-card" ),
260+ resource .TestCheckResourceAttrSet (resourceName , "payment_method_id" ),
261+ resource .TestCheckResourceAttrSet (resourceName , "creation_date" ),
262+
263+ // Test the datasource
264+ resource .TestCheckResourceAttrSet (datasourceName , "id" ),
265+ resource .TestCheckResourceAttr (datasourceName , "name" , subscriptionNameUpdated ),
266+ resource .TestCheckResourceAttr (datasourceName , "status" , "active" ),
267+ resource .TestCheckResourceAttrSet (datasourceName , "plan_id" ),
268+ resource .TestCheckResourceAttrSet (datasourceName , "payment_method_id" ),
269+ resource .TestCheckResourceAttrSet (datasourceName , "creation_date" ),
270+ ),
271+ },
272+ {
273+ Config : fmt .Sprintf (testAccResourceRedisCloudPaidMarketplaceEssentialsSubscription , subscriptionNameUpdated ),
274+ ResourceName : resourceName ,
275+ ImportState : true ,
276+ ImportStateVerify : true ,
277+ },
278+ },
279+ })
280+ }
281+
145282const testAccResourceRedisCloudFreeEssentialsSubscription = `
146283data "rediscloud_essentials_plan" "example" {
147284 name = "30MB"
@@ -205,6 +342,29 @@ data "rediscloud_essentials_subscription" "example" {
205342}
206343`
207344
345+ // doesn't contain credit-card, tests for default
346+ const testAccResourceRedisCloudPaidNoPaymentTypeEssentialsSubscription = `
347+ data "rediscloud_payment_method" "card" {
348+ card_type = "Visa"
349+ }
350+
351+ data "rediscloud_essentials_plan" "example" {
352+ name = "250MB"
353+ cloud_provider = "AWS"
354+ region = "us-east-1"
355+ }
356+
357+ resource "rediscloud_essentials_subscription" "example" {
358+ name = "%s"
359+ plan_id = data.rediscloud_essentials_plan.example.id
360+ payment_method_id = data.rediscloud_payment_method.card.id
361+ }
362+
363+ data "rediscloud_essentials_subscription" "example" {
364+ name = rediscloud_essentials_subscription.example.name
365+ }
366+ `
367+
208368func testAccCheckEssentialsSubscriptionDestroy (s * terraform.State ) error {
209369 client := testProvider .Meta ().(* apiClient )
210370
0 commit comments