go: cloud.google.com/go/pubsub/pstest Index | Examples | Files

package pstest

import "cloud.google.com/go/pubsub/pstest"

Package pstest provides a fake Cloud PubSub service for testing. It implements a simplified form of the service, suitable for unit tests. It may behave differently from the actual service in ways in which the service is non-deterministic or unspecified: timing, delivery order, etc.

This package is EXPERIMENTAL and is subject to change without notice.

See the example for usage.

Index

Examples

Package Files

fake.go

func ResetMinAckDeadline Uses

func ResetMinAckDeadline()

ResetMinAckDeadline resets the minack deadline to the default.

func SetMinAckDeadline Uses

func SetMinAckDeadline(n time.Duration)

SetMinAckDeadline changes the minack deadline to n. Must be greater than or equal to 1 second. Remember to reset this value to the default after your test changes it. Example usage:

pstest.SetMinAckDeadlineSecs(1)
defer pstest.ResetMinAckDeadlineSecs()

type GServer Uses

type GServer struct {
    pb.PublisherServer
    pb.SubscriberServer
    // contains filtered or unexported fields
}

GServer is the underlying service implementor. It is not intended to be used directly.

func (*GServer) Acknowledge Uses

func (s *GServer) Acknowledge(_ context.Context, req *pb.AcknowledgeRequest) (*emptypb.Empty, error)

func (*GServer) CreateSubscription Uses

func (s *GServer) CreateSubscription(_ context.Context, ps *pb.Subscription) (*pb.Subscription, error)

func (*GServer) CreateTopic Uses

func (s *GServer) CreateTopic(_ context.Context, t *pb.Topic) (*pb.Topic, error)

func (*GServer) DeleteSubscription Uses

func (s *GServer) DeleteSubscription(_ context.Context, req *pb.DeleteSubscriptionRequest) (*emptypb.Empty, error)

func (*GServer) DeleteTopic Uses

func (s *GServer) DeleteTopic(_ context.Context, req *pb.DeleteTopicRequest) (*emptypb.Empty, error)

func (*GServer) GetSubscription Uses

func (s *GServer) GetSubscription(_ context.Context, req *pb.GetSubscriptionRequest) (*pb.Subscription, error)

func (*GServer) GetTopic Uses

func (s *GServer) GetTopic(_ context.Context, req *pb.GetTopicRequest) (*pb.Topic, error)

func (*GServer) ListSubscriptions Uses

func (s *GServer) ListSubscriptions(_ context.Context, req *pb.ListSubscriptionsRequest) (*pb.ListSubscriptionsResponse, error)

func (*GServer) ListTopicSubscriptions Uses

func (s *GServer) ListTopicSubscriptions(_ context.Context, req *pb.ListTopicSubscriptionsRequest) (*pb.ListTopicSubscriptionsResponse, error)

func (*GServer) ListTopics Uses

func (s *GServer) ListTopics(_ context.Context, req *pb.ListTopicsRequest) (*pb.ListTopicsResponse, error)

func (*GServer) ModifyAckDeadline Uses

func (s *GServer) ModifyAckDeadline(_ context.Context, req *pb.ModifyAckDeadlineRequest) (*emptypb.Empty, error)

func (*GServer) Publish Uses

func (s *GServer) Publish(_ context.Context, req *pb.PublishRequest) (*pb.PublishResponse, error)

func (*GServer) Pull Uses

func (s *GServer) Pull(ctx context.Context, req *pb.PullRequest) (*pb.PullResponse, error)

func (*GServer) Seek Uses

func (s *GServer) Seek(ctx context.Context, req *pb.SeekRequest) (*pb.SeekResponse, error)

func (*GServer) StreamingPull Uses

func (s *GServer) StreamingPull(sps pb.Subscriber_StreamingPullServer) error

func (*GServer) UpdateSubscription Uses

func (s *GServer) UpdateSubscription(_ context.Context, req *pb.UpdateSubscriptionRequest) (*pb.Subscription, error)

func (*GServer) UpdateTopic Uses

func (s *GServer) UpdateTopic(_ context.Context, req *pb.UpdateTopicRequest) (*pb.Topic, error)

type Message Uses

type Message struct {
    ID          string
    Data        []byte
    Attributes  map[string]string
    PublishTime time.Time
    Deliveries  int // number of times delivery of the message was attempted
    Acks        int // number of acks received from clients

    Modacks []Modack // modacks received by server for this message
    // contains filtered or unexported fields
}

A Message is a message that was published to the server.

type Modack Uses

type Modack struct {
    AckID       string
    AckDeadline int32
    ReceivedAt  time.Time
}

Modack represents a modack sent to the server.

type Server Uses

type Server struct {
    Addr    string  // The address that the server is listening on.
    GServer GServer // Not intended to be used directly.
    // contains filtered or unexported fields
}

Server is a fake Pub/Sub server.

func NewServer Uses

func NewServer() *Server

NewServer creates a new fake server running in the current process.

Code:

ctx := context.Background()
// Start a fake server running locally.
srv := pstest.NewServer()
defer srv.Close()
// Connect to the server without using TLS.
conn, err := grpc.Dial(srv.Addr, grpc.WithInsecure())
if err != nil {
    // TODO: Handle error.
}
defer conn.Close()
// Use the connection when creating a pubsub client.
client, err := pubsub.NewClient(ctx, "project", option.WithGRPCConn(conn))
if err != nil {
    // TODO: Handle error.
}
defer client.Close()
_ = client // TODO: Use the client.

func (*Server) Close Uses

func (s *Server) Close() error

Close shuts down the server and releases all resources.

func (*Server) Message Uses

func (s *Server) Message(id string) *Message

Message returns the message with the given ID, or nil if no message with that ID was published.

func (*Server) Messages Uses

func (s *Server) Messages() []*Message

Messages returns information about all messages ever published.

func (*Server) Publish Uses

func (s *Server) Publish(topic string, data []byte, attrs map[string]string) string

Publish behaves as if the Publish RPC was called with a message with the given data and attrs. It returns the ID of the message. The topic will be created if it doesn't exist.

Publish panics if there is an error, which is appropriate for testing.

func (*Server) SetStreamTimeout Uses

func (s *Server) SetStreamTimeout(d time.Duration)

SetStreamTimeout sets the amount of time a stream will be active before it shuts itself down. This mimics the real service's behavior of closing streams after 30 minutes. If SetStreamTimeout is never called or is passed zero, streams never shut down.

func (*Server) Wait Uses

func (s *Server) Wait()

Wait blocks until all server activity has completed.

Package pstest imports 16 packages (graph). Updated 2019-08-23. Refresh now. Tools for package owners.