gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/api/resolver/micro/route_test.go (about) 1 package micro 2 3 import ( 4 "testing" 5 ) 6 7 func TestApiRoute(t *testing.T) { 8 testData := []struct { 9 path string 10 service string 11 method string 12 }{ 13 { 14 "/foo/bar", 15 "foo", 16 "Foo.Bar", 17 }, 18 { 19 "/foo/foo/bar", 20 "foo", 21 "Foo.Bar", 22 }, 23 { 24 "/foo/bar/baz", 25 "foo", 26 "Bar.Baz", 27 }, 28 { 29 "/foo/bar/baz-xyz", 30 "foo", 31 "Bar.BazXyz", 32 }, 33 { 34 "/foo/bar/baz/cat", 35 "foo.bar", 36 "Baz.Cat", 37 }, 38 { 39 "/foo/bar/baz/cat/car", 40 "foo.bar.baz", 41 "Cat.Car", 42 }, 43 { 44 "/foo/fooBar/bazCat", 45 "foo", 46 "FooBar.BazCat", 47 }, 48 { 49 "/v1/foo/bar", 50 "v1.foo", 51 "Foo.Bar", 52 }, 53 { 54 "/v1/foo/bar/baz", 55 "v1.foo", 56 "Bar.Baz", 57 }, 58 { 59 "/v1/foo/bar/baz/cat", 60 "v1.foo.bar", 61 "Baz.Cat", 62 }, 63 } 64 65 for _, d := range testData { 66 s, m := apiRoute(d.path) 67 if d.service != s { 68 t.Fatalf("Expected service: %s for path: %s got: %s %s", d.service, d.path, s, m) 69 } 70 if d.method != m { 71 t.Fatalf("Expected service: %s for path: %s got: %s", d.method, d.path, m) 72 } 73 } 74 } 75 76 func TestProxyRoute(t *testing.T) { 77 testData := []struct { 78 path string 79 service string 80 }{ 81 // no namespace 82 { 83 "/f", 84 "f", 85 }, 86 { 87 "/f", 88 "f", 89 }, 90 { 91 "/f-b", 92 "f-b", 93 }, 94 { 95 "/foo/bar", 96 "foo", 97 }, 98 { 99 "/foo-bar", 100 "foo-bar", 101 }, 102 { 103 "/foo-bar-baz", 104 "foo-bar-baz", 105 }, 106 { 107 "/foo/bar/bar", 108 "foo", 109 }, 110 { 111 "/v1/foo/bar", 112 "v1.foo", 113 }, 114 { 115 "/v1/foo/bar/baz", 116 "v1.foo", 117 }, 118 { 119 "/v1/foo/bar/baz/cat", 120 "v1.foo", 121 }, 122 } 123 124 for _, d := range testData { 125 s := proxyRoute(d.path) 126 if d.service != s { 127 t.Fatalf("Expected service: %s for path: %s got: %s", d.service, d.path, s) 128 } 129 } 130 }