]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - statuscake/resource_statuscaketest_test.go
Merge branch 'fix_read_test' of github.com:alexandreFre/terraform-provider-statuscake
[github/fretlink/terraform-provider-statuscake.git] / statuscake / resource_statuscaketest_test.go
index da3a349159d3ced4a86ce89534b09ad66099bf40..71362f7d67aae42d9527cb90354961697bfb8f95 100644 (file)
@@ -2,6 +2,7 @@ package statuscake
 
 import (
        "fmt"
+       "os"
        "strconv"
        "testing"
 
@@ -19,7 +20,26 @@ func TestAccStatusCake_basic(t *testing.T) {
                CheckDestroy: testAccTestCheckDestroy(&test),
                Steps: []resource.TestStep{
                        {
-                               Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId),
+                               Config: interpolateTerraformTemplate(testAccTestConfig_basic),
+                               Check: resource.ComposeTestCheckFunc(
+                                       testAccTestCheckExists("statuscake_test.google", &test),
+                                       testAccTestCheckAttributes("statuscake_test.google", &test),
+                               ),
+                       },
+               },
+       })
+}
+
+func TestAccStatusCake_basic_deprecated_contact_ID(t *testing.T) {
+       var test statuscake.Test
+
+       resource.Test(t, resource.TestCase{
+               PreCheck:     func() { testAccPreCheck(t) },
+               Providers:    testAccProviders,
+               CheckDestroy: testAccTestCheckDestroy(&test),
+               Steps: []resource.TestStep{
+                       {
+                               Config: interpolateTerraformTemplate(testAccTestConfig_deprecated),
                                Check: resource.ComposeTestCheckFunc(
                                        testAccTestCheckExists("statuscake_test.google", &test),
                                        testAccTestCheckAttributes("statuscake_test.google", &test),
@@ -38,7 +58,7 @@ func TestAccStatusCake_tcp(t *testing.T) {
                CheckDestroy: testAccTestCheckDestroy(&test),
                Steps: []resource.TestStep{
                        {
-                               Config: fmt.Sprintf(testAccTestConfig_tcp, testContactGroupId),
+                               Config: interpolateTerraformTemplate(testAccTestConfig_tcp),
                                Check: resource.ComposeTestCheckFunc(
                                        testAccTestCheckExists("statuscake_test.google", &test),
                                        testAccTestCheckAttributes("statuscake_test.google", &test),
@@ -57,7 +77,7 @@ func TestAccStatusCake_withUpdate(t *testing.T) {
                CheckDestroy: testAccTestCheckDestroy(&test),
                Steps: []resource.TestStep{
                        {
-                               Config: fmt.Sprintf(testAccTestConfig_basic, testContactGroupId),
+                               Config: interpolateTerraformTemplate(testAccTestConfig_basic),
                                Check: resource.ComposeTestCheckFunc(
                                        testAccTestCheckExists("statuscake_test.google", &test),
                                ),
@@ -71,7 +91,6 @@ func TestAccStatusCake_withUpdate(t *testing.T) {
                                        resource.TestCheckResourceAttr("statuscake_test.google", "check_rate", "500"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "paused", "true"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "timeout", "40"),
-                                       resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", "0"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "confirmations", "0"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "trigger_rate", "20"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "custom_header", "{ \"Content-Type\": \"application/x-www-form-urlencoded\" }"),
@@ -90,11 +109,12 @@ func TestAccStatusCake_withUpdate(t *testing.T) {
                                        resource.TestCheckResourceAttr("statuscake_test.google", "find_string", "string15212"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "do_not_find", "false"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "real_browser", "1"),
-                                       resource.TestCheckResourceAttr("statuscake_test.google", "test_tags", "string8191"),
+                                       resource.TestCheckResourceAttr("statuscake_test.google", "test_tags.#", "1"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "status_codes", "string23065"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "use_jar", "1"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "post_raw", "string32096"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "final_endpoint", "string10781"),
+                                       resource.TestCheckResourceAttr("statuscake_test.google", "enable_ssl_alert", "false"),
                                        resource.TestCheckResourceAttr("statuscake_test.google", "follow_redirect", "true"),
                                ),
                        },
@@ -158,8 +178,13 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC
                                err = check(key, value, strconv.FormatBool(test.Paused))
                        case "timeout":
                                err = check(key, value, strconv.Itoa(test.Timeout))
-                       case "contact_id":
-                               err = check(key, value, strconv.Itoa(test.ContactID))
+                       case "contact_group":
+                               for _, tv := range test.ContactGroup {
+                                       err = check(key, value, tv)
+                                       if err != nil {
+                                               return err
+                                       }
+                               }
                        case "confirmations":
                                err = check(key, value, strconv.Itoa(test.Confirmation))
                        case "trigger_rate":
@@ -189,6 +214,8 @@ func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestC
                                err = check(key, value, test.PostRaw)
                        case "final_endpoint":
                                err = check(key, value, test.FinalEndpoint)
+                       case "enable_ssl_alert":
+                               err = check(key, value, strconv.FormatBool(test.EnableSSLAlert))
                        case "follow_redirect":
                                err = check(key, value, strconv.FormatBool(test.FollowRedirect))
                        }
@@ -212,6 +239,16 @@ func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc {
        }
 }
 
+func interpolateTerraformTemplate(template string) string {
+       testContactGroupId := "43402"
+
+       if v := os.Getenv("STATUSCAKE_TEST_CONTACT_GROUP_ID"); v != "" {
+               testContactGroupId = v
+       }
+
+       return fmt.Sprintf(template, testContactGroupId)
+}
+
 const testAccTestConfig_basic = `
 resource "statuscake_test" "google" {
        website_name = "google.com"
@@ -219,12 +256,23 @@ resource "statuscake_test" "google" {
        test_type = "HTTP"
        check_rate = 300
        timeout = 10
-       contact_id = %d
+       contact_group = ["%s"]
+       confirmations = 1
+       trigger_rate = 10
+}
+`
+const testAccTestConfig_deprecated = `
+resource "statuscake_test" "google" {
+       website_name = "google.com"
+       website_url = "www.google.com"
+       test_type = "HTTP"
+       check_rate = 300
+       timeout = 10
+       contact_id = %s
        confirmations = 1
        trigger_rate = 10
 }
 `
-
 const testAccTestConfig_update = `
 resource "statuscake_test" "google" {
        website_name = "google.com"
@@ -247,11 +295,12 @@ resource "statuscake_test" "google" {
        find_string = "string15212"
        do_not_find = false
        real_browser = 1
-       test_tags = "string8191"
+       test_tags = ["string8191"]
        status_codes = "string23065"
        use_jar = 1
        post_raw = "string32096"
        final_endpoint = "string10781"
+       enable_ssl_alert = false
        follow_redirect = true
 }
 `
@@ -263,7 +312,7 @@ resource "statuscake_test" "google" {
        test_type = "TCP"
        check_rate = 300
        timeout = 10
-       contact_id = %d
+       contact_group = ["%s"]
        confirmations = 1
        port = 80
 }