descriptorsource_test.go 936 B

1234567891011121314151617181920212223242526272829
  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, []string{"hello.Hello/Ping"}, methods)
  24. }