go-zero/zrpc/internal/rpcserver_test.go
2024-08-08 14:37:19 +00:00

55 lines
1.1 KiB
Go

package internal
import (
"sync"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/zeromicro/go-zero/core/proc"
"github.com/zeromicro/go-zero/internal/mock"
"google.golang.org/grpc"
)
func TestRpcServer(t *testing.T) {
server := NewRpcServer("localhost:54321", WithRpcHealth(true))
server.SetName("mock")
var wg, wgDone sync.WaitGroup
var grpcServer *grpc.Server
var lock sync.Mutex
wg.Add(1)
wgDone.Add(1)
go func() {
err := server.Start(func(server *grpc.Server) {
lock.Lock()
mock.RegisterDepositServiceServer(server, new(mock.DepositServer))
grpcServer = server
lock.Unlock()
wg.Done()
})
assert.Nil(t, err)
wgDone.Done()
}()
wg.Wait()
time.Sleep(100 * time.Millisecond)
lock.Lock()
grpcServer.GracefulStop()
lock.Unlock()
proc.Shutdown()
wgDone.Wait()
}
func TestRpcServer_WithBadAddress(t *testing.T) {
server := NewRpcServer("localhost:111111", WithRpcHealth(true))
server.SetName("mock")
err := server.Start(func(server *grpc.Server) {
mock.RegisterDepositServiceServer(server, new(mock.DepositServer))
})
assert.NotNil(t, err)
proc.WrapUp()
}