| // Copyright (c) HashiCorp, Inc. |
| // SPDX-License-Identifier: MPL-2.0 |
| |
| package plugin |
| |
| import ( |
| "context" |
| "testing" |
| |
| "google.golang.org/grpc" |
| |
| "github.com/hashicorp/go-plugin" |
| "github.com/hashicorp/vault/sdk/logical" |
| "github.com/hashicorp/vault/sdk/plugin/pb" |
| ) |
| |
| func TestStorage_GRPC_ReturnsErrIfStorageNil(t *testing.T) { |
| _, err := new(GRPCStorageServer).Get(context.Background(), nil) |
| if err == nil { |
| t.Error("Expected error when using server with no impl") |
| } |
| } |
| |
| func TestStorage_impl(t *testing.T) { |
| var _ logical.Storage = new(GRPCStorageClient) |
| } |
| |
| func TestStorage_GRPC(t *testing.T) { |
| storage := &logical.InmemStorage{} |
| client, _ := plugin.TestGRPCConn(t, func(s *grpc.Server) { |
| pb.RegisterStorageServer(s, &GRPCStorageServer{ |
| impl: storage, |
| }) |
| }) |
| defer client.Close() |
| |
| testStorage := &GRPCStorageClient{client: pb.NewStorageClient(client)} |
| |
| logical.TestStorage(t, testStorage) |
| } |