github.com/IBM-Cloud/terraform@v0.6.4-0.20170726051544-8872b87621df/builtin/providers/pagerduty/resource_pagerduty_team_test.go (about) 1 package pagerduty 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/PagerDuty/go-pagerduty" 8 "github.com/hashicorp/terraform/helper/acctest" 9 "github.com/hashicorp/terraform/helper/resource" 10 "github.com/hashicorp/terraform/terraform" 11 ) 12 13 func TestAccPagerDutyTeam_Basic(t *testing.T) { 14 team := fmt.Sprintf("tf-%s", acctest.RandString(5)) 15 teamUpdated := fmt.Sprintf("tf-%s", acctest.RandString(5)) 16 17 resource.Test(t, resource.TestCase{ 18 PreCheck: func() { testAccPreCheck(t) }, 19 Providers: testAccProviders, 20 CheckDestroy: testAccCheckPagerDutyTeamDestroy, 21 Steps: []resource.TestStep{ 22 { 23 Config: testAccCheckPagerDutyTeamConfig(team), 24 Check: resource.ComposeTestCheckFunc( 25 testAccCheckPagerDutyTeamExists("pagerduty_team.foo"), 26 resource.TestCheckResourceAttr( 27 "pagerduty_team.foo", "name", team), 28 resource.TestCheckResourceAttr( 29 "pagerduty_team.foo", "description", "foo"), 30 ), 31 }, 32 { 33 Config: testAccCheckPagerDutyTeamConfigUpdated(teamUpdated), 34 Check: resource.ComposeTestCheckFunc( 35 testAccCheckPagerDutyTeamExists("pagerduty_team.foo"), 36 resource.TestCheckResourceAttr( 37 "pagerduty_team.foo", "name", teamUpdated), 38 resource.TestCheckResourceAttr( 39 "pagerduty_team.foo", "description", "bar"), 40 ), 41 }, 42 }, 43 }) 44 } 45 46 func testAccCheckPagerDutyTeamDestroy(s *terraform.State) error { 47 client := testAccProvider.Meta().(*pagerduty.Client) 48 for _, r := range s.RootModule().Resources { 49 if r.Type != "pagerduty_team" { 50 continue 51 } 52 53 _, err := client.GetTeam(r.Primary.ID) 54 55 if err == nil { 56 return fmt.Errorf("Team still exists") 57 } 58 59 } 60 return nil 61 } 62 63 func testAccCheckPagerDutyTeamExists(n string) resource.TestCheckFunc { 64 return func(s *terraform.State) error { 65 client := testAccProvider.Meta().(*pagerduty.Client) 66 for _, r := range s.RootModule().Resources { 67 if _, err := client.GetTeam(r.Primary.ID); err != nil { 68 return fmt.Errorf("Received an error retrieving team %s ID: %s", err, r.Primary.ID) 69 } 70 } 71 return nil 72 } 73 } 74 75 func testAccCheckPagerDutyTeamConfig(team string) string { 76 return fmt.Sprintf(` 77 resource "pagerduty_team" "foo" { 78 name = "%s" 79 description = "foo" 80 }`, team) 81 } 82 83 func testAccCheckPagerDutyTeamConfigUpdated(team string) string { 84 return fmt.Sprintf(` 85 resource "pagerduty_team" "foo" { 86 name = "%s" 87 description = "bar" 88 }`, team) 89 }