consul/command/agent/watch_handler_test.go

46 lines
1.0 KiB
Go
Raw Normal View History

2014-08-21 21:28:16 +00:00
package agent
import (
"io/ioutil"
"os"
2016-01-13 05:10:25 +00:00
"sync"
2014-08-21 21:28:16 +00:00
"testing"
)
func TestVerifyWatchHandler(t *testing.T) {
if err := verifyWatchHandler(nil); err == nil {
t.Fatalf("should err")
}
if err := verifyWatchHandler(123); err == nil {
t.Fatalf("should err")
}
if err := verifyWatchHandler([]string{"foo"}); err == nil {
t.Fatalf("should err")
}
if err := verifyWatchHandler("foo"); err != nil {
t.Fatalf("err: %v", err)
}
}
func TestMakeWatchHandler(t *testing.T) {
defer os.Remove("handler_out")
defer os.Remove("handler_index_out")
script := "echo $CONSUL_INDEX >> handler_index_out && cat >> handler_out"
2016-01-13 05:10:25 +00:00
handler := makeWatchHandler(os.Stderr, script, &sync.RWMutex{})
2014-08-21 21:28:16 +00:00
handler(100, []string{"foo", "bar", "baz"})
raw, err := ioutil.ReadFile("handler_out")
if err != nil {
t.Fatalf("err: %v", err)
}
if string(raw) != "[\"foo\",\"bar\",\"baz\"]\n" {
t.Fatalf("bad: %s", raw)
}
raw, err = ioutil.ReadFile("handler_index_out")
if err != nil {
t.Fatalf("err: %v", err)
}
if string(raw) != "100\n" {
t.Fatalf("bad: %s", raw)
}
}