Skip to content

Commit

Permalink
test(storage/nvme): add client delete backend controller tests
Browse files Browse the repository at this point in the history
Signed-off-by: Artsiom Koltun <[email protected]>
  • Loading branch information
artek-koltun committed Jan 19, 2024
1 parent 455c683 commit 1455fe3
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions storage/backend/nvme_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/stretchr/testify/require"
"google.golang.org/grpc"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/emptypb"
)

func TestCreateNvmeController(t *testing.T) {
Expand Down Expand Up @@ -102,3 +103,73 @@ func TestCreateNvmeController(t *testing.T) {
})
}
}

func TestDeleteNvmeController(t *testing.T) {
testControllerName := "remotenvme0"
testRequest := &pb.DeleteNvmeRemoteControllerRequest{
Name: testControllerName,
AllowMissing: true,
}
tests := map[string]struct {
giveClientErr error
giveConnectorErr error
wantErr error
wantRequest *pb.DeleteNvmeRemoteControllerRequest
wantConnClosed bool
}{
"successful call": {
giveConnectorErr: nil,
giveClientErr: nil,
wantErr: nil,
wantRequest: proto.Clone(testRequest).(*pb.DeleteNvmeRemoteControllerRequest),
wantConnClosed: true,
},
"client err": {
giveConnectorErr: nil,
giveClientErr: errors.New("Some client error"),
wantErr: errors.New("Some client error"),
wantRequest: proto.Clone(testRequest).(*pb.DeleteNvmeRemoteControllerRequest),
wantConnClosed: true,
},
"connector err": {
giveConnectorErr: errors.New("Some conn error"),
giveClientErr: nil,
wantErr: errors.New("Some conn error"),
wantRequest: nil,
wantConnClosed: false,
},
}

for testName, tt := range tests {
t.Run(testName, func(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

mockClient := mocks.NewNvmeRemoteControllerServiceClient(t)
if tt.wantRequest != nil {
mockClient.EXPECT().DeleteNvmeRemoteController(ctx, tt.wantRequest).
Return(&emptypb.Empty{}, tt.giveClientErr)
}

connClosed := false
mockConn := mocks.NewConnector(t)
mockConn.EXPECT().NewConn().Return(
&grpc.ClientConn{},
func() { connClosed = true },
tt.giveConnectorErr,
)

c, _ := NewWithArgs(
mockConn,
func(grpc.ClientConnInterface) pb.NvmeRemoteControllerServiceClient {
return mockClient
},
)

err := c.DeleteNvmeController(ctx, testControllerName, true)

require.Equal(t, tt.wantErr, err)
require.Equal(t, tt.wantConnClosed, connClosed)
})
}
}

0 comments on commit 1455fe3

Please sign in to comment.