internal/fakesecretmanager/fakesecretmanager.go (33 lines of code) (raw):
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Package fakesecretmanager provides stubs for secret manager service.
package fakesecretmanager
import (
"context"
"fmt"
smpb "google.golang.org/genproto/googleapis/cloud/secretmanager/v1"
"github.com/googleapis/gax-go/v2"
)
// FakeSecretClient is a fake of the SecretClient.
type FakeSecretClient struct {
SecretVersionResponses map[string]GetSecretVersionResponse
AccessSecretVersionResponses map[string]AccessSecretVersionResponse
}
// GetSecretVersionResponse is a wrapper for secret manager service GetSecretVersion api
// response.
type GetSecretVersionResponse struct {
SecretVersion *smpb.SecretVersion
Error error
}
// AccessSecretVersionResponse is a wrapper for secret manager service AccessSecretVersion
// api response.
type AccessSecretVersionResponse struct {
Response *smpb.AccessSecretVersionResponse
Error error
}
// GetSecretVersion gets the secret version for the given request.
func (s *FakeSecretClient) GetSecretVersion(ctx context.Context, req *smpb.GetSecretVersionRequest, opts ...gax.CallOption) (*smpb.SecretVersion, error) {
resp, ok := s.SecretVersionResponses[req.GetName()]
if !ok || resp.SecretVersion == nil {
return nil, fmt.Errorf("fake client secret version is not found for %s", req.GetName())
}
return resp.SecretVersion, nil
}
// AccessSecretVersion accesses the secret material for the given request.
func (s *FakeSecretClient) AccessSecretVersion(ctx context.Context, req *smpb.AccessSecretVersionRequest, opts ...gax.CallOption) (*smpb.AccessSecretVersionResponse, error) {
resp, ok := s.AccessSecretVersionResponses[req.GetName()]
if !ok || resp.Response == nil {
return nil, fmt.Errorf("fake client secret version is not found for %s", req.GetName())
}
return resp.Response, nil
}