package testing import ( "context" csipbv1 "github.com/container-storage-interface/spec/lib/go/csi" "google.golang.org/grpc" ) // IdentityClient is a CSI identity client used for testing type IdentityClient struct { NextErr error NextPluginInfo *csipbv1.GetPluginInfoResponse NextPluginCapabilities *csipbv1.GetPluginCapabilitiesResponse NextPluginProbe *csipbv1.ProbeResponse } // NewIdentityClient returns a new IdentityClient func NewIdentityClient() *IdentityClient { return &IdentityClient{} } func (f *IdentityClient) Reset() { f.NextErr = nil f.NextPluginInfo = nil f.NextPluginCapabilities = nil f.NextPluginProbe = nil } // GetPluginInfo returns plugin info func (f *IdentityClient) GetPluginInfo(ctx context.Context, in *csipbv1.GetPluginInfoRequest, opts ...grpc.CallOption) (*csipbv1.GetPluginInfoResponse, error) { return f.NextPluginInfo, f.NextErr } // GetPluginCapabilities implements csi method func (f *IdentityClient) GetPluginCapabilities(ctx context.Context, in *csipbv1.GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.GetPluginCapabilitiesResponse, error) { return f.NextPluginCapabilities, f.NextErr } // Probe implements csi method func (f *IdentityClient) Probe(ctx context.Context, in *csipbv1.ProbeRequest, opts ...grpc.CallOption) (*csipbv1.ProbeResponse, error) { return f.NextPluginProbe, f.NextErr } // ControllerClient is a CSI controller client used for testing type ControllerClient struct { NextErr error NextCapabilitiesResponse *csipbv1.ControllerGetCapabilitiesResponse NextPublishVolumeResponse *csipbv1.ControllerPublishVolumeResponse NextUnpublishVolumeResponse *csipbv1.ControllerUnpublishVolumeResponse } // NewControllerClient returns a new ControllerClient func NewControllerClient() *ControllerClient { return &ControllerClient{} } func (f *ControllerClient) Reset() { f.NextErr = nil f.NextCapabilitiesResponse = nil f.NextPublishVolumeResponse = nil f.NextUnpublishVolumeResponse = nil } func (c *ControllerClient) ControllerGetCapabilities(ctx context.Context, in *csipbv1.ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.ControllerGetCapabilitiesResponse, error) { return c.NextCapabilitiesResponse, c.NextErr } func (c *ControllerClient) ControllerPublishVolume(ctx context.Context, in *csipbv1.ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.ControllerPublishVolumeResponse, error) { return c.NextPublishVolumeResponse, c.NextErr } func (c *ControllerClient) ControllerUnpublishVolume(ctx context.Context, in *csipbv1.ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*csipbv1.ControllerUnpublishVolumeResponse, error) { return c.NextUnpublishVolumeResponse, c.NextErr } func (c *ControllerClient) ValidateVolumeCapabilities(ctx context.Context, in *csipbv1.ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*csipbv1.ValidateVolumeCapabilitiesResponse, error) { panic("not implemented") // TODO: Implement }