mirror of
https://github.com/documize/community.git
synced 2025-07-23 07:09:43 +02:00
event handlers framework
This commit is contained in:
parent
740c2ca189
commit
bcabe494e3
15 changed files with 1091 additions and 5 deletions
112
core/event/network_bus_test.go
Executable file
112
core/event/network_bus_test.go
Executable file
|
@ -0,0 +1,112 @@
|
|||
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()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue