You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ping_test.go 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package ping
  4. import (
  5. "context"
  6. "net/http"
  7. "net/http/httptest"
  8. "testing"
  9. pingv1 "code.gitea.io/actions-proto-go/ping/v1"
  10. "code.gitea.io/actions-proto-go/ping/v1/pingv1connect"
  11. "github.com/bufbuild/connect-go"
  12. "github.com/stretchr/testify/assert"
  13. "github.com/stretchr/testify/require"
  14. )
  15. func TestService(t *testing.T) {
  16. mux := http.NewServeMux()
  17. mux.Handle(pingv1connect.NewPingServiceHandler(
  18. &Service{},
  19. ))
  20. MainServiceTest(t, mux)
  21. }
  22. func MainServiceTest(t *testing.T, h http.Handler) {
  23. t.Parallel()
  24. server := httptest.NewUnstartedServer(h)
  25. server.EnableHTTP2 = true
  26. server.StartTLS()
  27. defer server.Close()
  28. connectClient := pingv1connect.NewPingServiceClient(
  29. server.Client(),
  30. server.URL,
  31. )
  32. grpcClient := pingv1connect.NewPingServiceClient(
  33. server.Client(),
  34. server.URL,
  35. connect.WithGRPC(),
  36. )
  37. grpcWebClient := pingv1connect.NewPingServiceClient(
  38. server.Client(),
  39. server.URL,
  40. connect.WithGRPCWeb(),
  41. )
  42. clients := []pingv1connect.PingServiceClient{connectClient, grpcClient, grpcWebClient}
  43. t.Run("ping request", func(t *testing.T) {
  44. for _, client := range clients {
  45. result, err := client.Ping(context.Background(), connect.NewRequest(&pingv1.PingRequest{
  46. Data: "foobar",
  47. }))
  48. require.NoError(t, err)
  49. assert.Equal(t, "Hello, foobar!", result.Msg.Data)
  50. }
  51. })
  52. }