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  }