github.com/terramate-io/tf@v0.0.0-20230830114523-fce866b4dfcd/legacy/terraform/ui_input_mock.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package terraform 5 6 import "context" 7 8 // MockUIInput is an implementation of UIInput that can be used for tests. 9 type MockUIInput struct { 10 InputCalled bool 11 InputOpts *InputOpts 12 InputReturnMap map[string]string 13 InputReturnString string 14 InputReturnError error 15 InputFn func(*InputOpts) (string, error) 16 } 17 18 func (i *MockUIInput) Input(ctx context.Context, opts *InputOpts) (string, error) { 19 i.InputCalled = true 20 i.InputOpts = opts 21 if i.InputFn != nil { 22 return i.InputFn(opts) 23 } 24 if i.InputReturnMap != nil { 25 return i.InputReturnMap[opts.Id], i.InputReturnError 26 } 27 return i.InputReturnString, i.InputReturnError 28 }