github.com/kjdelisle/consul@v1.4.5/watch/watch_test.go (about) 1 package watch 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "testing" 7 ) 8 9 func TestParseBasic(t *testing.T) { 10 t.Parallel() 11 params := makeParams(t, `{"type":"key", "datacenter":"dc2", "token":"12345", "key":"foo"}`) 12 p, err := Parse(params) 13 if err != nil { 14 t.Fatalf("err: %v", err) 15 } 16 if p.Datacenter != "dc2" { 17 t.Fatalf("Bad: %#v", p) 18 } 19 if p.Token != "12345" { 20 t.Fatalf("Bad: %#v", p) 21 } 22 if p.Type != "key" { 23 t.Fatalf("Bad: %#v", p) 24 } 25 } 26 27 func TestParse_exempt(t *testing.T) { 28 t.Parallel() 29 params := makeParams(t, `{"type":"key", "key":"foo", "handler": "foobar"}`) 30 p, err := ParseExempt(params, []string{"handler"}) 31 if err != nil { 32 t.Fatalf("err: %v", err) 33 } 34 if p.Type != "key" { 35 t.Fatalf("Bad: %#v", p) 36 } 37 ex := p.Exempt["handler"] 38 if ex != "foobar" { 39 t.Fatalf("bad: %v", ex) 40 } 41 } 42 43 func makeParams(t *testing.T, s string) map[string]interface{} { 44 var out map[string]interface{} 45 dec := json.NewDecoder(bytes.NewReader([]byte(s))) 46 if err := dec.Decode(&out); err != nil { 47 t.Fatalf("err: %v", err) 48 } 49 return out 50 }