rs2322tcp/internal/client/runtime_test.go
2026-08-10 17:59:35 +02:00

82 lines
1.8 KiB
Go

/*
* ============================================================================
* Projekt.....: rs2322tcp
* Datei.......: internal/client/runtime_test.go
* Copyright (C) 2026 Dieter Lang
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Beschreibung:
* Tests für die clientseitige Runtime.
*
* Die Tests prüfen die Initialisierung der Runtime und den grundlegenden
* Lebenszyklus ohne einen externen rs2322tcp-Server vorauszusetzen.
* ============================================================================
*/
package client
import (
"strings"
"testing"
"git.lang-dieter.de/rs2322tcp/internal/config"
)
///////////////////////////////////////////////////////////////////////////////
// Tests
///////////////////////////////////////////////////////////////////////////////
func TestNewRuntimeNilClient(t *testing.T) {
manager := NewVirtualPortManager(
config.VirtualPortRangeConfig{
First: 100,
Last: 199,
},
)
_, err := NewRuntime(nil, manager)
if err == nil {
t.Fatal("expected error for nil client")
}
if !strings.Contains(err.Error(), "client is nil") {
t.Fatalf("unexpected error: %v", err)
}
}
func TestNewRuntimeNilManager(t *testing.T) {
client := newTestClient(t)
_, err := NewRuntime(client, nil)
if err == nil {
t.Fatal("expected error for nil manager")
}
if !strings.Contains(err.Error(), "virtual port manager is nil") {
t.Fatalf("unexpected error: %v", err)
}
}
func TestRuntimeRunWithoutVirtualPorts(t *testing.T) {
client := newTestClient(t)
manager := NewVirtualPortManager(
config.VirtualPortRangeConfig{
First: 100,
Last: 199,
},
)
runtime, err := NewRuntime(client, manager)
if err != nil {
t.Fatalf("NewRuntime: %v", err)
}
cfg := config.ClientConfig{
VirtualPorts: nil,
}
if err := runtime.Run(cfg); err != nil {
t.Fatalf("Run: %v", err)
}
}