github.phpd.cn/hashicorp/packer@v1.3.2/packer/rpc/provisioner_test.go (about) 1 package rpc 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/hashicorp/packer/packer" 8 ) 9 10 func TestProvisionerRPC(t *testing.T) { 11 // Create the interface to test 12 p := new(packer.MockProvisioner) 13 14 // Start the server 15 client, server := testClientServer(t) 16 defer client.Close() 17 defer server.Close() 18 server.RegisterProvisioner(p) 19 pClient := client.Provisioner() 20 21 // Test Prepare 22 config := 42 23 pClient.Prepare(config) 24 if !p.PrepCalled { 25 t.Fatal("should be called") 26 } 27 expected := []interface{}{int64(42)} 28 if !reflect.DeepEqual(p.PrepConfigs, expected) { 29 t.Fatalf("bad: %#v", p.PrepConfigs) 30 } 31 32 // Test Provision 33 ui := &testUi{} 34 comm := &packer.MockCommunicator{} 35 pClient.Provision(ui, comm) 36 if !p.ProvCalled { 37 t.Fatal("should be called") 38 } 39 40 // Test Cancel 41 pClient.Cancel() 42 if !p.CancelCalled { 43 t.Fatal("cancel should be called") 44 } 45 } 46 47 func TestProvisioner_Implements(t *testing.T) { 48 var _ packer.Provisioner = new(provisioner) 49 }