62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2022 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package ping
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net/http"
 | 
						|
	"net/http/httptest"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	pingv1 "code.gitea.io/actions-proto-go/ping/v1"
 | 
						|
	"code.gitea.io/actions-proto-go/ping/v1/pingv1connect"
 | 
						|
	"github.com/bufbuild/connect-go"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/stretchr/testify/require"
 | 
						|
)
 | 
						|
 | 
						|
func TestService(t *testing.T) {
 | 
						|
	mux := http.NewServeMux()
 | 
						|
	mux.Handle(pingv1connect.NewPingServiceHandler(
 | 
						|
		&Service{},
 | 
						|
	))
 | 
						|
	MainServiceTest(t, mux)
 | 
						|
}
 | 
						|
 | 
						|
func MainServiceTest(t *testing.T, h http.Handler) {
 | 
						|
	t.Parallel()
 | 
						|
	server := httptest.NewUnstartedServer(h)
 | 
						|
	server.EnableHTTP2 = true
 | 
						|
	server.StartTLS()
 | 
						|
	defer server.Close()
 | 
						|
 | 
						|
	connectClient := pingv1connect.NewPingServiceClient(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
	)
 | 
						|
 | 
						|
	grpcClient := pingv1connect.NewPingServiceClient(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
		connect.WithGRPC(),
 | 
						|
	)
 | 
						|
 | 
						|
	grpcWebClient := pingv1connect.NewPingServiceClient(
 | 
						|
		server.Client(),
 | 
						|
		server.URL,
 | 
						|
		connect.WithGRPCWeb(),
 | 
						|
	)
 | 
						|
 | 
						|
	clients := []pingv1connect.PingServiceClient{connectClient, grpcClient, grpcWebClient}
 | 
						|
	t.Run("ping request", func(t *testing.T) {
 | 
						|
		for _, client := range clients {
 | 
						|
			result, err := client.Ping(context.Background(), connect.NewRequest(&pingv1.PingRequest{
 | 
						|
				Data: "foobar",
 | 
						|
			}))
 | 
						|
			require.NoError(t, err)
 | 
						|
			assert.Equal(t, "Hello, foobar!", result.Msg.Data)
 | 
						|
		}
 | 
						|
	})
 | 
						|
}
 |