/* * ============================================================================ * 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) } }