diff --git a/consul/structs/structs_test.go b/consul/structs/structs_test.go index c025054cc..e5944cbe4 100644 --- a/consul/structs/structs_test.go +++ b/consul/structs/structs_test.go @@ -1 +1,34 @@ package structs + +import ( + "reflect" + "testing" +) + +func TestEncodeDecode(t *testing.T) { + arg := &RegisterRequest{ + Datacenter: "foo", + Node: "bar", + Address: "baz", + Service: &NodeService{ + Service: "test", + }, + } + buf, err := Encode(RegisterRequestType, arg) + if err != nil { + t.Fatalf("err: %v", err) + } + + var out RegisterRequest + err = Decode(buf[1:], &out) + if err != nil { + t.Fatalf("err: %v", err) + } + + if !reflect.DeepEqual(arg.Service, out.Service) { + t.Fatalf("bad: %#v %#v", arg.Service, out.Service) + } + if !reflect.DeepEqual(arg, &out) { + t.Fatalf("bad: %#v %#v", arg, out) + } +}