115 lines
4.7 KiB
Go
115 lines
4.7 KiB
Go
package test
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
"github.com/hashicorp/terraform/terraform"
|
|
)
|
|
|
|
func TestResourceAsSingle(t *testing.T) {
|
|
resource.UnitTest(t, resource.TestCase{
|
|
Providers: testAccProviders,
|
|
CheckDestroy: testAccCheckResourceDestroy,
|
|
Steps: []resource.TestStep{
|
|
resource.TestStep{
|
|
Config: strings.TrimSpace(`
|
|
resource "test_resource_as_single" "foo" {
|
|
list_resource_as_block {
|
|
foo = "as block a"
|
|
}
|
|
list_resource_as_attr = {
|
|
foo = "as attr a"
|
|
}
|
|
list_primitive = "primitive a"
|
|
|
|
set_resource_as_block {
|
|
foo = "as block a"
|
|
}
|
|
set_resource_as_attr = {
|
|
foo = "as attr a"
|
|
}
|
|
set_primitive = "primitive a"
|
|
}
|
|
`),
|
|
Check: resource.ComposeTestCheckFunc(
|
|
func(s *terraform.State) error {
|
|
t.Log("state after initial create:\n", s.String())
|
|
return nil
|
|
},
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_block.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_block.0.foo", "as block a"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_attr.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_attr.0.foo", "as attr a"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_primitive.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_primitive.0", "primitive a"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_block.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_block.1417230722.foo", "as block a"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_attr.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_attr.2549052262.foo", "as attr a"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_primitive.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_primitive.247272358", "primitive a"),
|
|
),
|
|
},
|
|
resource.TestStep{
|
|
Config: strings.TrimSpace(`
|
|
resource "test_resource_as_single" "foo" {
|
|
list_resource_as_block {
|
|
foo = "as block b"
|
|
}
|
|
list_resource_as_attr = {
|
|
foo = "as attr b"
|
|
}
|
|
list_primitive = "primitive b"
|
|
|
|
set_resource_as_block {
|
|
foo = "as block b"
|
|
}
|
|
set_resource_as_attr = {
|
|
foo = "as attr b"
|
|
}
|
|
set_primitive = "primitive b"
|
|
}
|
|
`),
|
|
Check: resource.ComposeTestCheckFunc(
|
|
func(s *terraform.State) error {
|
|
t.Log("state after update:\n", s.String())
|
|
return nil
|
|
},
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_block.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_block.0.foo", "as block b"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_attr.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_attr.0.foo", "as attr b"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_primitive.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_primitive.0", "primitive b"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_block.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_block.2136238657.foo", "as block b"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_attr.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_attr.3166838949.foo", "as attr b"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_primitive.#", "1"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_primitive.630210661", "primitive b"),
|
|
),
|
|
},
|
|
resource.TestStep{
|
|
Config: strings.TrimSpace(`
|
|
resource "test_resource_as_single" "foo" {
|
|
}
|
|
`),
|
|
Check: resource.ComposeTestCheckFunc(
|
|
func(s *terraform.State) error {
|
|
t.Log("state after everything unset:\n", s.String())
|
|
return nil
|
|
},
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_block.#", "0"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_resource_as_attr.#", "0"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "list_primitive.#", "0"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_block.#", "0"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_resource_as_attr.#", "0"),
|
|
resource.TestCheckResourceAttr("test_resource_as_single.foo", "set_primitive.#", "0"),
|
|
),
|
|
},
|
|
},
|
|
})
|
|
}
|