gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/registry/encoding_test.go (about) 1 package registry 2 3 import ( 4 "testing" 5 ) 6 7 func TestEncoding(t *testing.T) { 8 testData := []*mdnsTxt{ 9 { 10 Version: "1.0.0", 11 Metadata: map[string]string{ 12 "foo": "bar", 13 }, 14 Endpoints: []*Endpoint{ 15 { 16 Name: "endpoint1", 17 Request: &Value{ 18 Name: "request", 19 Type: "request", 20 }, 21 Response: &Value{ 22 Name: "response", 23 Type: "response", 24 }, 25 Metadata: map[string]string{ 26 "foo1": "bar1", 27 }, 28 }, 29 }, 30 }, 31 } 32 33 for _, d := range testData { 34 encoded, err := encode(d) 35 if err != nil { 36 t.Fatal(err) 37 } 38 39 for _, txt := range encoded { 40 if len(txt) > 255 { 41 t.Fatalf("One of parts for txt is %d characters", len(txt)) 42 } 43 } 44 45 decoded, err := decode(encoded) 46 if err != nil { 47 t.Fatal(err) 48 } 49 50 if decoded.Version != d.Version { 51 t.Fatalf("Expected version %s got %s", d.Version, decoded.Version) 52 } 53 54 if len(decoded.Endpoints) != len(d.Endpoints) { 55 t.Fatalf("Expected %d endpoints, got %d", len(d.Endpoints), len(decoded.Endpoints)) 56 } 57 58 for k, v := range d.Metadata { 59 if val := decoded.Metadata[k]; val != v { 60 t.Fatalf("Expected %s=%s got %s=%s", k, v, k, val) 61 } 62 } 63 } 64 65 }