diff options
author | Valery Piashchynski <[email protected]> | 2021-05-03 22:52:30 +0300 |
---|---|---|
committer | Valery Piashchynski <[email protected]> | 2021-05-03 22:52:30 +0300 |
commit | 9ee78f937d5be67058882dd3590f89da35bca239 (patch) | |
tree | 17cda27feabf5f2b8afc6a2796117835045afd36 /plugins/broadcast/root/client_test.go | |
parent | 009b7009885d8a15e6fa6c7e78436087b2f20129 (diff) |
- Initial broadcast commit
Signed-off-by: Valery Piashchynski <[email protected]>
Diffstat (limited to 'plugins/broadcast/root/client_test.go')
-rw-r--r-- | plugins/broadcast/root/client_test.go | 59 |
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()) +} |