...
1 package grpc_test
2
3 import (
4 "context"
5 "fmt"
6 "net"
7 "testing"
8
9 "google.golang.org/grpc"
10
11 test "github.com/go-kit/kit/transport/grpc/_grpc_test"
12 "github.com/go-kit/kit/transport/grpc/_grpc_test/pb"
13 )
14
15 const (
16 hostPort string = "localhost:8002"
17 )
18
19 func TestGRPCClient(t *testing.T) {
20 var (
21 server = grpc.NewServer()
22 service = test.NewService()
23 )
24
25 sc, err := net.Listen("tcp", hostPort)
26 if err != nil {
27 t.Fatalf("unable to listen: %+v", err)
28 }
29 defer server.GracefulStop()
30
31 go func() {
32 pb.RegisterTestServer(server, test.NewBinding(service))
33 _ = server.Serve(sc)
34 }()
35
36 cc, err := grpc.Dial(hostPort, grpc.WithInsecure())
37 if err != nil {
38 t.Fatalf("unable to Dial: %+v", err)
39 }
40
41 client := test.NewClient(cc)
42
43 var (
44 a = "the answer to life the universe and everything"
45 b = int64(42)
46 cID = "request-1"
47 ctx = test.SetCorrelationID(context.Background(), cID)
48 )
49
50 responseCTX, v, err := client.Test(ctx, a, b)
51 if err != nil {
52 t.Fatalf("unable to Test: %+v", err)
53 }
54 if want, have := fmt.Sprintf("%s = %d", a, b), v; want != have {
55 t.Fatalf("want %q, have %q", want, have)
56 }
57
58 if want, have := cID, test.GetConsumedCorrelationID(responseCTX); want != have {
59 t.Fatalf("want %q, have %q", want, have)
60 }
61 }
62
View as plain text