github.com/minamijoyo/terraform@v0.7.8-0.20161029001309-18b3736ba44b/builtin/providers/bitbucket/resource_hook_test.go (about) 1 package bitbucket 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 8 "github.com/hashicorp/terraform/helper/resource" 9 "github.com/hashicorp/terraform/terraform" 10 ) 11 12 func TestAccBitbucketHook_basic(t *testing.T) { 13 var hook Hook 14 15 testUser := os.Getenv("BITBUCKET_USERNAME") 16 testAccBitbucketHookConfig := fmt.Sprintf(` 17 resource "bitbucket_repository" "test_repo" { 18 owner = "%s" 19 name = "test-repo" 20 } 21 resource "bitbucket_hook" "test_repo_hook" { 22 owner = "%s" 23 repository = "${bitbucket_repository.test_repo.name}" 24 description = "Test hook for terraform" 25 url = "https://httpbin.org" 26 events = [ 27 "repo:push", 28 ] 29 } 30 `, testUser, testUser) 31 32 resource.Test(t, resource.TestCase{ 33 PreCheck: func() { testAccPreCheck(t) }, 34 Providers: testAccProviders, 35 CheckDestroy: testAccCheckBitbucketHookDestroy, 36 Steps: []resource.TestStep{ 37 resource.TestStep{ 38 Config: testAccBitbucketHookConfig, 39 Check: resource.ComposeTestCheckFunc( 40 testAccCheckBitbucketHookExists("bitbucket_hook.test_repo_hook", &hook), 41 ), 42 }, 43 }, 44 }) 45 } 46 47 func testAccCheckBitbucketHookDestroy(s *terraform.State) error { 48 client := testAccProvider.Meta().(*BitbucketClient) 49 rs, ok := s.RootModule().Resources["bitbucket_hook.test_repo_hook"] 50 if !ok { 51 return fmt.Errorf("Not found %s", "bitbucket_hook.test_repo_hook") 52 } 53 54 response, err := client.Get(fmt.Sprintf("2.0/repositories/%s/%s/hooks/%s", rs.Primary.Attributes["owner"], rs.Primary.Attributes["repository"], rs.Primary.Attributes["uuid"])) 55 56 if err != nil { 57 return err 58 } 59 60 if response.StatusCode != 404 { 61 return fmt.Errorf("Hook still exists") 62 } 63 64 return nil 65 } 66 67 func testAccCheckBitbucketHookExists(n string, hook *Hook) resource.TestCheckFunc { 68 return func(s *terraform.State) error { 69 rs, ok := s.RootModule().Resources[n] 70 if !ok { 71 return fmt.Errorf("Not found %s", n) 72 } 73 if rs.Primary.ID == "" { 74 return fmt.Errorf("No Hook ID is set") 75 } 76 return nil 77 } 78 }