summaryrefslogtreecommitdiff
path: root/plugins/broadcast/root/client_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/broadcast/root/client_test.go')
-rw-r--r--plugins/broadcast/root/client_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/plugins/broadcast/root/client_test.go b/plugins/broadcast/root/client_test.go
new file mode 100644
index 00000000..52a50d57
--- /dev/null
+++ b/plugins/broadcast/root/client_test.go
@@ -0,0 +1,59 @@
+package broadcast
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func Test_Client_Topics(t *testing.T) {
+ br, _, c := setup(`{}`)
+ defer c.Stop()
+
+ client := br.NewClient()
+ defer client.Close()
+
+ assert.Equal(t, []string{}, client.Topics())
+
+ assert.NoError(t, client.Subscribe("topic"))
+ assert.Equal(t, []string{"topic"}, client.Topics())
+
+ assert.NoError(t, client.Subscribe("topic"))
+ assert.Equal(t, []string{"topic"}, client.Topics())
+
+ assert.NoError(t, br.broker.Subscribe(client.upstream, "topic"))
+ assert.Equal(t, []string{"topic"}, client.Topics())
+
+ assert.NoError(t, br.Broker().Publish(newMessage("topic", "hello1")))
+ assert.Equal(t, `hello1`, readStr(<-client.Channel()))
+
+ assert.NoError(t, client.Unsubscribe("topic"))
+ assert.NoError(t, client.Unsubscribe("topic"))
+ assert.NoError(t, br.broker.Unsubscribe(client.upstream, "topic"))
+
+ assert.Equal(t, []string{}, client.Topics())
+}
+
+func Test_Client_Patterns(t *testing.T) {
+ br, _, c := setup(`{}`)
+ defer c.Stop()
+
+ client := br.NewClient()
+ defer client.Close()
+
+ assert.Equal(t, []string{}, client.Patterns())
+
+ assert.NoError(t, client.SubscribePattern("topic/*"))
+ assert.Equal(t, []string{"topic/*"}, client.Patterns())
+
+ assert.NoError(t, br.broker.SubscribePattern(client.upstream, "topic/*"))
+ assert.Equal(t, []string{"topic/*"}, client.Patterns())
+
+ assert.NoError(t, br.Broker().Publish(newMessage("topic/1", "hello1")))
+ assert.Equal(t, `hello1`, readStr(<-client.Channel()))
+
+ assert.NoError(t, client.UnsubscribePattern("topic/*"))
+ assert.NoError(t, br.broker.UnsubscribePattern(client.upstream, "topic/*"))
+
+ assert.Equal(t, []string{}, client.Patterns())
+}