...

Source file src/github.com/go-kit/kit/transport/grpc/client_test.go

Documentation: github.com/go-kit/kit/transport/grpc

     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