1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-02-07 13:31:50 +02:00
kratos/transport/grpc/server_test.go
2021-06-15 11:39:28 +08:00

44 lines
741 B
Go

package grpc
import (
"context"
"strings"
"testing"
"time"
)
type testKey struct{}
func TestServer(t *testing.T) {
ctx := context.Background()
ctx = context.WithValue(ctx, testKey{}, "test")
srv := NewServer()
if e, err := srv.Endpoint(); err != nil || e == nil || strings.HasSuffix(e.Host, ":0") {
t.Fatal(e, err)
}
go func() {
// start server
if err := srv.Start(ctx); err != nil {
panic(err)
}
}()
time.Sleep(time.Second)
testClient(t, srv)
srv.Stop(ctx)
}
func testClient(t *testing.T, srv *Server) {
u, err := srv.Endpoint()
if err != nil {
t.Fatal(err)
}
// new a gRPC client
conn, err := DialInsecure(context.Background(), WithEndpoint(u.Host))
if err != nil {
t.Fatal(err)
}
conn.Close()
}