1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
package EventBus
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()
}
|