116 lines
2.5 KiB
Go
116 lines
2.5 KiB
Go
package random
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
"github.com/hashicorp/terraform/terraform"
|
|
)
|
|
|
|
func TestAccResourcePet_basic(t *testing.T) {
|
|
resource.Test(t, resource.TestCase{
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
Providers: testAccProviders,
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: testAccResourcePet_basic,
|
|
Check: resource.ComposeTestCheckFunc(
|
|
testAccResourcePetLength("random_pet.pet_1", "-", 2),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func TestAccResourcePet_length(t *testing.T) {
|
|
resource.Test(t, resource.TestCase{
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
Providers: testAccProviders,
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: testAccResourcePet_length,
|
|
Check: resource.ComposeTestCheckFunc(
|
|
testAccResourcePetLength("random_pet.pet_1", "-", 4),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func TestAccResourcePet_prefix(t *testing.T) {
|
|
resource.Test(t, resource.TestCase{
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
Providers: testAccProviders,
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: testAccResourcePet_prefix,
|
|
Check: resource.ComposeTestCheckFunc(
|
|
testAccResourcePetLength("random_pet.pet_1", "-", 3),
|
|
resource.TestMatchResourceAttr(
|
|
"random_pet.pet_1", "id", regexp.MustCompile("^consul-")),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func TestAccResourcePet_separator(t *testing.T) {
|
|
resource.Test(t, resource.TestCase{
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
Providers: testAccProviders,
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: testAccResourcePet_separator,
|
|
Check: resource.ComposeTestCheckFunc(
|
|
testAccResourcePetLength("random_pet.pet_1", "_", 3),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
func testAccResourcePetLength(id string, separator string, length int) resource.TestCheckFunc {
|
|
return func(s *terraform.State) error {
|
|
rs, ok := s.RootModule().Resources[id]
|
|
if !ok {
|
|
return fmt.Errorf("Not found: %s", id)
|
|
}
|
|
if rs.Primary.ID == "" {
|
|
return fmt.Errorf("No ID is set")
|
|
}
|
|
|
|
petParts := strings.Split(rs.Primary.ID, separator)
|
|
if len(petParts) != length {
|
|
return fmt.Errorf("Length does not match")
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|
|
|
|
const testAccResourcePet_basic = `
|
|
resource "random_pet" "pet_1" {
|
|
}
|
|
`
|
|
|
|
const testAccResourcePet_length = `
|
|
resource "random_pet" "pet_1" {
|
|
length = 4
|
|
}
|
|
`
|
|
const testAccResourcePet_prefix = `
|
|
resource "random_pet" "pet_1" {
|
|
prefix = "consul"
|
|
}
|
|
`
|
|
|
|
const testAccResourcePet_separator = `
|
|
resource "random_pet" "pet_1" {
|
|
length = 3
|
|
separator = "_"
|
|
}
|
|
`
|