mirror of https://github.com/hashicorp/packer
parent
e589bf2724
commit
f5c7c6ea90
@ -0,0 +1,41 @@
|
||||
package packer
|
||||
|
||||
import (
|
||||
"io"
|
||||
)
|
||||
|
||||
// MockCommunicator is a valid Communicator implementation that can be
|
||||
// used for tests.
|
||||
type MockCommunicator struct {
|
||||
Stderr io.Reader
|
||||
Stdout io.Reader
|
||||
}
|
||||
|
||||
func (c *MockCommunicator) Start(rc *RemoteCmd) error {
|
||||
go func() {
|
||||
rc.Lock()
|
||||
defer rc.Unlock()
|
||||
|
||||
if rc.Stdout != nil && c.Stdout != nil {
|
||||
io.Copy(rc.Stdout, c.Stdout)
|
||||
}
|
||||
|
||||
if rc.Stderr != nil && c.Stderr != nil {
|
||||
io.Copy(rc.Stderr, c.Stderr)
|
||||
}
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *MockCommunicator) Upload(string, io.Reader) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *MockCommunicator) UploadDir(string, string, []string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *MockCommunicator) Download(string, io.Writer) error {
|
||||
return nil
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package packer
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMockCommunicator_impl(t *testing.T) {
|
||||
var raw interface{}
|
||||
raw = new(MockCommunicator)
|
||||
if _, ok := raw.(Communicator); !ok {
|
||||
t.Fatal("should be a communicator")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue