bus_test.go 761 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package bus
  2. import (
  3. "errors"
  4. "testing"
  5. )
  6. type TestQuery struct {
  7. Id int64
  8. Resp string
  9. }
  10. func TestHandlerReturnsError(t *testing.T) {
  11. bus := New()
  12. bus.AddQueryHandler(func(query *TestQuery) error {
  13. return errors.New("handler error")
  14. })
  15. err := bus.SendQuery(&TestQuery{})
  16. if err == nil {
  17. t.Fatal("Send query failed %v", err)
  18. } else {
  19. t.Log("Handler error received ok")
  20. }
  21. }
  22. func TestHandlerReturn(t *testing.T) {
  23. bus := New()
  24. bus.AddQueryHandler(func(q *TestQuery) error {
  25. q.Resp = "hello from handler"
  26. return nil
  27. })
  28. query := &TestQuery{}
  29. err := bus.SendQuery(query)
  30. if err != nil {
  31. t.Fatal("Send query failed %v", err)
  32. } else if query.Resp != "hello from handler" {
  33. t.Fatal("Failed to get response from handler")
  34. }
  35. }