diff --git a/MTSC.UnitTests/ResourcesTests.cs b/MTSC.UnitTests/ResourcesTests.cs new file mode 100644 index 0000000..98759c8 --- /dev/null +++ b/MTSC.UnitTests/ResourcesTests.cs @@ -0,0 +1,23 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace MTSC.UnitTests +{ + [TestClass] + public class ResourcesTests + { + public static Server.Server server; + [ClassInitialize] + public static void InitializeServer(TestContext testContext) + { + server = new Server.Server(); + } + [TestMethod] + public void AddAndGetResource() + { + StringResource resource = new StringResource { Value = "hello" }; + server.WithResource(resource); + var gotResource = server.GetResource(); + Assert.AreEqual(gotResource, resource); + } + } +} diff --git a/MTSC.UnitTests/StringResource.cs b/MTSC.UnitTests/StringResource.cs new file mode 100644 index 0000000..471a9c1 --- /dev/null +++ b/MTSC.UnitTests/StringResource.cs @@ -0,0 +1,9 @@ +using MTSC.Server.Resources; + +namespace MTSC.UnitTests +{ + public class StringResource : IResource + { + public string Value { get; set; } + } +} diff --git a/MTSC/MTSC.csproj b/MTSC/MTSC.csproj index bbd7d0e..e93cb4e 100644 --- a/MTSC/MTSC.csproj +++ b/MTSC/MTSC.csproj @@ -5,12 +5,12 @@ netcoreapp2.1;net48;netstandard2.0;netcoreapp3.0 - 1.6.7 + 1.7 Alexandru-Victor Macocian MTSC Modular TCP Server and Client - 0.1.6.7 - 0.1.6.7 + 0.1.7.0 + 0.1.7.0 true AnyCPU;x64 https://github.com/AlexMacocian/MTSC diff --git a/MTSC/Server/Resources/IResource.cs b/MTSC/Server/Resources/IResource.cs new file mode 100644 index 0000000..1fd1794 --- /dev/null +++ b/MTSC/Server/Resources/IResource.cs @@ -0,0 +1,6 @@ +namespace MTSC.Server.Resources +{ + public interface IResource + { + } +} diff --git a/MTSC/Server/Server.cs b/MTSC/Server/Server.cs index f195ab1..807ee0e 100644 --- a/MTSC/Server/Server.cs +++ b/MTSC/Server/Server.cs @@ -1,6 +1,7 @@ using MTSC.Exceptions; using MTSC.Logging; using MTSC.Server.Handlers; +using MTSC.Server.Resources; using MTSC.Server.UsageMonitors; using System; using System.Collections.Concurrent; @@ -61,6 +62,10 @@ namespace MTSC.Server /// List of clients currently connected to the server. /// public List Clients { get; set; } = new List(); + /// + /// Dictionary of resources + /// + public Dictionary Resources { get; } = new Dictionary(); #endregion #region Constructors /// @@ -90,6 +95,11 @@ namespace MTSC.Server } #endregion #region Public Methods + public Server WithResource(IResource resource) + { + Resources[resource.GetType()] = resource; + return this; + } /// /// Requests that the client provides a certificate. /// @@ -200,6 +210,10 @@ namespace MTSC.Server serverUsageMonitors.Add(serverUsageMonitor); return this; } + public IResource GetResource() + { + return Resources[typeof(T)]; + } /// /// Queues a message to be sent. ///