From e7b04dd5bb4a5947d1f4e9049ec90032b62faa5e Mon Sep 17 00:00:00 2001 From: Lee Johnson Date: Fri, 10 Jun 2016 12:38:56 -0400 Subject: Adding ability to add and update contact groups using the terraform statuscake provider --- resource_statuscaketest.go | 9 +++++ resource_statuscaketest_test.go | 83 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/resource_statuscaketest.go b/resource_statuscaketest.go index 7f5ff67..d403848 100644 --- a/resource_statuscaketest.go +++ b/resource_statuscaketest.go @@ -33,6 +33,11 @@ func resourceStatusCakeTest() *schema.Resource { Required: true, }, + "contact_id": &schema.Schema{ + Type: schema.TypeInt, + Optional: true, + }, + "check_rate": &schema.Schema{ Type: schema.TypeInt, Optional: true, @@ -65,6 +70,7 @@ func CreateTest(d *schema.ResourceData, meta interface{}) error { 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)) @@ -142,6 +148,9 @@ func getStatusCakeTestInput(d *schema.ResourceData) *statuscake.Test { 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) } diff --git a/resource_statuscaketest_test.go b/resource_statuscaketest_test.go index bbc6932..4123ac6 100644 --- a/resource_statuscaketest_test.go +++ b/resource_statuscaketest_test.go @@ -2,6 +2,7 @@ package statuscake import ( "fmt" + "os" "strconv" "testing" @@ -10,6 +11,19 @@ import ( "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 @@ -55,6 +69,57 @@ func TestAccStatusCake_withUpdate(t *testing.T) { }) } +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] @@ -113,3 +178,21 @@ resource "statuscake_test" "google" { 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") + ` + }` -- cgit v1.2.3 From 312d16361a769314812c256f7433bcb0f2c72193 Mon Sep 17 00:00:00 2001 From: Lee Johnson Date: Tue, 29 Nov 2016 16:03:58 -0500 Subject: simplifying tests by removing tests and test data that is no longer needed --- resource_statuscaketest.go | 5 --- resource_statuscaketest_test.go | 83 ----------------------------------------- 2 files changed, 88 deletions(-) diff --git a/resource_statuscaketest.go b/resource_statuscaketest.go index 389a7d6..a1d7354 100644 --- a/resource_statuscaketest.go +++ b/resource_statuscaketest.go @@ -58,10 +58,6 @@ func resourceStatusCakeTest() *schema.Resource { Type: schema.TypeInt, Computed: true, }, - "contact_id": &schema.Schema{ - Type: schema.TypeInt, - Optional: true, - }, }, } } @@ -74,7 +70,6 @@ func CreateTest(d *schema.ResourceData, meta interface{}) error { 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)) diff --git a/resource_statuscaketest_test.go b/resource_statuscaketest_test.go index 236b790..bec1a45 100644 --- a/resource_statuscaketest_test.go +++ b/resource_statuscaketest_test.go @@ -2,7 +2,6 @@ package statuscake import ( "fmt" - "os" "strconv" "testing" @@ -11,19 +10,6 @@ import ( "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 @@ -70,57 +56,6 @@ func TestAccStatusCake_withUpdate(t *testing.T) { }) } -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] @@ -181,21 +116,3 @@ resource "statuscake_test" "google" { contact_id = 23456 } ` - -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") + ` - }` -- cgit v1.2.3