Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/coverlet.msbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dotnet add NetSdrClientAppTests package coverlet.msbuild
dotnet add NetSdrClientAppTests package Microsoft.NET.Test.Sdk
dotnet test NetSdrClientAppTests -c Release /p:CollectCoverage=true /p:CoverletOutput=TestResults/coverage.xml /p:CoverletOutputFormat=opencover
22 changes: 22 additions & 0 deletions NetSdrClient.Tests/NetSdrClient.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
<PackageReference Include="coverlet.collector" Version="3.2.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\NetSdrClient\NetSdrClient.csproj" />
</ItemGroup>

</Project>
75 changes: 75 additions & 0 deletions NetSdrClient.Tests/NetworkServiceTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NetSdrClient.Services;

namespace NetSdrClient.Tests
{
[TestClass]
public class NetworkServiceTests
{
[TestMethod]
public void NetworkService_Constructor_ShouldInitialize()
{
// Arrange & Act
var service = new NetworkService();

// Assert
Assert.IsNotNull(service);
}

[TestMethod]
public void IsValidIpAddress_WithValidIp_ShouldReturnTrue()
{
// Arrange
var service = new NetworkService();
var validIp = "192.168.1.1";

// Act
var result = service.IsValidIpAddress(validIp);

// Assert
Assert.IsTrue(result);
}

[TestMethod]
public void IsValidIpAddress_WithInvalidIp_ShouldReturnFalse()
{
// Arrange
var service = new NetworkService();
var invalidIp = "999.999.999.999";

// Act
var result = service.IsValidIpAddress(invalidIp);

// Assert
Assert.IsFalse(result);
}

[TestMethod]
public void IsValidPort_WithValidPort_ShouldReturnTrue()
{
// Arrange
var service = new NetworkService();
var validPort = 8080;

// Act
var result = service.IsValidPort(validPort);

// Assert
Assert.IsTrue(result);
}

[TestMethod]
public void IsValidPort_WithInvalidPort_ShouldReturnFalse()
{
// Arrange
var service = new NetworkService();
var invalidPort = 99999;

// Act
var result = service.IsValidPort(invalidPort);

// Assert
Assert.IsFalse(result);
}
}
}
63 changes: 63 additions & 0 deletions NetSdrClient.Tests/ProtocolHandlerTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NetSdrClient.Services;

namespace NetSdrClient.Tests
{
[TestClass]
public class ProtocolHandlerTests
{
[TestMethod]
public void ProtocolHandler_Constructor_ShouldInitialize()
{
// Arrange & Act
var handler = new ProtocolHandler();

// Assert
Assert.IsNotNull(handler);
}

[TestMethod]
public void CreateCommand_ShouldReturnValidCommand()
{
// Arrange
var handler = new ProtocolHandler();
var expectedCommand = "CONNECT";

// Act
var result = handler.CreateCommand(expectedCommand);

// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Contains(expectedCommand));
}

[TestMethod]
public void ParseResponse_WithValidData_ShouldReturnParsedResponse()
{
// Arrange
var handler = new ProtocolHandler();
var testData = "OK:CONNECTED";

// Act
var result = handler.ParseResponse(testData);

// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Contains("CONNECTED"));
}

[TestMethod]
public void ParseResponse_WithNullData_ShouldReturnErrorMessage()
{
// Arrange
var handler = new ProtocolHandler();

// Act
var result = handler.ParseResponse(null);

// Assert
Assert.IsNotNull(result);
Assert.IsTrue(result.Contains("ERROR"));
}
}
}
97 changes: 97 additions & 0 deletions NetSdrClient.Tests/SDRClientTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NetSdrClient.Models;
using NetSdrClient.Services;
using System.Linq;

namespace NetSdrClient.Tests
{
[TestClass]
public class SDRClientTests
{
[TestMethod]
public void SDRClient_Constructor_ShouldInitializeDevicesList()
{
// Arrange & Act
var client = new SDRClient();

// Assert
Assert.IsNotNull(client.Devices);
Assert.AreEqual(0, client.Devices.Count);
}

[TestMethod]
public void AddDevice_ShouldAddDeviceToList()
{
// Arrange
var client = new SDRClient();
var device = new SDRDevice { Id = 1, Name = "Test Device" };

// Act
client.AddDevice(device);

// Assert
Assert.AreEqual(1, client.Devices.Count);
Assert.AreEqual(device, client.Devices[0]);
}

[TestMethod]
public void RemoveDevice_ShouldRemoveDeviceFromList()
{
// Arrange
var client = new SDRClient();
var device = new SDRDevice { Id = 1, Name = "Test Device" };
client.AddDevice(device);

// Act
var result = client.RemoveDevice(1);

// Assert
Assert.IsTrue(result);
Assert.AreEqual(0, client.Devices.Count);
}

[TestMethod]
public void RemoveDevice_WithInvalidId_ShouldReturnFalse()
{
// Arrange
var client = new SDRClient();

// Act
var result = client.RemoveDevice(999);

// Assert
Assert.IsFalse(result);
}

[TestMethod]
public void GetDevice_ShouldReturnCorrectDevice()
{
// Arrange
var client = new SDRClient();
var device1 = new SDRDevice { Id = 1, Name = "Device 1" };
var device2 = new SDRDevice { Id = 2, Name = "Device 2" };
client.AddDevice(device1);
client.AddDevice(device2);

// Act
var result = client.GetDevice(2);

// Assert
Assert.IsNotNull(result);
Assert.AreEqual("Device 2", result.Name);
}

[TestMethod]
public void GetDevice_WithInvalidId_ShouldReturnNull()
{
// Arrange
var client = new SDRClient();

// Act
var result = client.GetDevice(999);

// Assert
Assert.IsNull(result);
}
}
}
55 changes: 55 additions & 0 deletions NetSdrClient.Tests/SDRDeviceTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using NetSdrClient.Models;

namespace NetSdrClient.Tests
{
[TestClass]
public class SDRDeviceTests
{
[TestMethod]
public void SDRDevice_Constructor_ShouldInitializeProperties()
{
// Arrange & Act
var device = new SDRDevice();

// Assert
Assert.IsNotNull(device);
Assert.AreEqual(0, device.Id);
Assert.IsNull(device.Name);
Assert.IsNull(device.Description);
Assert.IsFalse(device.IsConnected);
}

[TestMethod]
public void SDRDevice_Properties_ShouldSetAndGetCorrectly()
{
// Arrange
var device = new SDRDevice();

// Act
device.Id = 1;
device.Name = "Test Device";
device.Description = "Test Description";
device.IsConnected = true;

// Assert
Assert.AreEqual(1, device.Id);
Assert.AreEqual("Test Device", device.Name);
Assert.AreEqual("Test Description", device.Description);
Assert.IsTrue(device.IsConnected);
}

[TestMethod]
public void SDRDevice_ToString_ShouldReturnName()
{
// Arrange
var device = new SDRDevice { Name = "Test SDR" };

// Act
var result = device.ToString();

// Assert
Assert.AreEqual("Test SDR", result);
}
}
}
3 changes: 3 additions & 0 deletions coverlet.msbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dotnet add NetSdrClientAppTests package coverlet.msbuild
dotnet add NetSdrClientAppTests package Microsoft.NET.Test.Sdk
dotnet test NetSdrClientAppTests -c Release /p:CollectCoverage=true /p:CoverletOutput=TestResults/coverage.xml /p:CoverletOutputFormat=opencover
Loading