Skip to content

Commit

Permalink
Tests for grpc handler
Browse files Browse the repository at this point in the history
  • Loading branch information
fasmat committed Aug 21, 2023
1 parent 6badd0b commit a910104
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions api/grpcserver/smesher_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,85 @@ func TestSmesherService_PostSetupProviders(t *testing.T) {
require.EqualValues(t, providers[1].ID, resp.Providers[1].Id)
require.Equal(t, uint64(100_000), resp.Providers[1].Performance)
}

func TestSmesherService_PostSetupStatus(t *testing.T) {
t.Run("completed", func(t *testing.T) {
ctrl := gomock.NewController(t)
postSetupProvider := activation.NewMockpostSetupProvider(ctrl)
smeshingProvider := activation.NewMockSmeshingProvider(ctrl)
svc := grpcserver.NewSmesherService(postSetupProvider, smeshingProvider, time.Second, activation.DefaultPostSetupOpts(), logtest.New(t).WithName("grpc.Smesher"))

postSetupProvider.EXPECT().Status().Return(&activation.PostSetupStatus{
State: activation.PostSetupStateComplete,
NumLabelsWritten: 1_000,
LastOpts: nil,
})
resp, err := svc.PostSetupStatus(context.Background(), &emptypb.Empty{})
require.NoError(t, err)
require.Equal(t, pb.PostSetupStatus_STATE_COMPLETE, resp.Status.State)
require.EqualValues(t, 1_000, resp.Status.NumLabelsWritten)
require.Nil(t, resp.Status.Opts)
})

t.Run("completed with last Opts", func(t *testing.T) {
ctrl := gomock.NewController(t)
postSetupProvider := activation.NewMockpostSetupProvider(ctrl)
smeshingProvider := activation.NewMockSmeshingProvider(ctrl)
svc := grpcserver.NewSmesherService(postSetupProvider, smeshingProvider, time.Second, activation.DefaultPostSetupOpts(), logtest.New(t).WithName("grpc.Smesher"))

id := activation.PostProviderID{}
id.SetInt64(1)
opts := activation.PostSetupOpts{
DataDir: "data-dir",
NumUnits: 4,
MaxFileSize: 1024,
ProviderID: id,
Throttle: true,
}
postSetupProvider.EXPECT().Status().Return(&activation.PostSetupStatus{
State: activation.PostSetupStateComplete,
NumLabelsWritten: 1_000,
LastOpts: &opts,
})
resp, err := svc.PostSetupStatus(context.Background(), &emptypb.Empty{})
require.NoError(t, err)
require.Equal(t, pb.PostSetupStatus_STATE_COMPLETE, resp.Status.State)
require.EqualValues(t, 1_000, resp.Status.NumLabelsWritten)
require.Equal(t, "data-dir", resp.Status.Opts.DataDir)
require.EqualValues(t, 4, resp.Status.Opts.NumUnits)
require.EqualValues(t, 1024, resp.Status.Opts.MaxFileSize)
require.EqualValues(t, 1, *resp.Status.Opts.ProviderId)
require.True(t, resp.Status.Opts.Throttle)
})

t.Run("in progress", func(t *testing.T) {
ctrl := gomock.NewController(t)
postSetupProvider := activation.NewMockpostSetupProvider(ctrl)
smeshingProvider := activation.NewMockSmeshingProvider(ctrl)
svc := grpcserver.NewSmesherService(postSetupProvider, smeshingProvider, time.Second, activation.DefaultPostSetupOpts(), logtest.New(t).WithName("grpc.Smesher"))

id := activation.PostProviderID{}
id.SetInt64(100)
opts := activation.PostSetupOpts{
DataDir: "data-dir",
NumUnits: 4,
MaxFileSize: 1024,
ProviderID: id,
Throttle: false,
}
postSetupProvider.EXPECT().Status().Return(&activation.PostSetupStatus{
State: activation.PostSetupStateInProgress,
NumLabelsWritten: 1_000,
LastOpts: &opts,
})
resp, err := svc.PostSetupStatus(context.Background(), &emptypb.Empty{})
require.NoError(t, err)
require.Equal(t, pb.PostSetupStatus_STATE_IN_PROGRESS, resp.Status.State)
require.EqualValues(t, 1_000, resp.Status.NumLabelsWritten)
require.Equal(t, "data-dir", resp.Status.Opts.DataDir)
require.EqualValues(t, 4, resp.Status.Opts.NumUnits)
require.EqualValues(t, 1024, resp.Status.Opts.MaxFileSize)
require.EqualValues(t, 100, *resp.Status.Opts.ProviderId)
require.False(t, resp.Status.Opts.Throttle)
})
}

0 comments on commit a910104

Please sign in to comment.