20 lines
615 B
Go
20 lines
615 B
Go
package ws
|
|
|
|
import "testing"
|
|
|
|
func TestHubRegisterBroadcastAndUnregister(t *testing.T) {
|
|
hub := NewHub()
|
|
client := &Client{hub: hub, room: "test", clientID: "one", send: make(chan OutgoingMessage, 1)}
|
|
if online := hub.Register(client); online != 1 {
|
|
t.Fatalf("Register() online = %d", online)
|
|
}
|
|
hub.Broadcast("test", OutgoingMessage{Type: EventMessage, Data: "hello"})
|
|
message := <-client.send
|
|
if message.Data != "hello" {
|
|
t.Fatalf("Broadcast() data = %q", message.Data)
|
|
}
|
|
if online := hub.Unregister(client); online != 0 || hub.Count("test") != 0 {
|
|
t.Fatalf("Unregister() online = %d", online)
|
|
}
|
|
}
|