1
1
package client
2
2
3
3
import (
4
- "github.com/docker/infrakit/pkg/rpc/server"
5
- "github.com/docker/infrakit/pkg/spi"
6
- "github.com/stretchr/testify/require"
4
+ "fmt"
7
5
"io/ioutil"
8
6
"net/http"
9
7
"path/filepath"
10
8
"testing"
9
+
10
+ "github.com/docker/infrakit/pkg/rpc/server"
11
+ "github.com/docker/infrakit/pkg/spi"
12
+ "github.com/stretchr/testify/require"
11
13
)
12
14
13
15
var apiSpec = spi.InterfaceSpec {
@@ -27,20 +29,35 @@ func startPluginServer(t *testing.T) (server.Stoppable, string) {
27
29
return testServer , socket
28
30
}
29
31
32
+ func TestErrVersionMismatch (t * testing.T ) {
33
+ var e error
34
+
35
+ e = errVersionMismatch ("test" )
36
+ require .True (t , IsErrVersionMismatch (e ))
37
+
38
+ e = fmt .Errorf ("untyped" )
39
+ require .False (t , IsErrVersionMismatch (e ))
40
+ }
41
+
30
42
func TestHandshakeSuccess (t * testing.T ) {
31
43
testServer , socket := startPluginServer (t )
32
44
defer testServer .Stop ()
33
45
34
- client := rpcClient {client : New (socket , apiSpec )}
46
+ r , err := New (socket , apiSpec )
47
+ require .NoError (t , err )
48
+ client := rpcClient {client : r }
35
49
require .NoError (t , client .DoSomething ())
36
50
}
37
51
38
52
func TestHandshakeFailVersion (t * testing.T ) {
39
53
testServer , socket := startPluginServer (t )
40
54
defer testServer .Stop ()
41
55
42
- client := rpcClient {client : New (socket , spi.InterfaceSpec {Name : "TestPlugin" , Version : "0.2.0" })}
43
- err := client .DoSomething ()
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 ()
44
61
require .Error (t , err )
45
62
require .Equal (t , "Plugin supports TestPlugin interface version 0.1.0, client requires 0.2.0" , err .Error ())
46
63
}
@@ -49,8 +66,11 @@ func TestHandshakeFailWrongAPI(t *testing.T) {
49
66
testServer , socket := startPluginServer (t )
50
67
defer testServer .Stop ()
51
68
52
- client := rpcClient {client : New (socket , spi.InterfaceSpec {Name : "OtherPlugin" , Version : "0.1.0" })}
53
- err := client .DoSomething ()
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 ()
54
74
require .Error (t , err )
55
75
require .Equal (t , "Plugin does not support interface {OtherPlugin 0.1.0}" , err .Error ())
56
76
}
0 commit comments