mirror of
https://github.com/documize/community.git
synced 2025-07-19 13:19:43 +02:00
112 lines
2.2 KiB
Go
Executable file
112 lines
2.2 KiB
Go
Executable file
package event
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewServer(t *testing.T) {
|
|
serverBus := NewServer(":2010", "/_server_bus_", New())
|
|
serverBus.Start()
|
|
if serverBus == nil || !serverBus.service.started {
|
|
t.Log("New server EventBus not created!")
|
|
t.Fail()
|
|
}
|
|
serverBus.Stop()
|
|
}
|
|
|
|
func TestNewClient(t *testing.T) {
|
|
clientBus := NewClient(":2015", "/_client_bus_", New())
|
|
clientBus.Start()
|
|
if clientBus == nil || !clientBus.service.started {
|
|
t.Log("New client EventBus not created!")
|
|
t.Fail()
|
|
}
|
|
clientBus.Stop()
|
|
}
|
|
|
|
func TestRegister(t *testing.T) {
|
|
serverPath := "/_server_bus_"
|
|
serverBus := NewServer(":2010", serverPath, New())
|
|
|
|
args := &SubscribeArg{serverBus.address, serverPath, PublishService, Subscribe, "topic"}
|
|
reply := new(bool)
|
|
|
|
serverBus.service.Register(args, reply)
|
|
|
|
if serverBus.eventBus.HasCallback("topic_topic") {
|
|
t.Fail()
|
|
}
|
|
if !serverBus.eventBus.HasCallback("topic") {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func TestPushEvent(t *testing.T) {
|
|
clientBus := NewClient("localhost:2015", "/_client_bus_", New())
|
|
|
|
eventArgs := make([]interface{}, 1)
|
|
eventArgs[0] = 10
|
|
|
|
clientArg := &ClientArg{eventArgs, "topic"}
|
|
reply := new(bool)
|
|
|
|
fn := func(a int) {
|
|
if a != 10 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
clientBus.eventBus.Subscribe("topic", fn)
|
|
clientBus.service.PushEvent(clientArg, reply)
|
|
if !(*reply) {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func TestServerPublish(t *testing.T) {
|
|
serverBus := NewServer(":2020", "/_server_bus_b", New())
|
|
serverBus.Start()
|
|
|
|
fn := func(a int) {
|
|
if a != 10 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
clientBus := NewClient(":2025", "/_client_bus_b", New())
|
|
clientBus.Start()
|
|
|
|
clientBus.Subscribe("topic", fn, ":2010", "/_server_bus_b")
|
|
|
|
serverBus.EventBus().Publish("topic", 10)
|
|
|
|
clientBus.Stop()
|
|
serverBus.Stop()
|
|
}
|
|
|
|
func TestNetworkBus(t *testing.T) {
|
|
networkBusA := NewNetworkBus(":2035", "/_net_bus_A")
|
|
networkBusA.Start()
|
|
|
|
networkBusB := NewNetworkBus(":2030", "/_net_bus_B")
|
|
networkBusB.Start()
|
|
|
|
fnA := func(a int) {
|
|
if a != 10 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
networkBusA.Subscribe("topic-A", fnA, ":2030", "/_net_bus_B")
|
|
networkBusB.EventBus().Publish("topic-A", 10)
|
|
|
|
fnB := func(a int) {
|
|
if a != 20 {
|
|
t.Fail()
|
|
}
|
|
}
|
|
networkBusB.Subscribe("topic-B", fnB, ":2035", "/_net_bus_A")
|
|
networkBusA.EventBus().Publish("topic-B", 20)
|
|
|
|
networkBusA.Stop()
|
|
networkBusB.Stop()
|
|
}
|