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  }