func TestNewSecureGRPCServer(t *testing.T) { testAddress := "localhost:9055" srv, err := comm.NewGRPCServer(testAddress, []byte(selfSignedKeyPEM), []byte(selfSignedCertPEM), nil, nil) //check for error if err != nil { t.Fatalf("Failed to return new GRPC server: %v", err) } //make sure our properties are as expected //resolve the address addr, err := net.ResolveTCPAddr("tcp", testAddress) assert.Equal(t, srv.Address(), addr.String()) assert.Equal(t, srv.Listener().Addr().String(), addr.String()) //check the server certificate cert, _ := tls.X509KeyPair([]byte(selfSignedCertPEM), []byte(selfSignedKeyPEM)) assert.Equal(t, srv.ServerCertificate(), cert) //TlSEnabled should be true assert.Equal(t, srv.TLSEnabled(), true) //register the GRPC test server testpb.RegisterTestServiceServer(srv.Server(), &testServiceServer{}) //start the server go srv.Start() defer srv.Stop() //should not be needed time.Sleep(10 * time.Millisecond) //create the client credentials certPool := x509.NewCertPool() if !certPool.AppendCertsFromPEM([]byte(selfSignedCertPEM)) { t.Fatal("Failed to append certificate to client credentials") } creds := credentials.NewClientTLSFromCert(certPool, "") //GRPC client options var dialOptions []grpc.DialOption dialOptions = append(dialOptions, grpc.WithTransportCredentials(creds)) //invoke the EmptyCall service _, err = invokeEmptyCall(testAddress, dialOptions) if err != nil { t.Logf("GRPC client failed to invoke the EmptyCall service on %s: %v", testAddress, err) } else { t.Log("GRPC client successfully invoked the EmptyCall service: " + testAddress) } }
func TestNewGRPCServerFromListener(t *testing.T) { testAddress := "localhost:9054" //create our listener lis, err := net.Listen("tcp", testAddress) if err != nil { t.Fatalf("Failed to create listener: %v", err) } srv, err := comm.NewGRPCServerFromListener(lis, nil, nil, nil, nil) //check for error if err != nil { t.Fatalf("Failed to return new GRPC server: %v", err) } //make sure our properties are as expected //resolve the address addr, err := net.ResolveTCPAddr("tcp", testAddress) assert.Equal(t, srv.Address(), addr.String()) assert.Equal(t, srv.Listener().Addr().String(), addr.String()) //TlSEnabled should be false assert.Equal(t, srv.TLSEnabled(), false) //register the GRPC test server testpb.RegisterTestServiceServer(srv.Server(), &testServiceServer{}) //start the server go srv.Start() defer srv.Stop() //should not be needed time.Sleep(10 * time.Millisecond) //GRPC client options var dialOptions []grpc.DialOption dialOptions = append(dialOptions, grpc.WithInsecure()) //invoke the EmptyCall service _, err = invokeEmptyCall(testAddress, dialOptions) if err != nil { t.Logf("GRPC client failed to invoke the EmptyCall service on %s: %v", testAddress, err) t.Fatalf(err.Error()) } else { t.Log("GRPC client successfully invoked the EmptyCall service: " + testAddress) } }