56 lines
1.7 KiB
Go
56 lines
1.7 KiB
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
"github.com/hashicorp/terraform/terraform"
|
|
)
|
|
|
|
func TestResourceImportOther(t *testing.T) {
|
|
resource.UnitTest(t, resource.TestCase{
|
|
Providers: testAccProviders,
|
|
CheckDestroy: testAccCheckResourceDestroy,
|
|
Steps: []resource.TestStep{
|
|
resource.TestStep{
|
|
Config: strings.TrimSpace(`
|
|
resource "test_resource_import_other" "foo" {
|
|
}
|
|
`),
|
|
},
|
|
{
|
|
ImportState: true,
|
|
ResourceName: "test_resource_import_other.foo",
|
|
|
|
ImportStateCheck: func(iss []*terraform.InstanceState) error {
|
|
if got, want := len(iss), 2; got != want {
|
|
return fmt.Errorf("wrong number of resources %d; want %d", got, want)
|
|
}
|
|
|
|
byID := make(map[string]*terraform.InstanceState, len(iss))
|
|
for _, is := range iss {
|
|
byID[is.ID] = is
|
|
}
|
|
|
|
if is, ok := byID["import_other_main"]; !ok {
|
|
return fmt.Errorf("no instance with id import_other_main in state")
|
|
} else if got, want := is.Ephemeral.Type, "test_resource_import_other"; got != want {
|
|
return fmt.Errorf("import_other_main has wrong type %q; want %q", got, want)
|
|
} else if got, want := is.Attributes["computed"], "hello!"; got != want {
|
|
return fmt.Errorf("import_other_main has wrong value %q for its computed attribute; want %q", got, want)
|
|
}
|
|
if is, ok := byID["import_other_other"]; !ok {
|
|
return fmt.Errorf("no instance with id import_other_other in state")
|
|
} else if got, want := is.Ephemeral.Type, "test_resource_defaults"; got != want {
|
|
return fmt.Errorf("import_other_other has wrong type %q; want %q", got, want)
|
|
}
|
|
|
|
return nil
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|