| package plugin |
| |
| import ( |
| "context" |
| "reflect" |
| "testing" |
| |
| "github.com/hashicorp/go-plugin" |
| "github.com/hashicorp/terraform/internal/terraform" |
| ) |
| |
| func TestUIInput_impl(t *testing.T) { |
| var _ terraform.UIInput = new(UIInput) |
| } |
| |
| func TestUIInput_input(t *testing.T) { |
| client, server := plugin.TestRPCConn(t) |
| defer client.Close() |
| |
| i := new(terraform.MockUIInput) |
| i.InputReturnString = "foo" |
| |
| err := server.RegisterName("Plugin", &UIInputServer{ |
| UIInput: i, |
| }) |
| if err != nil { |
| t.Fatalf("err: %s", err) |
| } |
| |
| input := &UIInput{Client: client} |
| |
| opts := &terraform.InputOpts{ |
| Id: "foo", |
| } |
| |
| v, err := input.Input(context.Background(), opts) |
| if !i.InputCalled { |
| t.Fatal("input should be called") |
| } |
| if !reflect.DeepEqual(i.InputOpts, opts) { |
| t.Fatalf("bad: %#v", i.InputOpts) |
| } |
| if err != nil { |
| t.Fatalf("bad: %#v", err) |
| } |
| |
| if v != "foo" { |
| t.Fatalf("bad: %#v", v) |
| } |
| } |