diff --git a/EchoTspServer/EchoServer.csproj b/EchoTcpServer/EchoServer.csproj similarity index 100% rename from EchoTspServer/EchoServer.csproj rename to EchoTcpServer/EchoServer.csproj diff --git a/EchoTspServer/Program.cs b/EchoTcpServer/Program.cs similarity index 100% rename from EchoTspServer/Program.cs rename to EchoTcpServer/Program.cs diff --git a/NetSdrClient.sln b/NetSdrClient.sln index d8ca20f7..42431fb3 100644 --- a/NetSdrClient.sln +++ b/NetSdrClient.sln @@ -7,7 +7,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetSdrClientApp", "NetSdrCl EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetSdrClientAppTests", "NetSdrClientAppTests\NetSdrClientAppTests.csproj", "{D0155366-89B4-4BA4-90E2-2ECC8C1EB915}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EchoServer", "EchoTspServer\EchoServer.csproj", "{9179F2F7-EBEE-4A5D-9FD9-F6E3C18DD263}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EchoServer", "EchoTcpServer\EchoServer.csproj", "{9179F2F7-EBEE-4A5D-9FD9-F6E3C18DD263}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/NetSdrClientAppTests/ArchitectureTests.cs b/NetSdrClientAppTests/ArchitectureTests.cs new file mode 100644 index 00000000..b9846649 --- /dev/null +++ b/NetSdrClientAppTests/ArchitectureTests.cs @@ -0,0 +1,54 @@ +using NetArchTest.Rules; +using NUnit.Framework; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace NetSdrClientAppTests +{ + public class ArchitectureTests + { + [Test] + public void App_Should_Not_Depend_On_EchoServer() + { + var result = Types.InAssembly(typeof(NetSdrClientApp.NetSdrClient).Assembly) + .That() + .ResideInNamespace("NetSdrClientApp") + .ShouldNot() + .HaveDependencyOn("EchoServer") + .GetResult(); + + Assert.That(result.IsSuccessful, Is.True); + } + + [Test] + public void Messages_Should_Not_Depend_On_Networking() + { + // Arrange + var result = Types.InAssembly(typeof(NetSdrClientApp.Messages.NetSdrMessageHelper).Assembly) + .That() + .ResideInNamespace("NetSdrClientApp.Messages") + .ShouldNot() + .HaveDependencyOn("NetSdrClientApp.Networking") + .GetResult(); + + // Assert + Assert.That(result.IsSuccessful, Is.True); + } + + [Test] + public void Networking_Should_Not_Depend_On_Messages() + { + // Arrange + var result = Types.InAssembly(typeof(NetSdrClientApp.Networking.ITcpClient).Assembly) + .That() + .ResideInNamespace("NetSdrClientApp.Networking") + .ShouldNot() + .HaveDependencyOn("NetSdrClientApp.Messages") + .GetResult(); + + // Assert + Assert.That(result.IsSuccessful, Is.True); + } + } +} \ No newline at end of file diff --git a/NetSdrClientAppTests/NetSdrClientAppTests.csproj b/NetSdrClientAppTests/NetSdrClientAppTests.csproj index 457aa1e2..9213cef5 100644 --- a/NetSdrClientAppTests/NetSdrClientAppTests.csproj +++ b/NetSdrClientAppTests/NetSdrClientAppTests.csproj @@ -15,6 +15,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all +