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  }