github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/util/router/types_test.go (about) 1 package router 2 3 // download from https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/protoc-gen-grpc-gateway/httprule/types_test.go 4 5 import ( 6 "fmt" 7 "testing" 8 ) 9 10 func TestTemplateStringer(t *testing.T) { 11 for _, spec := range []struct { 12 segs []segment 13 want string 14 }{ 15 { 16 segs: []segment{ 17 literal("v1"), 18 }, 19 want: "/v1", 20 }, 21 { 22 segs: []segment{ 23 wildcard{}, 24 }, 25 want: "/*", 26 }, 27 { 28 segs: []segment{ 29 deepWildcard{}, 30 }, 31 want: "/**", 32 }, 33 { 34 segs: []segment{ 35 variable{ 36 path: "name", 37 segments: []segment{ 38 literal("a"), 39 }, 40 }, 41 }, 42 want: "/{name=a}", 43 }, 44 { 45 segs: []segment{ 46 variable{ 47 path: "name", 48 segments: []segment{ 49 literal("a"), 50 wildcard{}, 51 literal("b"), 52 }, 53 }, 54 }, 55 want: "/{name=a/*/b}", 56 }, 57 { 58 segs: []segment{ 59 literal("v1"), 60 variable{ 61 path: "name", 62 segments: []segment{ 63 literal("a"), 64 wildcard{}, 65 literal("b"), 66 }, 67 }, 68 literal("c"), 69 variable{ 70 path: "field.nested", 71 segments: []segment{ 72 wildcard{}, 73 literal("d"), 74 }, 75 }, 76 wildcard{}, 77 literal("e"), 78 deepWildcard{}, 79 }, 80 want: "/v1/{name=a/*/b}/c/{field.nested=*/d}/*/e/**", 81 }, 82 } { 83 tmpl := template{segments: spec.segs} 84 if got, want := tmpl.String(), spec.want; got != want { 85 t.Errorf("%#v.String() = %q; want %q", tmpl, got, want) 86 } 87 88 tmpl.verb = "LOCK" 89 if got, want := tmpl.String(), fmt.Sprintf("%s:LOCK", spec.want); got != want { 90 t.Errorf("%#v.String() = %q; want %q", tmpl, got, want) 91 } 92 } 93 }