From bfc42b7dc63d55d04912423bfaaa735c63368ed3 Mon Sep 17 00:00:00 2001 From: Ahmed-Yaseen99 <186510963+Ahmed-Yaseen99@users.noreply.github.com> Date: Mon, 26 Oct 2026 10:46:29 +0000 Subject: [PATCH] test: add test for exception path in TracerouteEngine RunTracerouteAsync --- .../Core/Engines/TracerouteEngineTests.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/NodeRadarPro.Tests/Core/Engines/TracerouteEngineTests.cs b/tests/NodeRadarPro.Tests/Core/Engines/TracerouteEngineTests.cs index e795f8d..b2108ba 100644 --- a/tests/NodeRadarPro.Tests/Core/Engines/TracerouteEngineTests.cs +++ b/tests/NodeRadarPro.Tests/Core/Engines/TracerouteEngineTests.cs @@ -127,4 +127,18 @@ public async Task RunTracerouteAsync_CancellationRequested_StopsEarly() // Should not have discovered any hops since it was cancelled before loop execution Assert.Empty(hops); } + + [Fact] + public async Task RunTracerouteAsync_ExceptionThrown_TracerouteCompletedFiresFalse() + { + var engine = new TracerouteEngine(); + bool? completed = null; + engine.TracerouteCompleted += c => completed = c; + + // An invalid hostname triggers a DNS lookup exception in Dns.GetHostEntryAsync, + // which hits the catch block in RunTracerouteAsync. + await engine.RunTracerouteAsync("invalid..hostname..test", maxHops: 1, timeoutMs: 1000); + + Assert.False(completed); + } }