package service import ( "github.com/fox/fox/log" "testing" "time" ) const ( TestSrv = "test" ) type EchoService struct { *BaseService } func (s *EchoService) OnInit() { log.Debug("onInit") } func (s *EchoService) OnStop() { log.Debug("OnStop") } func (s *EchoService) CanStop() bool { log.Debug("CanStop") return true } func (s *EchoService) Send(topic string, msg []byte) error { log.Debug(s.Log("send %v to topic:%v", string(msg), topic)) return nil } func (s *EchoService) Call(topic string, timeout time.Duration, msg []byte) ([]byte, error) { _ = timeout _ = msg log.Debug(s.Log("call topic:%v", topic)) return nil, nil } func (s *EchoService) OnMessage(msg []byte) error { log.Debug(s.Log("on message:%v", string(msg))) return nil } func NewTestService() *EchoService { s := new(EchoService) s.BaseService = NewBaseService(TestSrv, "1", s, s) s.OnInit() return s } func TestService(t *testing.T) { log.Open("test.log", log.DebugL) s := NewTestService() msg := "hello world" _ = s.Write([]byte(msg)) s.RunOnce(func() { time.Sleep(2 * time.Second) }) s.NotifyStop() s.WaitStop() log.Debug("exit") }