aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2023-09-30 21:36:58 -0700
committerchrislu <chris.lu@gmail.com>2023-09-30 21:36:58 -0700
commit02cb7994816e67e2426288868ad862900bf41b93 (patch)
treefa3a5b4e9c2ab924447b6452d28dd51cacb3e9d9
parentc4e65451971f989a997963c1443d726c4d50c663 (diff)
downloadseaweedfs-02cb7994816e67e2426288868ad862900bf41b93.tar.xz
seaweedfs-02cb7994816e67e2426288868ad862900bf41b93.zip
add a test framework for grpc
-rw-r--r--weed/mq/broker/broker_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/weed/mq/broker/broker_test.go b/weed/mq/broker/broker_test.go
new file mode 100644
index 000000000..3d0b0a19c
--- /dev/null
+++ b/weed/mq/broker/broker_test.go
@@ -0,0 +1,47 @@
+package broker
+
+import (
+ "context"
+ "fmt"
+ "net"
+ "testing"
+ "time"
+
+ "github.com/seaweedfs/seaweedfs/weed/pb/mq_pb"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/test/bufconn"
+)
+
+var lis *bufconn.Listener
+
+func init() {
+ lis = bufconn.Listen(1024 * 1024)
+ server := grpc.NewServer()
+ mq_pb.RegisterSeaweedMessagingServer(server, &MessageQueueBroker{})
+ go func() {
+ if err := server.Serve(lis); err != nil {
+ fmt.Printf("Server exited with error: %v", err)
+ }
+ }()
+}
+
+func bufDialer(string, time.Duration) (net.Conn, error) {
+ return lis.Dial()
+}
+
+func TestMessageQueueBroker_ListTopics(t *testing.T) {
+ conn, err := grpc.DialContext(context.Background(), "bufnet", grpc.WithDialer(bufDialer), grpc.WithInsecure())
+ if err != nil {
+ t.Fatalf("Failed to dial bufnet: %v", err)
+ }
+ defer conn.Close()
+
+ client := mq_pb.NewSeaweedMessagingClient(conn)
+ request := &mq_pb.ListTopicsRequest{}
+
+ _, err = client.ListTopics(context.Background(), request)
+ if err == nil {
+ t.Fatalf("Add failed: %v", err)
+ }
+
+}