aboutsummaryrefslogtreecommitdiff
path: root/internal/grpc_test/grpc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/grpc_test/grpc_test.go')
-rw-r--r--internal/grpc_test/grpc_test.go79
1 files changed, 0 insertions, 79 deletions
diff --git a/internal/grpc_test/grpc_test.go b/internal/grpc_test/grpc_test.go
deleted file mode 100644
index 4297080..0000000
--- a/internal/grpc_test/grpc_test.go
+++ /dev/null
@@ -1,79 +0,0 @@
-// SPDX-License-Identifier: CC0-1.0
-
-package grpc_test
-
-//go:generate protoc --go_out=. --go-grpc_out=. echo.proto
-
-import (
- "context"
- "strings"
- "testing"
-
- "google.golang.org/grpc"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
-
- "go.awhk.org/core"
- "go.awhk.org/pipeln"
-)
-
-type impl struct{ UnimplementedEchoServer }
-
-var _ EchoServer = impl{}
-
-func (impl) Echo(_ context.Context, req *EchoRequest) (*EchoResponse, error) {
- return &EchoResponse{Message: req.Message}, nil
-}
-
-func Test(s *testing.T) {
- t := core.T{T: s}
-
- ln := pipeln.New("test-backend-name")
- ret := make(chan error)
- srv := grpc.NewServer()
- RegisterEchoServer(srv, &impl{})
- go func() { ret <- srv.Serve(ln) }()
-
- opts := []grpc.DialOption{grpc.WithContextDialer(ln.DialContextAddr), grpc.WithInsecure()}
- req := &EchoRequest{Message: "Hello World!"}
-
- t.Run("OK", func(t *core.T) {
- conn, err := grpc.Dial("test-backend-name", opts...)
- t.Must(t.AssertErrorIs(nil, err))
- defer conn.Close()
-
- client := NewEchoClient(conn)
- resp, err := client.Echo(context.Background(), req)
- t.AssertErrorIs(nil, err)
- t.AssertEqual(req.Message, resp.Message)
- })
-
- t.Run("Address Mismatch", func(t *core.T) {
- conn, err := grpc.Dial("bad-backend-name", opts...)
- t.Must(t.AssertErrorIs(nil, err))
- defer conn.Close()
-
- client := NewEchoClient(conn)
- _, err = client.Echo(context.Background(), req)
- st := status.Convert(err)
- t.Must(t.AssertNotEqual(nil, st))
- t.AssertEqual(codes.Unavailable, st.Code())
- t.Assert(strings.Contains(st.Message(), "invalid argument"))
- })
-
- srv.GracefulStop()
- t.Must(t.AssertErrorIs(nil, <-ret))
-
- t.Run("Remote Connection Closed", func(t *core.T) {
- conn, err := grpc.Dial("test-backend-name", opts...)
- t.Must(t.AssertErrorIs(nil, err))
- defer conn.Close()
-
- client := NewEchoClient(conn)
- _, err = client.Echo(context.Background(), req)
- st := status.Convert(err)
- t.Must(t.AssertNotEqual(nil, st))
- t.AssertEqual(codes.Unavailable, st.Code())
- t.Assert(strings.Contains(st.Message(), "connection refused"))
- })
-}