github.com/annwntech/go-micro/v2@v2.9.5/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  }