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

61 lines
1.5 KiB
Go

package config
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestDefaultConfigValues(t *testing.T) {
cfg := DefaultConfig()
require.NotNil(t, cfg)
assert.Equal(t, "tcp://:6995", cfg.Addr)
assert.Equal(t, "tcp", cfg.Network)
assert.Equal(t, 4096, cfg.ReadBufferSize)
assert.Equal(t, 4096, cfg.WriteBufferSize)
assert.Equal(t, 10000, cfg.MaxConnections)
assert.Equal(t, "nnet", cfg.ApplicationProtocol)
assert.NotNil(t, cfg.Logger)
assert.NotNil(t, cfg.Metrics)
assert.NotNil(t, cfg.Session)
assert.NotNil(t, cfg.Codec)
}
func TestValidate_AddrRequired(t *testing.T) {
cfg := &Config{Addr: ""}
err := cfg.Validate()
require.Error(t, err)
}
func TestValidate_FillsDefaults(t *testing.T) {
cfg := &Config{
Addr: "tcp://:0",
ReadBufferSize: 0,
WriteBufferSize: -1,
MaxConnections: 0,
Network: "",
}
err := cfg.Validate()
require.NoError(t, err)
assert.Equal(t, "tcp", cfg.Network)
assert.Equal(t, 4096, cfg.ReadBufferSize)
assert.Equal(t, 4096, cfg.WriteBufferSize)
assert.Equal(t, 10000, cfg.MaxConnections)
}
func TestCodecConfig_Defaults(t *testing.T) {
cfg := DefaultConfig()
require.NotNil(t, cfg.Codec)
assert.Equal(t, "binary", cfg.Codec.DefaultCodec)
assert.False(t, cfg.Codec.EnableProtocolEncode)
}
func TestSessionConfig_Defaults(t *testing.T) {
cfg := DefaultConfig()
require.NotNil(t, cfg.Session)
assert.Equal(t, "memory", cfg.Session.Storage)
assert.GreaterOrEqual(t, cfg.Session.Expiration, 1*time.Hour)
}