github.com/andy2046/gopie@v0.7.0/pkg/pubsub/pubsub_test.go (about) 1 package pubsub 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 ) 8 9 func TestNewTopic(t *testing.T) { 10 psName := "pubsub-01" 11 psNameExpected := "projects/" + psName 12 ps := New(psName) 13 if ps.Name() != psNameExpected { 14 t.Error("wrong PubSub name, expected", psNameExpected, ", got", ps.Name()) 15 } 16 17 topic1, err := ps.NewTopic("topic-01", 10, 2) 18 if err != nil { 19 t.Error("NewTopic error", err) 20 } 21 22 sub11, _ := topic1.NewSubscription(2) 23 sub11.Receive(func(m *Message) { 24 t.Logf("sub11 Message -> %#v", *m) 25 }) 26 sub12, _ := topic1.NewSubscription(2) 27 sub12.Receive(func(m *Message) { 28 t.Logf("sub12 Message -> %#v", *m) 29 }) 30 31 err1 := topic1.Publish(context.Background(), &Message{ 32 ID: "001", 33 Data: []byte("data"), 34 }) 35 if err1 != nil { 36 t.Logf("topic1.Publish error -> %#v", err1) 37 } 38 39 topic1.Delete() 40 41 topic2, err := ps.NewTopic("topic-02", 10, 2) 42 if err != nil { 43 t.Error("NewTopic error", err) 44 } 45 46 sub2, _ := topic2.NewSubscription(2) 47 sub2.Receive(func(m *Message) { 48 t.Logf("sub2 Message -> %#v", *m) 49 }) 50 51 err2 := topic2.Publish(context.Background(), &Message{ 52 ID: "002", 53 Data: []byte("data"), 54 }) 55 if err2 != nil { 56 t.Logf("topic2.Publish error -> %#v", err2) 57 } 58 59 t.Logf("Topics -> %#v", ps.Topics()) 60 if fmt.Sprintf("%v", ps.Topics()) != fmt.Sprintf("%v", []string{"topic-02"}) { 61 t.Error("Topics should return topic name") 62 } 63 64 topic2.Delete() 65 } 66 67 func TestNewSubscription(t *testing.T) { 68 psName := "pubsub-02" 69 psNameExpected := "projects/" + psName 70 ps := New(psName) 71 if ps.Name() != psNameExpected { 72 t.Error("wrong PubSub name, expected", psNameExpected, ", got", ps.Name()) 73 } 74 75 topic1, err := ps.NewTopic("topic-01", 10, 2) 76 if err != nil { 77 t.Error("NewTopic error", err) 78 } 79 80 sub11, _ := topic1.NewSubscription(2) 81 sub11.Receive(func(m *Message) { 82 t.Logf("sub11 Message -> %#v", *m) 83 }) 84 sub12, _ := topic1.NewSubscription(2) 85 sub12.Receive(func(m *Message) { 86 t.Logf("sub12 Message -> %#v", *m) 87 }) 88 sub13, _ := topic1.NewSubscription(2) 89 sub13.Receive(func(m *Message) { 90 t.Logf("sub13 Message -> %#v", *m) 91 }) 92 93 err1 := topic1.Publish(context.Background(), &Message{ 94 ID: "001", 95 Data: []byte("data"), 96 }) 97 if err1 != nil { 98 t.Logf("topic1.Publish error -> %#v", err1) 99 } 100 101 sub13.Delete() 102 topic1.Delete() 103 }