package worker

import "testing"

var worker *Worker

func init() {
    worker = New(Unlimited)
}

func TestWorkerAddServer(t *testing.T) {
    t.Log("Add local server 127.0.0.1:4730.")
    if err := worker.AddServer("127.0.0.1:4730"); err != nil {
        t.Error(err)
    }

    if l := len(worker.agents); l != 1 {
        t.Log(worker.agents)
        t.Error("The length of server list should be 1.")
    }
}

func foobar(job *Job) ([]byte, error) {
    return nil, nil
}

func TestWorkerAddFunction(t *testing.T) {
    if err := worker.AddFunc("foobar", foobar, 0); err != nil {
        t.Error(err)
    }
    if err := worker.AddFunc("timeout", foobar, 5); err != nil {
        t.Error(err)
    }
    if l := len(worker.funcs); l != 2 {
        t.Log(worker.funcs)
        t.Errorf("The length of function map should be %d.", 2)
    }
}

func TestWorkerRemoveFunc(t *testing.T) {
    if err := worker.RemoveFunc("foobar"); err != nil {
        t.Error(err)
    }
}