github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/events/actor_event_test.go (about) 1 /* 2 * Copyright (C) 2018 The ontology Authors 3 * This file is part of The ontology library. 4 * 5 * The ontology is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU Lesser General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * The ontology is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with The ontology. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package events 20 21 import ( 22 "fmt" 23 "testing" 24 "time" 25 26 "github.com/ontio/ontology-eventbus/actor" 27 ) 28 29 const testTopic = "test" 30 31 type testMessage struct { 32 Message string 33 } 34 35 func testSubReceive(c actor.Context) { 36 switch msg := c.Message().(type) { 37 case *testMessage: 38 fmt.Printf("PID:%s receive message:%s\n", c.Self().Id, msg.Message) 39 } 40 } 41 42 func TestActorEvent(t *testing.T) { 43 Init() 44 subPID1 := actor.Spawn(actor.FromFunc(testSubReceive)) 45 subPID2 := actor.Spawn(actor.FromFunc(testSubReceive)) 46 sub1 := NewActorSubscriber(subPID1) 47 sub2 := NewActorSubscriber(subPID2) 48 sub1.Subscribe(testTopic) 49 sub2.Subscribe(testTopic) 50 DefActorPublisher.Publish(testTopic, &testMessage{Message: "Hello"}) 51 time.Sleep(time.Millisecond) 52 DefActorPublisher.Publish(testTopic, &testMessage{Message: "Word"}) 53 }