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  }