This is to prevent users that aren't connected to the socket (somehow), to not fill up memory with buffered messages we'll never need.
61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSendingNotifications(t *testing.T) {
|
|
assert := assert.New(t)
|
|
require := require.New(t)
|
|
|
|
notifier := NewNotifier[string](3)
|
|
|
|
notifier.AddKey("1")
|
|
|
|
err := notifier.SendAndCreate("1", "a")
|
|
require.NoError(err)
|
|
|
|
err = notifier.SendAndCreate("1", "b")
|
|
require.NoError(err)
|
|
|
|
err = notifier.SendAndCreate("1", "c")
|
|
require.NoError(err)
|
|
|
|
ch := notifier.Listeners["1"]
|
|
|
|
a := <-ch
|
|
b := <-ch
|
|
c := <-ch
|
|
|
|
assert.Equal(a, "a")
|
|
assert.Equal(b, "b")
|
|
assert.Equal(c, "c")
|
|
}
|
|
|
|
func TestFullBuffer(t *testing.T) {
|
|
assert := assert.New(t)
|
|
require := require.New(t)
|
|
|
|
notifier := NewNotifier[string](1)
|
|
|
|
notifier.AddKey("1")
|
|
|
|
err := notifier.SendAndCreate("1", "a")
|
|
require.NoError(err)
|
|
|
|
err = notifier.SendAndCreate("1", "b")
|
|
|
|
assert.Error(err)
|
|
}
|
|
|
|
func TestNoAllowedKey(t *testing.T) {
|
|
require := require.New(t)
|
|
notifier := NewNotifier[string](1)
|
|
|
|
err := notifier.SendAndCreate("1", "a")
|
|
require.Error(err)
|
|
}
|