82 lines
1.8 KiB
Go
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)
|
|
}
|
|
}
|