gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/util/grpc/grpc_test.go (about) 1 package grpc 2 3 import ( 4 "testing" 5 ) 6 7 func TestServiceMethod(t *testing.T) { 8 type testCase struct { 9 input string 10 service string 11 method string 12 err bool 13 } 14 15 methods := []testCase{ 16 {"Foo.Bar", "Foo", "Bar", false}, 17 {"/Foo/Bar", "Foo", "Bar", false}, 18 {"/package.Foo/Bar", "Foo", "Bar", false}, 19 {"/a.package.Foo/Bar", "Foo", "Bar", false}, 20 {"a.package.Foo/Bar", "", "", true}, 21 {"/Foo/Bar/Baz", "", "", true}, 22 {"Foo.Bar.Baz", "", "", true}, 23 } 24 for _, test := range methods { 25 service, method, err := ServiceMethod(test.input) 26 if err != nil && test.err == true { 27 continue 28 } 29 // unexpected error 30 if err != nil && test.err == false { 31 t.Fatalf("unexpected err %v for %+v", err, test) 32 } 33 // expecter error 34 if test.err == true && err == nil { 35 t.Fatalf("expected error for %+v: got service: %s method: %s", test, service, method) 36 } 37 38 if service != test.service { 39 t.Fatalf("wrong service for %+v: got service: %s method: %s", test, service, method) 40 } 41 42 if method != test.method { 43 t.Fatalf("wrong method for %+v: got service: %s method: %s", test, service, method) 44 } 45 } 46 }