Add filenameForType

This commit is contained in:
Menghan Li 2016-05-16 16:33:03 -07:00
parent 36cbb03cfe
commit dd2c45bc03
2 changed files with 26 additions and 0 deletions

View File

@ -129,3 +129,13 @@ func (s *serverReflectionServer) nameForType(st reflect.Type) (string, error) {
func (s *serverReflectionServer) nameForPointer(i interface{}) (string, error) {
return s.nameForType(reflect.TypeOf(i).Elem())
}
func (s *serverReflectionServer) filenameForType(st reflect.Type) (string, error) {
fd, _, err := s.fileDescForType(st)
if err != nil {
return "", err
}
return fd.GetName(), nil
}
// TODO filenameForMethod and Service

View File

@ -71,3 +71,19 @@ func TestNameForPointer(t *testing.T) {
}
}
}
func TestFilenameForType(t *testing.T) {
for _, test := range []struct {
st reflect.Type
want string
}{
{reflect.TypeOf(pb.SearchResponse{}), "test.proto"},
{reflect.TypeOf(pb.SearchResponse_Result{}), "test.proto"},
} {
r, err := s.filenameForType(test.st)
t.Logf("filenameForType(%q) = %q, %v", test.st, r, err)
if err != nil || r != test.want {
t.Fatalf("filenameForType(%q) = %q, %v, want %q, <nil>", test.st, r, err, test.want)
}
}
}