mirror of
https://github.com/Quad4-Software/Reticulum-Go
synced 2026-08-29 23:48:44 -04:00
102 lines
3.6 KiB
Go
102 lines
3.6 KiB
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright (c) 2024-2026 Quad4.io
|
|
|
|
package common
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewReticulumConfig(t *testing.T) {
|
|
cfg := NewReticulumConfig()
|
|
|
|
if !cfg.EnableTransport {
|
|
t.Errorf("NewReticulumConfig() EnableTransport = %v; want true", cfg.EnableTransport)
|
|
}
|
|
if !cfg.ShareInstance {
|
|
t.Errorf("NewReticulumConfig() ShareInstance = %v; want true", cfg.ShareInstance)
|
|
}
|
|
if cfg.SharedInstancePort != DefaultSharedInstancePort {
|
|
t.Errorf("NewReticulumConfig() SharedInstancePort = %d; want %d", cfg.SharedInstancePort, DefaultSharedInstancePort)
|
|
}
|
|
if cfg.InstanceControlPort != DefaultInstanceControlPort {
|
|
t.Errorf("NewReticulumConfig() InstanceControlPort = %d; want %d", cfg.InstanceControlPort, DefaultInstanceControlPort)
|
|
}
|
|
if cfg.PanicOnInterfaceErr {
|
|
t.Errorf("NewReticulumConfig() PanicOnInterfaceErr = %v; want false", cfg.PanicOnInterfaceErr)
|
|
}
|
|
if cfg.LogLevel != DefaultLogLevel {
|
|
t.Errorf("NewReticulumConfig() LogLevel = %d; want %d", cfg.LogLevel, DefaultLogLevel)
|
|
}
|
|
if len(cfg.Interfaces) != 0 {
|
|
t.Errorf("NewReticulumConfig() Interfaces length = %d; want 0", len(cfg.Interfaces))
|
|
}
|
|
}
|
|
|
|
func TestDefaultConfig(t *testing.T) {
|
|
cfg := DefaultConfig()
|
|
|
|
if !cfg.EnableTransport {
|
|
t.Errorf("DefaultConfig() EnableTransport = %v; want true", cfg.EnableTransport)
|
|
}
|
|
if !cfg.ShareInstance {
|
|
t.Errorf("DefaultConfig() ShareInstance = %v; want true", cfg.ShareInstance)
|
|
}
|
|
if cfg.SharedInstancePort != DefaultSharedInstancePort {
|
|
t.Errorf("DefaultConfig() SharedInstancePort = %d; want %d", cfg.SharedInstancePort, DefaultSharedInstancePort)
|
|
}
|
|
if cfg.InstanceControlPort != DefaultInstanceControlPort {
|
|
t.Errorf("DefaultConfig() InstanceControlPort = %d; want %d", cfg.InstanceControlPort, DefaultInstanceControlPort)
|
|
}
|
|
if cfg.PanicOnInterfaceErr {
|
|
t.Errorf("DefaultConfig() PanicOnInterfaceErr = %v; want false", cfg.PanicOnInterfaceErr)
|
|
}
|
|
if cfg.LogLevel != DefaultLogLevel {
|
|
t.Errorf("DefaultConfig() LogLevel = %d; want %d", cfg.LogLevel, DefaultLogLevel)
|
|
}
|
|
if len(cfg.Interfaces) != 0 {
|
|
t.Errorf("DefaultConfig() Interfaces length = %d; want 0", len(cfg.Interfaces))
|
|
}
|
|
if cfg.AppName != "Go Client" {
|
|
t.Errorf("DefaultConfig() AppName = %q; want %q", cfg.AppName, "Go Client")
|
|
}
|
|
if cfg.AppAspect != "node" {
|
|
t.Errorf("DefaultConfig() AppAspect = %q; want %q", cfg.AppAspect, "node")
|
|
}
|
|
}
|
|
|
|
func TestReticulumConfig_Validate(t *testing.T) {
|
|
validConfig := DefaultConfig()
|
|
if err := validConfig.Validate(); err != nil {
|
|
t.Errorf("Validate() on default config failed: %v", err)
|
|
}
|
|
|
|
invalidPortConfig1 := DefaultConfig()
|
|
invalidPortConfig1.SharedInstancePort = 0
|
|
if err := invalidPortConfig1.Validate(); err == nil {
|
|
t.Errorf("Validate() did not return error for invalid SharedInstancePort 0")
|
|
} else if !errors.Is(err, ErrConfig) {
|
|
t.Errorf("Validate() should wrap ErrConfig, got %v", err)
|
|
}
|
|
|
|
invalidPortConfig2 := DefaultConfig()
|
|
invalidPortConfig2.SharedInstancePort = 65536
|
|
if err := invalidPortConfig2.Validate(); err == nil {
|
|
t.Errorf("Validate() did not return error for invalid SharedInstancePort 65536")
|
|
} else if !errors.Is(err, ErrConfig) {
|
|
t.Errorf("Validate() should wrap ErrConfig, got %v", err)
|
|
}
|
|
|
|
invalidPortConfig3 := DefaultConfig()
|
|
invalidPortConfig3.InstanceControlPort = 0
|
|
if err := invalidPortConfig3.Validate(); err == nil {
|
|
t.Errorf("Validate() did not return error for invalid InstanceControlPort 0")
|
|
}
|
|
|
|
invalidPortConfig4 := DefaultConfig()
|
|
invalidPortConfig4.InstanceControlPort = 65536
|
|
if err := invalidPortConfig4.Validate(); err == nil {
|
|
t.Errorf("Validate() did not return error for invalid InstanceControlPort 65536")
|
|
}
|
|
}
|