| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- package pubsub_test
 
- import (
 
- 	"testing"
 
- 	"time"
 
- 	"github.com/v2ray/v2ray-core/app"
 
- 	. "github.com/v2ray/v2ray-core/app/pubsub"
 
- 	apptesting "github.com/v2ray/v2ray-core/app/testing"
 
- 	v2testing "github.com/v2ray/v2ray-core/testing"
 
- 	"github.com/v2ray/v2ray-core/testing/assert"
 
- )
 
- func TestPubsub(t *testing.T) {
 
- 	v2testing.Current(t)
 
- 	messages := make(map[string]app.PubsubMessage)
 
- 	pubsub := New()
 
- 	pubsub.Subscribe(&apptesting.Context{}, "t1", func(message app.PubsubMessage) {
 
- 		messages["t1"] = message
 
- 	})
 
- 	pubsub.Subscribe(&apptesting.Context{}, "t2", func(message app.PubsubMessage) {
 
- 		messages["t2"] = message
 
- 	})
 
- 	message := app.PubsubMessage([]byte("This is a pubsub message."))
 
- 	pubsub.Publish(&apptesting.Context{}, "t2", message)
 
- 	<-time.Tick(time.Second)
 
- 	_, found := messages["t1"]
 
- 	assert.Bool(found).IsFalse()
 
- 	actualMessage, found := messages["t2"]
 
- 	assert.Bool(found).IsTrue()
 
- 	assert.StringLiteral(string(actualMessage)).Equals(string(message))
 
- }
 
 
  |