descriptorsource_test.go 961 B

123456789101112131415161718192021222324252627282930313233
  1. package internal
  2. import (
  3. "encoding/base64"
  4. "io/ioutil"
  5. "os"
  6. "testing"
  7. "github.com/fullstorydev/grpcurl"
  8. "github.com/stretchr/testify/assert"
  9. "github.com/zeromicro/go-zero/core/hash"
  10. )
  11. const b64pb = `CpgBCgtoZWxsby5wcm90bxIFaGVsbG8iHQoHUmVxdWVzdBISCgRwaW5nGAEgASgJUgRwaW5nIh4KCFJlc3BvbnNlEhIKBHBvbmcYASABKAlSBHBvbmcyMAoFSGVsbG8SJwoEUGluZxIOLmhlbGxvLlJlcXVlc3QaDy5oZWxsby5SZXNwb25zZUIJWgcuL2hlbGxvYgZwcm90bzM=`
  12. func TestGetMethods(t *testing.T) {
  13. tmpfile, err := ioutil.TempFile(os.TempDir(), hash.Md5Hex([]byte(b64pb)))
  14. assert.Nil(t, err)
  15. b, err := base64.StdEncoding.DecodeString(b64pb)
  16. assert.Nil(t, err)
  17. assert.Nil(t, ioutil.WriteFile(tmpfile.Name(), b, os.ModeTemporary))
  18. defer os.Remove(tmpfile.Name())
  19. source, err := grpcurl.DescriptorSourceFromProtoSets(tmpfile.Name())
  20. assert.Nil(t, err)
  21. methods, err := GetMethods(source)
  22. assert.Nil(t, err)
  23. assert.EqualValues(t, []Method{
  24. {
  25. RpcPath: "hello.Hello/Ping",
  26. },
  27. }, methods)
  28. }