You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/transport/grpc/server_test.go

44 lines
741 B

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