mirror of
https://gitlab.crans.org/nounous/ghostream.git
synced 2024-12-23 01:32:19 +00:00
43 lines
893 B
Go
43 lines
893 B
Go
package stream
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestWithoutOutputs(t *testing.T) {
|
|
stream := New()
|
|
defer stream.Close()
|
|
stream.Broadcast <- []byte("hello world")
|
|
}
|
|
|
|
func TestWithOneOutput(t *testing.T) {
|
|
stream := New()
|
|
defer stream.Close()
|
|
|
|
// Register one output
|
|
output := make(chan []byte, 64)
|
|
stream.Register(output)
|
|
stream.IncrementClientCount()
|
|
|
|
// Try to pass one message
|
|
stream.Broadcast <- []byte("hello world")
|
|
msg := <-output
|
|
if string(msg) != "hello world" {
|
|
t.Errorf("Message has wrong content: %s != hello world", msg)
|
|
}
|
|
|
|
// Check client count
|
|
if count := stream.ClientCount(); count != 1 {
|
|
t.Errorf("Client counter returned %d, expected 1", count)
|
|
}
|
|
|
|
// Unregister
|
|
stream.Unregister(output)
|
|
stream.DecrementClientCount()
|
|
|
|
// Check client count
|
|
if count := stream.ClientCount(); count != 0 {
|
|
t.Errorf("Client counter returned %d, expected 0", count)
|
|
}
|
|
}
|