terraform-provider-google/google/resource_spanner_database_test.go
The Magician 7ff156006f Initial addition of generated spanner database to terraform. (#2812)
Signed-off-by: Modular Magician <magic-modules@google.com>
2019-01-16 13:42:38 -08:00

85 lines
2.3 KiB
Go

package google
import (
"fmt"
"testing"
"github.com/hashicorp/terraform/helper/acctest"
"github.com/hashicorp/terraform/helper/resource"
)
func TestAccSpannerDatabase_basic(t *testing.T) {
t.Parallel()
project := getTestProjectFromEnv()
rnd := acctest.RandString(10)
instanceName := fmt.Sprintf("my-instance-%s", rnd)
databaseName := fmt.Sprintf("mydb_%s", rnd)
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckSpannerDatabaseDestroy,
Steps: []resource.TestStep{
{
Config: testAccSpannerDatabase_basic(instanceName, databaseName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("google_spanner_database.basic", "state"),
),
},
{
// Test import with default Terraform ID
ResourceName: "google_spanner_database.basic",
ImportState: true,
ImportStateVerify: true,
},
{
ResourceName: "google_spanner_database.basic",
ImportStateId: fmt.Sprintf("projects/%s/instances/%s/databases/%s", project, instanceName, databaseName),
ImportState: true,
ImportStateVerify: true,
},
{
ResourceName: "google_spanner_database.basic",
ImportStateId: fmt.Sprintf("instances/%s/databases/%s", instanceName, databaseName),
ImportState: true,
ImportStateVerify: true,
},
{
ResourceName: "google_spanner_database.basic",
ImportStateId: fmt.Sprintf("%s/%s", instanceName, databaseName),
ImportState: true,
ImportStateVerify: true,
},
},
})
}
func testAccSpannerDatabase_basic(instanceName, databaseName string) string {
return fmt.Sprintf(`
resource "google_spanner_instance" "basic" {
name = "%s"
config = "regional-us-central1"
display_name = "display-%s"
num_nodes = 1
}
resource "google_spanner_database" "basic" {
instance = "${google_spanner_instance.basic.name}"
name = "%s"
}
`, instanceName, instanceName, databaseName)
}
// Unit Tests for type spannerDatabaseId
func TestDatabaseNameForApi(t *testing.T) {
id := spannerDatabaseId{
Project: "project123",
Instance: "instance456",
Database: "db789",
}
actual := id.databaseUri()
expected := "projects/project123/instances/instance456/databases/db789"
expectEquals(t, expected, actual)
}