@@ -2,33 +2,11 @@ package client
2
2
3
3
import (
4
4
"fmt"
5
- "io/ioutil"
6
- "net/http"
7
- "path/filepath"
8
5
"testing"
9
6
10
- "github.com/docker/infrakit/pkg/rpc/server"
11
- "github.com/docker/infrakit/pkg/spi"
12
7
"github.com/stretchr/testify/require"
13
8
)
14
9
15
- var apiSpec = spi.InterfaceSpec {
16
- Name : "TestPlugin" ,
17
- Version : "0.1.0" ,
18
- }
19
-
20
- func startPluginServer (t * testing.T ) (server.Stoppable , string ) {
21
- dir , err := ioutil .TempDir ("" , "infrakit_handshake_test" )
22
- require .NoError (t , err )
23
-
24
- name := "instance"
25
- socket := filepath .Join (dir , name )
26
-
27
- testServer , err := server .StartPluginAtPath (socket , & TestPlugin {spec : apiSpec })
28
- require .NoError (t , err )
29
- return testServer , socket
30
- }
31
-
32
10
func TestErrVersionMismatch (t * testing.T ) {
33
11
var e error
34
12
@@ -38,73 +16,3 @@ func TestErrVersionMismatch(t *testing.T) {
38
16
e = fmt .Errorf ("untyped" )
39
17
require .False (t , IsErrVersionMismatch (e ))
40
18
}
41
-
42
- func TestHandshakeSuccess (t * testing.T ) {
43
- testServer , socket := startPluginServer (t )
44
- defer testServer .Stop ()
45
-
46
- r , err := New (socket , apiSpec )
47
- require .NoError (t , err )
48
- client := rpcClient {client : r }
49
- require .NoError (t , client .DoSomething ())
50
- }
51
-
52
- func TestHandshakeFailVersion (t * testing.T ) {
53
- testServer , socket := startPluginServer (t )
54
- defer testServer .Stop ()
55
-
56
- r , err := New (socket , spi.InterfaceSpec {Name : "TestPlugin" , Version : "0.2.0" })
57
- require .Error (t , err )
58
-
59
- client := rpcClient {client : r }
60
- err = client .DoSomething ()
61
- require .Error (t , err )
62
- require .Equal (t , "Plugin supports TestPlugin interface version 0.1.0, client requires 0.2.0" , err .Error ())
63
- }
64
-
65
- func TestHandshakeFailWrongAPI (t * testing.T ) {
66
- testServer , socket := startPluginServer (t )
67
- defer testServer .Stop ()
68
-
69
- r , err := New (socket , spi.InterfaceSpec {Name : "OtherPlugin" , Version : "0.1.0" })
70
- require .Error (t , err )
71
-
72
- client := rpcClient {client : r }
73
- err = client .DoSomething ()
74
- require .Error (t , err )
75
- require .Equal (t , "Plugin does not support interface OtherPlugin/0.1.0" , err .Error ())
76
- }
77
-
78
- type rpcClient struct {
79
- client Client
80
- }
81
-
82
- func (c rpcClient ) DoSomething () error {
83
- req := EmptyMessage {}
84
- resp := EmptyMessage {}
85
- return c .client .Call ("TestPlugin.DoSomething" , req , & resp )
86
- }
87
-
88
- // TestPlugin is an RPC service for this unit test.
89
- type TestPlugin struct {
90
- spec spi.InterfaceSpec
91
- }
92
-
93
- // ImplementedInterface returns the interface implemented by this RPC service.
94
- func (p * TestPlugin ) ImplementedInterface () spi.InterfaceSpec {
95
- return p .spec
96
- }
97
-
98
- // Types returns the types
99
- func (p * TestPlugin ) Types () []string {
100
- return []string {"." }
101
- }
102
-
103
- // EmptyMessage is an empty test message.
104
- type EmptyMessage struct {
105
- }
106
-
107
- // DoSomething is an empty test RPC.
108
- func (p * TestPlugin ) DoSomething (_ * http.Request , req * EmptyMessage , resp * EmptyMessage ) error {
109
- return nil
110
- }
0 commit comments