Files

108 lines
2.4 KiB
Go

package session
import "testing"
func TestManagerCapacityCheck(t *testing.T) {
m := NewManager(Config{
MaxSessions: 2,
DisplayMin: 100,
DisplayMax: 105,
WSPortMin: 10100,
WSPortMax: 10105,
IdleTimeout: 600,
MaxLifetime: 7200,
WinBoxPath: "/usr/bin/winbox4",
BindAddr: "0.0.0.0",
})
if m.SessionCount() != 0 {
t.Fatal("expected 0 sessions")
}
if !m.HasCapacity() {
t.Fatal("expected capacity")
}
}
func TestManagerListEmpty(t *testing.T) {
m := NewManager(Config{
MaxSessions: 5,
DisplayMin: 100,
DisplayMax: 105,
WSPortMin: 10100,
WSPortMax: 10105,
IdleTimeout: 600,
MaxLifetime: 7200,
WinBoxPath: "/usr/bin/winbox4",
BindAddr: "0.0.0.0",
})
sessions := m.ListSessions()
if len(sessions) != 0 {
t.Fatalf("expected 0 sessions, got %d", len(sessions))
}
}
func TestTerminateNonExistentIsIdempotent(t *testing.T) {
m := NewManager(Config{
MaxSessions: 2,
DisplayMin: 100,
DisplayMax: 105,
WSPortMin: 10100,
WSPortMax: 10105,
IdleTimeout: 600,
MaxLifetime: 7200,
WinBoxPath: "/usr/bin/winbox4",
BindAddr: "0.0.0.0",
})
// Terminating a non-existent session should return nil (no error)
err := m.TerminateSession("does-not-exist")
if err != nil {
t.Fatalf("expected nil error for non-existent session, got: %v", err)
}
}
func TestGetNonExistentSessionReturnsError(t *testing.T) {
m := NewManager(Config{
MaxSessions: 2,
DisplayMin: 100,
DisplayMax: 105,
WSPortMin: 10100,
WSPortMax: 10105,
IdleTimeout: 600,
MaxLifetime: 7200,
WinBoxPath: "/usr/bin/winbox4",
BindAddr: "0.0.0.0",
})
_, err := m.GetSession("does-not-exist")
if err == nil {
t.Fatal("expected error for non-existent session, got nil")
}
}
func TestCleanupOrphansRunsWithoutError(t *testing.T) {
m := NewManager(Config{
MaxSessions: 2,
DisplayMin: 100,
DisplayMax: 105,
WSPortMin: 10100,
WSPortMax: 10105,
IdleTimeout: 600,
MaxLifetime: 7200,
WinBoxPath: "/usr/bin/winbox4",
BindAddr: "0.0.0.0",
})
// CleanupOrphans should not panic on a fresh manager with no sessions
m.CleanupOrphans()
// After cleanup, manager should still be functional
if !m.HasCapacity() {
t.Fatal("expected capacity after cleanup")
}
if m.SessionCount() != 0 {
t.Fatal("expected 0 sessions after cleanup")
}
sessions := m.ListSessions()
if len(sessions) != 0 {
t.Fatalf("expected empty session list after cleanup, got %d", len(sessions))
}
}