Skip to content

Commit 3c01831

Browse files
committed
test(storage/nvme): add client delete backend controller tests
Signed-off-by: Artsiom Koltun <artsiom.koltun@intel.com>
1 parent e946255 commit 3c01831

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

storage/backend/nvme_controller_test.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/stretchr/testify/require"
1616
"google.golang.org/grpc"
1717
"google.golang.org/protobuf/proto"
18+
"google.golang.org/protobuf/types/known/emptypb"
1819
)
1920

2021
func TestCreateNvmeController(t *testing.T) {
@@ -102,3 +103,73 @@ func TestCreateNvmeController(t *testing.T) {
102103
})
103104
}
104105
}
106+
107+
func TestDeleteNvmeController(t *testing.T) {
108+
testControllerName := "remotenvme0"
109+
testRequest := &pb.DeleteNvmeRemoteControllerRequest{
110+
Name: testControllerName,
111+
AllowMissing: true,
112+
}
113+
tests := map[string]struct {
114+
giveClientErr error
115+
giveConnectorErr error
116+
wantErr error
117+
wantRequest *pb.DeleteNvmeRemoteControllerRequest
118+
wantConnClosed bool
119+
}{
120+
"successful call": {
121+
giveConnectorErr: nil,
122+
giveClientErr: nil,
123+
wantErr: nil,
124+
wantRequest: proto.Clone(testRequest).(*pb.DeleteNvmeRemoteControllerRequest),
125+
wantConnClosed: true,
126+
},
127+
"client err": {
128+
giveConnectorErr: nil,
129+
giveClientErr: errors.New("Some client error"),
130+
wantErr: errors.New("Some client error"),
131+
wantRequest: proto.Clone(testRequest).(*pb.DeleteNvmeRemoteControllerRequest),
132+
wantConnClosed: true,
133+
},
134+
"connector err": {
135+
giveConnectorErr: errors.New("Some conn error"),
136+
giveClientErr: nil,
137+
wantErr: errors.New("Some conn error"),
138+
wantRequest: nil,
139+
wantConnClosed: false,
140+
},
141+
}
142+
143+
for testName, tt := range tests {
144+
t.Run(testName, func(t *testing.T) {
145+
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
146+
defer cancel()
147+
148+
mockClient := mocks.NewNvmeRemoteControllerServiceClient(t)
149+
if tt.wantRequest != nil {
150+
mockClient.EXPECT().DeleteNvmeRemoteController(ctx, tt.wantRequest).
151+
Return(&emptypb.Empty{}, tt.giveClientErr)
152+
}
153+
154+
connClosed := false
155+
mockConn := mocks.NewConnector(t)
156+
mockConn.EXPECT().NewConn().Return(
157+
&grpc.ClientConn{},
158+
func() { connClosed = true },
159+
tt.giveConnectorErr,
160+
)
161+
162+
c, _ := NewWithArgs(
163+
mockConn,
164+
func(grpc.ClientConnInterface) pb.NvmeRemoteControllerServiceClient {
165+
return mockClient
166+
},
167+
)
168+
169+
err := c.DeleteNvmeController(ctx, testControllerName, true)
170+
171+
require.Equal(t, tt.wantErr, err)
172+
require.Equal(t, tt.wantConnClosed, connClosed)
173+
})
174+
}
175+
}

0 commit comments

Comments
 (0)