parent
5e9425b562
commit
c61a893590
|
@ -148,33 +148,6 @@ resource "test_resource_defaults" "foo" {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestResourceDefaults_import(t *testing.T) {
|
|
||||||
// FIXME: The ReadResource after ImportResourceState sin't returning the
|
|
||||||
// complete state, yet the later refresh does.
|
|
||||||
return
|
|
||||||
|
|
||||||
resource.UnitTest(t, resource.TestCase{
|
|
||||||
Providers: testAccProviders,
|
|
||||||
CheckDestroy: testAccCheckResourceDestroy,
|
|
||||||
Steps: []resource.TestStep{
|
|
||||||
resource.TestStep{
|
|
||||||
Config: strings.TrimSpace(`
|
|
||||||
resource "test_resource_defaults" "foo" {
|
|
||||||
nested {
|
|
||||||
optional = "val"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ImportState: true,
|
|
||||||
ImportStateVerify: true,
|
|
||||||
ResourceName: "test_resource_defaults.foo",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDefaults_emptyString(t *testing.T) {
|
func TestDefaults_emptyString(t *testing.T) {
|
||||||
config := `
|
config := `
|
||||||
resource "test_resource_defaults" "test" {
|
resource "test_resource_defaults" "test" {
|
||||||
|
|
|
@ -1,79 +0,0 @@
|
||||||
package test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
|
||||||
"github.com/hashicorp/terraform/terraform"
|
|
||||||
)
|
|
||||||
|
|
||||||
// This is actually a test of some core functionality in conjunction with
|
|
||||||
// helper/schema, rather than of the test provider itself.
|
|
||||||
//
|
|
||||||
// Here we're just verifying that unknown splats get flattened when assigned
|
|
||||||
// to list and set attributes. A variety of other situations are tested in
|
|
||||||
// an apply context test in the core package, but for this part we lean on
|
|
||||||
// helper/schema and thus need to exercise it at a higher level.
|
|
||||||
|
|
||||||
func TestSplatFlatten(t *testing.T) {
|
|
||||||
return
|
|
||||||
resource.UnitTest(t, resource.TestCase{
|
|
||||||
Providers: testAccProviders,
|
|
||||||
CheckDestroy: testAccCheckResourceDestroy,
|
|
||||||
Steps: []resource.TestStep{
|
|
||||||
resource.TestStep{
|
|
||||||
Config: `
|
|
||||||
resource "test_resource" "source" {
|
|
||||||
required = "foo ${count.index}"
|
|
||||||
required_map = {
|
|
||||||
key = "value"
|
|
||||||
}
|
|
||||||
count = 3
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "test_resource" "splatted" {
|
|
||||||
# This legacy form of splatting into a list is still supported for
|
|
||||||
# backward-compatibility but no longer suggested.
|
|
||||||
set = ["${test_resource.source.*.computed_from_required}"]
|
|
||||||
list = ["${test_resource.source.*.computed_from_required}"]
|
|
||||||
|
|
||||||
required = "yep"
|
|
||||||
required_map = {
|
|
||||||
key = "value"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
Check: func(s *terraform.State) error {
|
|
||||||
gotAttrs := s.RootModule().Resources["test_resource.splatted"].Primary.Attributes
|
|
||||||
t.Logf("attrs %#v", gotAttrs)
|
|
||||||
wantAttrs := map[string]string{
|
|
||||||
"list.#": "3",
|
|
||||||
"list.0": "foo 0",
|
|
||||||
"list.1": "foo 1",
|
|
||||||
"list.2": "foo 2",
|
|
||||||
|
|
||||||
// This depends on the default set hash implementation.
|
|
||||||
// If that changes, these keys will need to be updated.
|
|
||||||
"set.#": "3",
|
|
||||||
"set.1136855734": "foo 0",
|
|
||||||
"set.885275168": "foo 1",
|
|
||||||
"set.2915920794": "foo 2",
|
|
||||||
}
|
|
||||||
errored := false
|
|
||||||
for k, want := range wantAttrs {
|
|
||||||
got := gotAttrs[k]
|
|
||||||
if got != want {
|
|
||||||
t.Errorf("Wrong %s value %q; want %q", k, got, want)
|
|
||||||
errored = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if errored {
|
|
||||||
return errors.New("incorrect attribute values")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
Loading…
Reference in New Issue