From b5ccace5a2c25da75d3ba2acf7e819943eac7564 Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Mon, 19 Feb 2018 21:57:00 -0500 Subject: [PATCH] add test that repros issue #9 --- grpcurl_test.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/grpcurl_test.go b/grpcurl_test.go index 4e373f8..5322fac 100644 --- a/grpcurl_test.go +++ b/grpcurl_test.go @@ -116,6 +116,28 @@ func TestServerDoesNotSupportReflection(t *testing.T) { } } +func TestProtosetWithImports(t *testing.T) { + sourceProtoset, err := DescriptorSourceFromProtoSets("testing/example.protoset") + if err != nil { + t.Fatalf("failed to load protoset: %v", err) + } + // really shallow check of the loaded descriptors + if sd, err := sourceProtoset.FindSymbol("TestService"); err != nil { + t.Errorf("failed to find TestService in protoset: %v", err) + } else if sd == nil { + t.Errorf("FindSymbol returned nil for TestService") + } else if _, ok := sd.(*desc.ServiceDescriptor); !ok { + t.Errorf("FindSymbol returned wrong kind of descriptor for TestService: %T", sd) + } + if md, err := sourceProtoset.FindSymbol("TestRequest"); err != nil { + t.Errorf("failed to find TestRequest in protoset: %v", err) + } else if md == nil { + t.Errorf("FindSymbol returned nil for TestRequest") + } else if _, ok := md.(*desc.MessageDescriptor); !ok { + t.Errorf("FindSymbol returned wrong kind of descriptor for TestRequest: %T", md) + } +} + func TestListServicesProtoset(t *testing.T) { doTestListServices(t, sourceProtoset, false) }