github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/rpc/event/network_bus_test.go (about) 1 package event 2 3 import ( 4 "testing" 5 ) 6 7 func TestNewServer(t *testing.T) { 8 serverBus := NewServer(":2010", "/_server_bus_", New()) 9 _ = serverBus.Start() 10 if serverBus == nil || !serverBus.service.started { 11 t.Log("New server Bus not created!") 12 t.Fail() 13 } else { 14 serverBus.Stop() 15 } 16 } 17 18 func TestNewClient(t *testing.T) { 19 clientBus := NewClient(":2015", "/_client_bus_", New()) 20 _ = clientBus.Start() 21 if clientBus == nil || !clientBus.service.started { 22 t.Log("New client Bus not created!") 23 t.Fail() 24 } else { 25 clientBus.Stop() 26 } 27 } 28 29 func TestRegister(t *testing.T) { 30 serverPath := "/_server_bus_" 31 serverBus := NewServer(":2010", serverPath, New()) 32 33 args := &SubscribeArg{serverBus.address, serverPath, PublishService, Subscribe, "topic"} 34 reply := new(bool) 35 36 _ = serverBus.service.Register(args, reply) 37 38 if serverBus.eventBus.HasCallback("topic_topic") { 39 t.Fail() 40 } 41 if !serverBus.eventBus.HasCallback("topic") { 42 t.Fail() 43 } 44 } 45 46 func TestPushEvent(t *testing.T) { 47 clientBus := NewClient("localhost:2015", "/_client_bus_", New()) 48 49 eventArgs := make([]interface{}, 1) 50 eventArgs[0] = 10 51 52 clientArg := &ClientArg{eventArgs, "topic"} 53 reply := new(bool) 54 55 fn := func(a int) { 56 if a != 10 { 57 t.Fail() 58 } 59 } 60 61 _ = clientBus.eventBus.Subscribe("topic", fn) 62 _ = clientBus.service.PushEvent(clientArg, reply) 63 if !(*reply) { 64 t.Fail() 65 } 66 } 67 68 func TestServerPublish(t *testing.T) { 69 serverBus := NewServer(":2020", "/_server_bus_b", New()) 70 _ = serverBus.Start() 71 72 fn := func(a int) { 73 if a != 10 { 74 t.Fail() 75 } 76 } 77 78 clientBus := NewClient(":2025", "/_client_bus_b", New()) 79 _ = clientBus.Start() 80 81 clientBus.Subscribe("topic", fn, ":2010", "/_server_bus_b") 82 83 serverBus.EventBus().Publish("topic", 10) 84 85 clientBus.Stop() 86 serverBus.Stop() 87 } 88 89 func TestNetworkBus(t *testing.T) { 90 networkBusA := NewNetworkBus(":2035", "/_net_bus_A") 91 _ = networkBusA.Start() 92 93 networkBusB := NewNetworkBus(":2030", "/_net_bus_B") 94 _ = networkBusB.Start() 95 96 fnA := func(a int) { 97 if a != 10 { 98 t.Fail() 99 } 100 } 101 networkBusA.Subscribe("topic-A", fnA, ":2030", "/_net_bus_B") 102 networkBusB.EventBus().Publish("topic-A", 10) 103 104 fnB := func(a int) { 105 if a != 20 { 106 t.Fail() 107 } 108 } 109 networkBusB.Subscribe("topic-B", fnB, ":2035", "/_net_bus_A") 110 networkBusA.EventBus().Publish("topic-B", 20) 111 112 networkBusA.Stop() 113 networkBusB.Stop() 114 }