...

Source file src/edge-infra.dev/pkg/x/tonic/server_test.go

Documentation: edge-infra.dev/pkg/x/tonic

     1  package tonic
     2  
     3  import (
     4  	"net/http"
     5  	"testing"
     6  
     7  	"github.com/gin-contrib/requestid"
     8  	"github.com/gin-gonic/gin"
     9  	"github.com/stretchr/testify/assert"
    10  
    11  	"edge-infra.dev/pkg/lib/logging"
    12  )
    13  
    14  func TestNew(t *testing.T) {
    15  	svr := New()
    16  	assert.NotEmpty(t, svr)
    17  	assert.Equal(t, svr.port, defaultPort)
    18  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    19  	assert.Equal(t, len(svr.routes), 0)
    20  }
    21  
    22  func TestNewWithOptions(t *testing.T) {
    23  	svr := NewWithOptions("9002", gin.DebugMode)
    24  	assert.NotEmpty(t, svr)
    25  	assert.Equal(t, svr.port, "9002")
    26  	assert.Equal(t, svr.mode, gin.DebugMode)
    27  	assert.Equal(t, len(svr.routes), 0)
    28  }
    29  
    30  func TestWithHealthRoute(t *testing.T) {
    31  	svr := New().WithHealthRoute()
    32  	assert.NotEmpty(t, svr)
    33  	assert.Equal(t, svr.port, defaultPort)
    34  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    35  	assert.Equal(t, len(svr.routes), 1)
    36  	assert.Equal(t, svr.routes[0].Path, "/health")
    37  	assert.Equal(t, svr.routes[0].Action, MethodAny)
    38  }
    39  
    40  func TestWithReadyRoute(t *testing.T) {
    41  	svr := New().WithReadyRoute()
    42  	assert.NotEmpty(t, svr)
    43  	assert.Equal(t, svr.port, defaultPort)
    44  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    45  	assert.Equal(t, len(svr.routes), 1)
    46  	assert.Equal(t, svr.routes[0].Path, "/ready")
    47  	assert.Equal(t, svr.routes[0].Action, MethodAny)
    48  }
    49  
    50  func TestWith404Route(t *testing.T) {
    51  	svr := New().With404Route()
    52  	assert.NotEmpty(t, svr)
    53  	assert.Equal(t, svr.port, defaultPort)
    54  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    55  	assert.Equal(t, len(svr.routes), 1)
    56  	assert.Equal(t, svr.routes[0].Path, "")
    57  	assert.Equal(t, svr.routes[0].Action, "")
    58  }
    59  
    60  func TestRegisterRoutes(t *testing.T) {
    61  	log := logging.NewLogger().Logger
    62  	svr := New().SetLogger(log)
    63  	assert.NotEmpty(t, svr)
    64  	assert.Equal(t, svr.port, defaultPort)
    65  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    66  	assert.NotNil(t, svr.logger)
    67  }
    68  
    69  func TestSetRoutes(t *testing.T) {
    70  	svr := New().SetRoutes(Route{
    71  		Path:     "/hello",
    72  		Action:   http.MethodGet,
    73  		Handlers: nil,
    74  	})
    75  	assert.NotEmpty(t, svr)
    76  	assert.Equal(t, svr.port, defaultPort)
    77  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    78  	assert.Equal(t, len(svr.routes), 1)
    79  }
    80  
    81  func TestSetMiddlewares(t *testing.T) {
    82  	svr := New().SetMiddlewares(requestid.New())
    83  	assert.NotEmpty(t, svr)
    84  	assert.Equal(t, svr.port, defaultPort)
    85  	assert.Equal(t, svr.mode, gin.ReleaseMode)
    86  	assert.Equal(t, len(svr.middlewares), 1)
    87  }
    88  

View as plain text