terraform/builtin/providers/influxdb/resource_database_test.go

72 lines
1.4 KiB
Go

package influxdb
import (
"fmt"
"testing"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
"github.com/influxdata/influxdb/client"
)
func TestAccInfluxDBDatabase(t *testing.T) {
resource.Test(t, resource.TestCase{
Providers: testAccProviders,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccDatabaseConfig,
Check: resource.ComposeTestCheckFunc(
testAccCheckDatabaseExists("influxdb_database.test"),
resource.TestCheckResourceAttr(
"influxdb_database.test", "name", "terraform-test",
),
),
},
},
})
}
func testAccCheckDatabaseExists(n string) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
return fmt.Errorf("Not found: %s", n)
}
if rs.Primary.ID == "" {
return fmt.Errorf("No database id set")
}
conn := testAccProvider.Meta().(*client.Client)
query := client.Query{
Command: "SHOW DATABASES",
}
resp, err := conn.Query(query)
if err != nil {
return err
}
if resp.Err != nil {
return resp.Err
}
for _, result := range resp.Results[0].Series[0].Values {
if result[0] == rs.Primary.Attributes["name"] {
return nil
}
}
return fmt.Errorf("Database %q does not exist", rs.Primary.Attributes["name"])
}
}
var testAccDatabaseConfig = `
resource "influxdb_database" "test" {
name = "terraform-test"
}
`