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