From 170f384eb3b511708f9eac147a9f88e8a82c26b3 Mon Sep 17 00:00:00 2001 From: Ahmed-Yaseen99 <186510963+Ahmed-Yaseen99@users.noreply.github.com> Date: Mon, 26 Oct 2026 10:48:15 +0000 Subject: [PATCH] test: Add unit tests for ConnectivityMonitor.GetAllDevices Add test cases covering ConnectivityMonitor.GetAllDevices behavior: - Verify empty list returned when no devices are tracked - Verify all tracked devices returned after AddDevice calls - Verify remaining devices returned after RemoveDevice call - Verify GetAllDevices returns a snapshot List instance protecting internal collection state --- .../Core/Engines/ConnectivityMonitorTests.cs | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/NodeRadarPro.Tests/Core/Engines/ConnectivityMonitorTests.cs b/tests/NodeRadarPro.Tests/Core/Engines/ConnectivityMonitorTests.cs index c934a8e..8a6a9d8 100644 --- a/tests/NodeRadarPro.Tests/Core/Engines/ConnectivityMonitorTests.cs +++ b/tests/NodeRadarPro.Tests/Core/Engines/ConnectivityMonitorTests.cs @@ -225,4 +225,65 @@ public async Task StartMonitoringAsync_CancelledToken_StopsGracefully() Assert.False(monitor.IsRunning); } + + [Fact] + public void GetAllDevices_WhenNoDevicesTracked_ReturnsEmptyList() + { + var monitor = new ConnectivityMonitor(); + + var devices = monitor.GetAllDevices(); + + Assert.NotNull(devices); + Assert.Empty(devices); + } + + [Fact] + public void GetAllDevices_WhenDevicesAdded_ReturnsAllTrackedDevices() + { + var monitor = new ConnectivityMonitor(); + var dev1 = new NetworkNode { MacAddress = "11:22:33:44:55:66", DeviceName = "Dev1" }; + var dev2 = new NetworkNode { MacAddress = "AA:BB:CC:DD:EE:FF", DeviceName = "Dev2" }; + + monitor.AddDevice(dev1); + monitor.AddDevice(dev2); + + var devices = monitor.GetAllDevices(); + + Assert.Equal(2, devices.Count); + Assert.Contains(devices, d => d.MacAddress == "11:22:33:44:55:66"); + Assert.Contains(devices, d => d.MacAddress == "AA:BB:CC:DD:EE:FF"); + } + + [Fact] + public void GetAllDevices_AfterDeviceRemoval_ReturnsRemainingDevices() + { + var monitor = new ConnectivityMonitor(); + var dev1 = new NetworkNode { MacAddress = "11:22:33:44:55:66", DeviceName = "Dev1" }; + var dev2 = new NetworkNode { MacAddress = "AA:BB:CC:DD:EE:FF", DeviceName = "Dev2" }; + + monitor.AddDevice(dev1); + monitor.AddDevice(dev2); + monitor.RemoveDevice("11:22:33:44:55:66"); + + var devices = monitor.GetAllDevices(); + + Assert.Single(devices); + Assert.Equal("AA:BB:CC:DD:EE:FF", devices[0].MacAddress); + } + + [Fact] + public void GetAllDevices_ReturnsNewListInstance() + { + var monitor = new ConnectivityMonitor(); + var dev1 = new NetworkNode { MacAddress = "11:22:33:44:55:66", DeviceName = "Dev1" }; + monitor.AddDevice(dev1); + + var list1 = monitor.GetAllDevices(); + var list2 = monitor.GetAllDevices(); + + Assert.NotSame(list1, list2); + + list1.Clear(); + Assert.Single(monitor.GetAllDevices()); + } }