Adding upstream version 0.28.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
88f1d47ab6
commit
e28c88ef14
933 changed files with 194711 additions and 0 deletions
134
tools/subscriptions/broker_test.go
Normal file
134
tools/subscriptions/broker_test.go
Normal file
|
@ -0,0 +1,134 @@
|
|||
package subscriptions_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/pocketbase/pocketbase/tools/subscriptions"
|
||||
)
|
||||
|
||||
func TestNewBroker(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
if b.Clients() == nil {
|
||||
t.Fatal("Expected clients map to be initialized")
|
||||
}
|
||||
}
|
||||
|
||||
func TestClients(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
if total := len(b.Clients()); total != 0 {
|
||||
t.Fatalf("Expected no clients, got %v", total)
|
||||
}
|
||||
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
|
||||
// check if it is a shallow copy
|
||||
clients := b.Clients()
|
||||
for k := range clients {
|
||||
delete(clients, k)
|
||||
}
|
||||
|
||||
// should return a new copy
|
||||
if total := len(b.Clients()); total != 2 {
|
||||
t.Fatalf("Expected 2 clients, got %v", total)
|
||||
}
|
||||
}
|
||||
|
||||
func TestChunkedClients(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
chunks := b.ChunkedClients(2)
|
||||
if total := len(chunks); total != 0 {
|
||||
t.Fatalf("Expected %d chunks, got %d", 0, total)
|
||||
}
|
||||
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
|
||||
chunks = b.ChunkedClients(2)
|
||||
if total := len(chunks); total != 2 {
|
||||
t.Fatalf("Expected %d chunks, got %d", 2, total)
|
||||
}
|
||||
|
||||
if total := len(chunks[0]); total != 2 {
|
||||
t.Fatalf("Expected the first chunk to have 2 clients, got %d", total)
|
||||
}
|
||||
|
||||
if total := len(chunks[1]); total != 1 {
|
||||
t.Fatalf("Expected the second chunk to have 1 client, got %d", total)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTotalClients(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
if total := b.TotalClients(); total != 0 {
|
||||
t.Fatalf("Expected no clients, got %d", total)
|
||||
}
|
||||
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
b.Register(subscriptions.NewDefaultClient())
|
||||
|
||||
if total := b.TotalClients(); total != 2 {
|
||||
t.Fatalf("Expected %d clients, got %d", 2, total)
|
||||
}
|
||||
}
|
||||
|
||||
func TestClientById(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
clientA := subscriptions.NewDefaultClient()
|
||||
clientB := subscriptions.NewDefaultClient()
|
||||
b.Register(clientA)
|
||||
b.Register(clientB)
|
||||
|
||||
resultClient, err := b.ClientById(clientA.Id())
|
||||
if err != nil {
|
||||
t.Fatalf("Expected client with id %s, got error %v", clientA.Id(), err)
|
||||
}
|
||||
if resultClient.Id() != clientA.Id() {
|
||||
t.Fatalf("Expected client %s, got %s", clientA.Id(), resultClient.Id())
|
||||
}
|
||||
|
||||
if c, err := b.ClientById("missing"); err == nil {
|
||||
t.Fatalf("Expected error, found client %v", c)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegister(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
client := subscriptions.NewDefaultClient()
|
||||
b.Register(client)
|
||||
|
||||
if _, err := b.ClientById(client.Id()); err != nil {
|
||||
t.Fatalf("Expected client with id %s, got error %v", client.Id(), err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnregister(t *testing.T) {
|
||||
b := subscriptions.NewBroker()
|
||||
|
||||
clientA := subscriptions.NewDefaultClient()
|
||||
clientB := subscriptions.NewDefaultClient()
|
||||
b.Register(clientA)
|
||||
b.Register(clientB)
|
||||
|
||||
if _, err := b.ClientById(clientA.Id()); err != nil {
|
||||
t.Fatalf("Expected client with id %s, got error %v", clientA.Id(), err)
|
||||
}
|
||||
|
||||
b.Unregister(clientA.Id())
|
||||
|
||||
if c, err := b.ClientById(clientA.Id()); err == nil {
|
||||
t.Fatalf("Expected error, found client %v", c)
|
||||
}
|
||||
|
||||
// clientB shouldn't have been removed
|
||||
if _, err := b.ClientById(clientB.Id()); err != nil {
|
||||
t.Fatalf("Expected client with id %s, got error %v", clientB.Id(), err)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue