rpcserver_test.go 1.3 KB

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