]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/commitdiff
Added some acceptance tests for the statuscake provider
authorstack72 <public@paulstack.co.uk>
Thu, 8 Oct 2015 14:36:11 +0000 (15:36 +0100)
committerstack72 <public@paulstack.co.uk>
Fri, 27 Nov 2015 15:03:13 +0000 (15:03 +0000)
provider.go
resource_statuscaketest.go
resource_statuscaketest_test.go

index 7d96e0ebf987255dd0ac1f3688afca8ecfaa1263..abca37698274568c5ddc4d84d1c18ba5aa4db892 100644 (file)
@@ -1,7 +1,7 @@
 package statuscake
 
 import (
-       wtf "github.com/DreamItGetIT/statuscake"
+       "github.com/DreamItGetIT/statuscake"
        "github.com/hashicorp/terraform/helper/schema"
        "github.com/hashicorp/terraform/terraform"
 )
@@ -32,9 +32,9 @@ func Provider() terraform.ResourceProvider {
 }
 
 func providerConfigure(d *schema.ResourceData) (interface{}, error) {
-       auth := wtf.Auth{
+       auth := statuscake.Auth{
                Username: d.Get("username").(string),
                Apikey:   d.Get("apikey").(string),
        }
-       return wtf.New(auth)
+       return statuscake.New(auth)
 }
index 17488a565254f4727bcc64fcddd00edd540d7486..7f5ff67bb3ce7423367f8fd9fc03c463bb6c0e1c 100644 (file)
@@ -6,7 +6,7 @@ import (
 
        "log"
 
-       wtf "github.com/DreamItGetIT/statuscake"
+       "github.com/DreamItGetIT/statuscake"
        "github.com/hashicorp/terraform/helper/schema"
 )
 
@@ -58,9 +58,9 @@ func resourceStatusCakeTest() *schema.Resource {
 }
 
 func CreateTest(d *schema.ResourceData, meta interface{}) error {
-       client := meta.(*wtf.Client)
+       client := meta.(*statuscake.Client)
 
-       newTest := &wtf.Test{
+       newTest := &statuscake.Test{
                WebsiteName: d.Get("website_name").(string),
                WebsiteURL:  d.Get("website_url").(string),
                TestType:    d.Get("test_type").(string),
@@ -81,7 +81,7 @@ func CreateTest(d *schema.ResourceData, meta interface{}) error {
 }
 
 func UpdateTest(d *schema.ResourceData, meta interface{}) error {
-       client := meta.(*wtf.Client)
+       client := meta.(*statuscake.Client)
 
        params := getStatusCakeTestInput(d)
 
@@ -94,7 +94,7 @@ func UpdateTest(d *schema.ResourceData, meta interface{}) error {
 }
 
 func DeleteTest(d *schema.ResourceData, meta interface{}) error {
-       client := meta.(*wtf.Client)
+       client := meta.(*statuscake.Client)
 
        testId, parseErr := strconv.Atoi(d.Id())
        if parseErr != nil {
@@ -110,7 +110,7 @@ func DeleteTest(d *schema.ResourceData, meta interface{}) error {
 }
 
 func ReadTest(d *schema.ResourceData, meta interface{}) error {
-       client := meta.(*wtf.Client)
+       client := meta.(*statuscake.Client)
 
        testId, parseErr := strconv.Atoi(d.Id())
        if parseErr != nil {
@@ -125,12 +125,12 @@ func ReadTest(d *schema.ResourceData, meta interface{}) error {
        return nil
 }
 
-func getStatusCakeTestInput(d *schema.ResourceData) *wtf.Test {
+func getStatusCakeTestInput(d *schema.ResourceData) *statuscake.Test {
        testId, parseErr := strconv.Atoi(d.Id())
        if parseErr != nil {
                log.Printf("[DEBUG] Error Parsing StatusCake TestID: %s", d.Id())
        }
-       test := &wtf.Test{
+       test := &statuscake.Test{
                TestID: testId,
        }
        if v, ok := d.GetOk("website_name"); ok {
index 8bbd4b5ba83344ac958e6ce948d3e0cdd36689bd..f5b47e4706bb5a266ae8d0b54dad97e514ae3cab 100644 (file)
@@ -2,6 +2,7 @@ package statuscake
 
 import (
        "fmt"
+       "strconv"
        "testing"
 
        "github.com/DreamItGetIT/statuscake"
@@ -27,7 +28,34 @@ func TestAccStatusCake_basic(t *testing.T) {
        })
 }
 
-func testAccTestCheckExists(rn string, project *statuscake.Test) resource.TestCheckFunc {
+func TestAccStatusCake_withUpdate(t *testing.T) {
+       var test statuscake.Test
+
+       resource.Test(t, resource.TestCase{
+               PreCheck:     func() { testAccPreCheck(t) },
+               Providers:    testAccProviders,
+               CheckDestroy: testAccTestCheckDestroy(&test),
+               Steps: []resource.TestStep{
+                       resource.TestStep{
+                               Config: testAccTestConfig_basic,
+                               Check: resource.ComposeTestCheckFunc(
+                                       testAccTestCheckExists("statuscake_test.google", &test),
+                               ),
+                       },
+
+                       resource.TestStep{
+                               Config: testAccTestConfig_update,
+                               Check: resource.ComposeTestCheckFunc(
+                                       testAccTestCheckExists("statuscake_test.google", &test),
+                                       resource.TestCheckResourceAttr("statuscake_test.google", "check_rate", "500"),
+                                       resource.TestCheckResourceAttr("statuscake_test.google", "paused", "true"),
+                               ),
+                       },
+               },
+       })
+}
+
+func testAccTestCheckExists(rn string, test *statuscake.Test) resource.TestCheckFunc {
        return func(s *terraform.State) error {
                rs, ok := s.RootModule().Resources[rn]
                if !ok {
@@ -38,31 +66,33 @@ func testAccTestCheckExists(rn string, project *statuscake.Test) resource.TestCh
                        return fmt.Errorf("TestID not set")
                }
 
-               //              client := testAccProvider.Meta().(*statuscake.Client)
-               //              gotProject, err := client.GetProject(rs.Primary.ID)
-               //              if err != nil {
-               //                      return fmt.Errorf("error getting project: %s", err)
-               //              }
-               //
-               //              *project = *gotProject
+               client := testAccProvider.Meta().(*statuscake.Client)
+               testId, parseErr := strconv.Atoi(rs.Primary.ID)
+               if parseErr != nil {
+                       return fmt.Errorf("error in statuscake test CheckExists: %s", parseErr)
+               }
+
+               gotTest, err := client.Tests().Detail(testId)
+               if err != nil {
+                       return fmt.Errorf("error getting project: %s", err)
+               }
+
+               *test = *gotTest
 
                return nil
        }
 }
 
-func testAccTestCheckDestroy(project *statuscake.Test) resource.TestCheckFunc {
-       //      return func(s *terraform.State) error {
-       //              client := testAccProvider.Meta().(*statuscake.Client)
-       //              //              _, err := client.Tests().All()
-       //              //              if err == nil {
-       //              //                      return fmt.Errorf("test still exists")
-       //              //              }
-       //              //              if _, ok := err.(*statuscake.NotFoundError); !ok {
-       //              //                      return fmt.Errorf("got something other than NotFoundError (%v) when getting test", err)
-       //              //              }
-       //
-       //              return nil
-       //      }
+func testAccTestCheckDestroy(test *statuscake.Test) resource.TestCheckFunc {
+       return func(s *terraform.State) error {
+               client := testAccProvider.Meta().(*statuscake.Client)
+               err := client.Tests().Delete(test.TestID)
+               if err == nil {
+                       return fmt.Errorf("test still exists")
+               }
+
+               return nil
+       }
        return nil
 }
 
@@ -74,3 +104,13 @@ resource "statuscake_test" "google" {
   check_rate = 300
 }
 `
+
+const testAccTestConfig_update = `
+resource "statuscake_test" "google" {
+  website_name = "google.com"
+  website_url = "www.google.com"
+  test_type = "HTTP"
+  check_rate = 500
+  paused = true
+}
+`