Required: true,
},
+ "contact_id": &schema.Schema{
+ Type: schema.TypeInt,
+ Optional: true,
+ },
+
"check_rate": &schema.Schema{
Type: schema.TypeInt,
Optional: true,
WebsiteURL: d.Get("website_url").(string),
TestType: d.Get("test_type").(string),
CheckRate: d.Get("check_rate").(int),
+ ContactID: d.Get("contact_id").(int),
}
log.Printf("[DEBUG] Creating new StatusCake Test: %s", d.Get("website_name").(string))
if v, ok := d.GetOk("check_rate"); ok {
test.CheckRate = v.(int)
}
+ if v, ok := d.GetOk("contact_id"); ok {
+ test.ContactID = v.(int)
+ }
if v, ok := d.GetOk("test_type"); ok {
test.TestType = v.(string)
}
import (
"fmt"
+ "os"
"strconv"
"testing"
"github.com/hashicorp/terraform/terraform"
)
+// check to ensure that contact group id is provided before running
+// tests on it.
+func testAccContactGroupPreCheck(t *testing.T, testAlt bool) {
+ if v := os.Getenv("CONTACT_GROUP"); v == "" {
+ t.Fatal("CONTACT_GROUP must be set for contact group acceptance tests")
+ }
+ if testAlt {
+ if v := os.Getenv("ALT_CONTACT_GROUP"); v == "" {
+ t.Fatal("ALT_CONTACT_GROUP must be set for contact group acceptance tests")
+ }
+ }
+}
+
func TestAccStatusCake_basic(t *testing.T) {
var test statuscake.Test
})
}
+func TestAccStatusCake_contactGroup_basic(t *testing.T) {
+ var test statuscake.Test
+
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ testAccPreCheck(t)
+ testAccContactGroupPreCheck(t, false)
+ },
+ Providers: testAccProviders,
+ CheckDestroy: testAccTestCheckDestroy(&test),
+ Steps: []resource.TestStep{
+ resource.TestStep{
+ Config: testAccTestConfig_contactGroup,
+ Check: resource.ComposeTestCheckFunc(
+ testAccTestCheckExists("statuscake_test.google", &test),
+ ),
+ },
+ },
+ })
+}
+
+func TestAccStatusCake_contactGroup_withUpdate(t *testing.T) {
+ var test statuscake.Test
+ var altContactGroup = os.Getenv("ALT_CONTACT_GROUP")
+
+ resource.Test(t, resource.TestCase{
+ PreCheck: func() {
+ testAccPreCheck(t)
+ testAccContactGroupPreCheck(t, true)
+ },
+ Providers: testAccProviders,
+ CheckDestroy: testAccTestCheckDestroy(&test),
+ Steps: []resource.TestStep{
+ resource.TestStep{
+ Config: testAccTestConfig_contactGroup,
+ Check: resource.ComposeTestCheckFunc(
+ testAccTestCheckExists("statuscake_test.google", &test),
+ ),
+ },
+ // make sure to creat
+ resource.TestStep{
+ Config: testAccTestConfig_contactGroup_update,
+ Check: resource.ComposeTestCheckFunc(
+ testAccTestCheckExists("statuscake_test.google", &test),
+ resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", altContactGroup),
+ ),
+ },
+ },
+ })
+}
+
func testAccTestCheckExists(rn string, test *statuscake.Test) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[rn]
paused = true
}
`
+
+var testAccTestConfig_contactGroup string = `` +
+ `resource "statuscake_test" "google" {
+ website_name = "google.com"
+ website_url = "www.google.com"
+ test_type = "HTTP"
+ check_rate = 300
+ contact_id = ` + os.Getenv("CONTACT_GROUP") + `
+ }`
+
+var testAccTestConfig_contactGroup_update string = `` +
+ `resource "statuscake_test" "google" {
+ website_name = "google.com"
+ website_url = "www.google.com"
+ test_type = "HTTP"
+ check_rate = 300
+ contact_id = ` + os.Getenv("ALT_CONTACT_GROUP") + `
+ }`