Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

83 řádky
1.5 KiB

  1. package worker
  2. import (
  3. "sync"
  4. "testing"
  5. )
  6. var worker *Worker
  7. func init() {
  8. worker = New(Unlimited)
  9. }
  10. func TestWorkerErrNoneAgents(t *testing.T) {
  11. err := worker.Ready()
  12. if err != ErrNoneAgents {
  13. t.Error("ErrNoneAgents expected.")
  14. }
  15. }
  16. func TestWorkerAddServer(t *testing.T) {
  17. t.Log("Add local server 127.0.0.1:4730.")
  18. if err := worker.AddServer(Network, "127.0.0.1:4730"); err != nil {
  19. t.Error(err)
  20. }
  21. if l := len(worker.agents); l != 1 {
  22. t.Log(worker.agents)
  23. t.Error("The length of server list should be 1.")
  24. }
  25. }
  26. func TestWorkerErrNoneFuncs(t *testing.T) {
  27. err := worker.Ready()
  28. if err != ErrNoneFuncs {
  29. t.Error("ErrNoneFuncs expected.")
  30. }
  31. }
  32. func foobar(job Job) ([]byte, error) {
  33. return nil, nil
  34. }
  35. func TestWorkerAddFunction(t *testing.T) {
  36. if err := worker.AddFunc("foobar", foobar, 0); err != nil {
  37. t.Error(err)
  38. }
  39. if err := worker.AddFunc("timeout", foobar, 5); err != nil {
  40. t.Error(err)
  41. }
  42. if l := len(worker.funcs); l != 2 {
  43. t.Log(worker.funcs)
  44. t.Errorf("The length of function map should be %d.", 2)
  45. }
  46. }
  47. func TestWorkerRemoveFunc(t *testing.T) {
  48. if err := worker.RemoveFunc("foobar"); err != nil {
  49. t.Error(err)
  50. }
  51. }
  52. func TestWork(t *testing.T) {
  53. var wg sync.WaitGroup
  54. worker.JobHandler = func(job Job) error {
  55. t.Logf("%s", job.Data())
  56. wg.Done()
  57. return nil
  58. }
  59. if err := worker.Ready(); err != nil {
  60. t.Error(err)
  61. return
  62. }
  63. go worker.Work()
  64. wg.Add(1)
  65. worker.Echo([]byte("Hello"))
  66. wg.Wait()
  67. }
  68. func TestWorkerClose(t *testing.T) {
  69. worker.Close()
  70. }