...
1
16
17 package driver
18
19 import (
20 "net"
21
22 "google.golang.org/grpc"
23 )
24
25 type MockCSIDriverServers struct {
26 Controller *MockControllerServer
27 Identity *MockIdentityServer
28 Node *MockNodeServer
29 }
30
31 type MockCSIDriver struct {
32 CSIDriver
33 conn *grpc.ClientConn
34 interceptor grpc.UnaryServerInterceptor
35 }
36
37 func NewMockCSIDriver(servers *MockCSIDriverServers, interceptor grpc.UnaryServerInterceptor) *MockCSIDriver {
38 return &MockCSIDriver{
39 CSIDriver: CSIDriver{
40 servers: &CSIDriverServers{
41 Controller: servers.Controller,
42 Node: servers.Node,
43 Identity: servers.Identity,
44 },
45 },
46 interceptor: interceptor,
47 }
48 }
49
50
51 func (m *MockCSIDriver) StartOnAddress(network, address string) error {
52 l, err := net.Listen(network, address)
53 if err != nil {
54 return err
55 }
56
57 if err := m.CSIDriver.Start(l, m.interceptor); err != nil {
58 l.Close()
59 return err
60 }
61
62 return nil
63 }
64
65
66 func (m *MockCSIDriver) Start() error {
67
68 return m.StartOnAddress("tcp", "127.0.0.1:0")
69 }
70
71 func (m *MockCSIDriver) Close() {
72 m.conn.Close()
73 m.server.Stop()
74 }
75
View as plain text