From 54c1616d7339b061b7bce564d2878a8a1431cc8a Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Sat, 29 Sep 2018 09:45:09 -0700 Subject: [PATCH] command: Update import_test.go for new provider types This only makes it compile. It does not yet ensure that the tests pass. --- command/import_test.go | 166 ++++++++++++++++++++++++----------------- 1 file changed, 97 insertions(+), 69 deletions(-) diff --git a/command/import_test.go b/command/import_test.go index 9becdcd33..0f2c381d7 100644 --- a/command/import_test.go +++ b/command/import_test.go @@ -8,11 +8,15 @@ import ( "strings" "testing" + "github.com/mitchellh/cli" + "github.com/zclconf/go-cty/cty" + "github.com/hashicorp/terraform/helper/copy" "github.com/hashicorp/terraform/plugin" "github.com/hashicorp/terraform/plugin/discovery" + "github.com/hashicorp/terraform/providers" "github.com/hashicorp/terraform/terraform" - "github.com/mitchellh/cli" + "github.com/hashicorp/terraform/tfdiags" ) func TestImport(t *testing.T) { @@ -29,12 +33,14 @@ func TestImport(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -48,8 +54,8 @@ func TestImport(t *testing.T) { t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -69,25 +75,35 @@ func TestImport_providerConfig(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } configured := false - p.ConfigureFn = func(c *terraform.ResourceConfig) error { + p.ConfigureNewFn = func(req providers.ConfigureRequest) providers.ConfigureResponse { configured = true - if v, ok := c.Get("foo"); !ok || v.(string) != "bar" { - return fmt.Errorf("bad value: %#v", v) + cfg := req.Config + if !cfg.Type().HasAttribute("foo") { + return providers.ConfigureResponse{ + Diagnostics: tfdiags.Diagnostics{}.Append(fmt.Errorf("configuration has no foo argument")), + } + } + if got, want := cfg.GetAttr("foo"), cty.StringVal("bar"); !want.RawEquals(got) { + return providers.ConfigureResponse{ + Diagnostics: tfdiags.Diagnostics{}.Append(fmt.Errorf("foo argument is %#v, but want %#v", got, want)), + } } - return nil + return providers.ConfigureResponse{} } args := []string{ @@ -104,8 +120,8 @@ func TestImport_providerConfig(t *testing.T) { t.Fatal("Configure should be called") } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -151,12 +167,14 @@ func TestImport_remoteState(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -192,8 +210,8 @@ func TestImport_remoteState(t *testing.T) { t.Fatal("Configure should be called") } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -213,12 +231,14 @@ func TestImport_providerConfigWithVar(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -249,8 +269,8 @@ func TestImport_providerConfigWithVar(t *testing.T) { t.Fatal("Configure should be called") } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -270,12 +290,14 @@ func TestImport_providerConfigWithVarDefault(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -305,8 +327,8 @@ func TestImport_providerConfigWithVarDefault(t *testing.T) { t.Fatal("Configure should be called") } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -326,12 +348,14 @@ func TestImport_providerConfigWithVarFile(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -362,8 +386,8 @@ func TestImport_providerConfigWithVarFile(t *testing.T) { t.Fatal("Configure should be called") } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr) @@ -383,12 +407,14 @@ func TestImport_customProvider(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - &terraform.InstanceState{ - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -403,8 +429,8 @@ func TestImport_customProvider(t *testing.T) { t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportCustomProviderStr) @@ -424,12 +450,14 @@ func TestImport_allowMissingResourceConfig(t *testing.T) { }, } - p.ImportStateFn = nil - p.ImportStateReturn = []*terraform.InstanceState{ - { - ID: "yay", - Ephemeral: terraform.EphemeralState{ - Type: "test_instance", + p.ImportResourceStateFn = nil + p.ImportResourceStateResponse = providers.ImportResourceStateResponse{ + ImportedResources: []providers.ImportedResource{ + { + TypeName: "test_instance", + State: cty.ObjectVal(map[string]cty.Value{ + "id": cty.StringVal("yay"), + }), }, }, } @@ -444,8 +472,8 @@ func TestImport_allowMissingResourceConfig(t *testing.T) { t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) } - if !p.ImportStateCalled { - t.Fatal("ImportState should be called") + if !p.ImportResourceStateCalled { + t.Fatal("ImportResourceState should be called") } testStateOutput(t, statePath, testImportStr)