newTest := &statuscake.Test{
WebsiteName: d.Get("website_name").(string),
WebsiteURL: d.Get("website_url").(string),
- TestType: d.Get("test_type").(string),
CheckRate: d.Get("check_rate").(int),
+ TestType: d.Get("test_type").(string),
+ Paused: d.Get("paused").(bool),
+ Timeout: d.Get("timeout").(int),
+ ContactID: d.Get("contact_id").(int),
}
log.Printf("[DEBUG] Creating new StatusCake Test: %s", d.Get("website_name").(string))
if err != nil {
return fmt.Errorf("Error Getting StatusCake Test Details for %s: Error: %s", d.Id(), err)
}
+ d.Set("website_name", testResp.WebsiteName)
+ d.Set("website_url", testResp.WebsiteURL)
d.Set("check_rate", testResp.CheckRate)
+ d.Set("test_type", testResp.TestType)
+ d.Set("paused", testResp.Paused)
+ d.Set("timeout", testResp.Timeout)
+ d.Set("contact_id", testResp.ContactID)
return nil
}
Config: testAccTestConfig_basic,
Check: resource.ComposeTestCheckFunc(
testAccTestCheckExists("statuscake_test.google", &test),
+ testAccTestCheckAttributes("statuscake_test.google", &test),
),
},
},
Config: testAccTestConfig_update,
Check: resource.ComposeTestCheckFunc(
testAccTestCheckExists("statuscake_test.google", &test),
+ testAccTestCheckAttributes("statuscake_test.google", &test),
resource.TestCheckResourceAttr("statuscake_test.google", "check_rate", "500"),
resource.TestCheckResourceAttr("statuscake_test.google", "paused", "true"),
- resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", "23456"),
+ resource.TestCheckResourceAttr("statuscake_test.google", "contact_id", "0"),
),
},
},
gotTest, err := client.Tests().Detail(testId)
if err != nil {
- return fmt.Errorf("error getting project: %s", err)
+ return fmt.Errorf("error getting test: %s", err)
}
*test = *gotTest
}
}
+func testAccTestCheckAttributes(rn string, test *statuscake.Test) resource.TestCheckFunc {
+ return func(s *terraform.State) error {
+ attrs := s.RootModule().Resources[rn].Primary.Attributes
+
+ check := func(key, stateValue, testValue string) error {
+ if testValue != stateValue {
+ return fmt.Errorf("different values for %s in state (%s) and in statuscake (%s)",
+ key, stateValue, testValue)
+ }
+ return nil
+ }
+
+ for key, value := range attrs {
+ var err error
+
+ switch key {
+ case "website_name":
+ err = check(key, value, test.WebsiteName)
+ case "website_url":
+ err = check(key, value, test.WebsiteURL)
+ case "check_rate":
+ err = check(key, value, strconv.Itoa(test.CheckRate))
+ case "test_type":
+ err = check(key, value, test.TestType)
+ case "paused":
+ 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))
+ }
+
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+ }
+}
+
func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc {
return func(s *terraform.State) error {
client := testAccProvider.Meta().(*statuscake.Client)
test_type = "HTTP"
check_rate = 500
paused = true
- contact_id = 23456
}
`