1
0
mirror of https://github.com/go-kratos/kratos.git synced 2025-04-17 12:06:49 +02:00
kratos/transport/grpc/server_test.go

44 lines
741 B
Go
Raw Normal View History

2021-02-17 17:14:47 +08:00
package grpc
import (
"context"
2021-06-15 11:39:28 +08:00
"strings"
2021-02-17 17:14:47 +08:00
"testing"
"time"
)
type testKey struct{}
2021-02-17 17:14:47 +08:00
func TestServer(t *testing.T) {
ctx := context.Background()
ctx = context.WithValue(ctx, testKey{}, "test")
2021-02-17 17:14:47 +08:00
srv := NewServer()
2021-06-15 11:39:28 +08:00
if e, err := srv.Endpoint(); err != nil || e == nil || strings.HasSuffix(e.Host, ":0") {
2021-05-28 15:08:25 +08:00
t.Fatal(e, err)
2021-02-17 17:14:47 +08:00
}
2021-05-28 15:08:25 +08:00
go func() {
// start server
if err := srv.Start(ctx); err != nil {
2021-05-28 15:08:25 +08:00
panic(err)
}
}()
time.Sleep(time.Second)
testClient(t, srv)
srv.Stop(ctx)
2021-02-17 17:14:47 +08:00
}
func testClient(t *testing.T, srv *Server) {
2021-06-15 11:39:28 +08:00
u, err := srv.Endpoint()
if err != nil {
t.Fatal(err)
2021-02-17 17:14:47 +08:00
}
// new a gRPC client
2021-06-15 11:39:28 +08:00
conn, err := DialInsecure(context.Background(), WithEndpoint(u.Host))
2021-02-17 17:14:47 +08:00
if err != nil {
t.Fatal(err)
}
conn.Close()
}