packer-cn/packer/provisioner_test.go

51 lines
963 B
Go
Raw Normal View History

2013-05-22 18:39:30 -04:00
package packer
2013-05-24 00:13:18 -04:00
import "testing"
2013-05-22 18:39:30 -04:00
type TestProvisioner struct {
prepCalled bool
prepConfigs []interface{}
provCalled bool
2013-05-22 18:39:30 -04:00
}
2013-06-06 20:07:42 -04:00
func (t *TestProvisioner) Prepare(configs ...interface{}) error {
2013-05-22 18:39:30 -04:00
t.prepCalled = true
t.prepConfigs = configs
2013-06-06 20:07:42 -04:00
return nil
2013-05-22 18:39:30 -04:00
}
func (t *TestProvisioner) Provision(Ui, Communicator) error {
2013-05-22 18:39:30 -04:00
t.provCalled = true
return nil
2013-05-22 18:39:30 -04:00
}
2013-05-24 00:13:18 -04:00
func TestProvisionHook_Impl(t *testing.T) {
var raw interface{}
raw = &ProvisionHook{}
if _, ok := raw.(Hook); !ok {
t.Fatalf("must be a Hook")
}
}
func TestProvisionHook(t *testing.T) {
pA := &TestProvisioner{}
pB := &TestProvisioner{}
ui := testUi()
var comm Communicator = nil
var data interface{} = nil
hook := &ProvisionHook{[]Provisioner{pA, pB}}
hook.Run("foo", ui, comm, data)
if !pA.provCalled {
t.Error("provision should be called on pA")
}
if !pB.provCalled {
t.Error("provision should be called on pB")
}
}
2013-05-24 00:13:40 -04:00
// TODO(mitchellh): Test that they're run in the proper order