rpcserver_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package internal
  2. import (
  3. "sync"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/zeromicro/go-zero/core/proc"
  7. "github.com/zeromicro/go-zero/core/stat"
  8. "github.com/zeromicro/go-zero/zrpc/internal/mock"
  9. "google.golang.org/grpc"
  10. )
  11. func TestRpcServer(t *testing.T) {
  12. metrics := stat.NewMetrics("foo")
  13. server := NewRpcServer("localhost:54321", ServerMiddlewaresConf{
  14. Trace: true,
  15. Recover: true,
  16. Stat: true,
  17. Prometheus: true,
  18. Breaker: true,
  19. }, WithMetrics(metrics), WithRpcHealth(true))
  20. server.SetName("mock")
  21. var wg sync.WaitGroup
  22. var grpcServer *grpc.Server
  23. var lock sync.Mutex
  24. wg.Add(1)
  25. go func() {
  26. err := server.Start(func(server *grpc.Server) {
  27. lock.Lock()
  28. mock.RegisterDepositServiceServer(server, new(mock.DepositServer))
  29. grpcServer = server
  30. lock.Unlock()
  31. wg.Done()
  32. })
  33. assert.Nil(t, err)
  34. }()
  35. wg.Wait()
  36. proc.WrapUp()
  37. lock.Lock()
  38. grpcServer.GracefulStop()
  39. lock.Unlock()
  40. }
  41. func TestRpcServer_WithBadAddress(t *testing.T) {
  42. server := NewRpcServer("localhost:111111", ServerMiddlewaresConf{
  43. Trace: true,
  44. Recover: true,
  45. Stat: true,
  46. Prometheus: true,
  47. Breaker: true,
  48. }, WithRpcHealth(true))
  49. server.SetName("mock")
  50. err := server.Start(func(server *grpc.Server) {
  51. mock.RegisterDepositServiceServer(server, new(mock.DepositServer))
  52. })
  53. assert.NotNil(t, err)
  54. }