diff --git a/Sphagnum.Server.Tests/Services/TestConnection.cs b/Sphagnum.Server.Tests/Services/TestConnection.cs
new file mode 100644
index 0000000..3acad27
--- /dev/null
+++ b/Sphagnum.Server.Tests/Services/TestConnection.cs
@@ -0,0 +1,109 @@
+using Sphagnum.Common.Infrastructure.Contracts;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading.Channels;
+
+namespace Sphagnum.Server.Tests.Services
+{
+ ///
+ /// Класс имитирующий передачу данных через сокет.
+ ///
+ internal class TestConnection : IConnection
+ {
+ public CancellationTokenSource CancellationTokenSource { get; set; } = new CancellationTokenSource();
+ public Guid ConnectionId { get; private set; }
+
+ public bool Connected { get; set; }
+
+ public event Action? ConnectionClosed;
+
+ public Channel _channel = Channel.CreateUnbounded();
+ public Channel _newConnectionsChannel = Channel.CreateUnbounded();
+
+ public TestConnection(Guid id)
+ {
+ ConnectionId = id;
+ }
+
+ public TestConnection()
+ {
+ ConnectionId = Guid.NewGuid();
+ }
+
+ public void Bind(EndPoint endPoint)
+ {
+ }
+
+ public void Close()
+ {
+ Connected = false;
+ CancellationTokenSource.Cancel();
+ ConnectionClosed?.Invoke(ConnectionId);
+ }
+
+ public Task ConnectAsync(string host, int port)
+ {
+ Connected = true;
+ return Task.CompletedTask;
+ }
+
+ public void Dispose()
+ {
+ CancellationTokenSource.Cancel();
+ ConnectionClosed?.Invoke(ConnectionId);
+ }
+
+ public void Listen(int backlog)
+ {
+
+ }
+
+ public async ValueTask ReceiveAsync(Memory buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default)
+ {
+ var canRead = await _channel.Reader.WaitToReadAsync(cancellationToken);
+ if (canRead)
+ {
+ if (socketFlags == SocketFlags.Peek)
+ {
+ if (_channel.Reader.TryPeek(out var data))
+ {
+ int i;
+ for (i = 0; i < buffer.Length && i < data.Length; i++)
+ {
+ buffer.Span[i] = data[i];
+ }
+ return i;
+ }
+ }
+ else
+ {
+ var data = await _channel.Reader.ReadAsync(cancellationToken);
+ for (var i = 0; i < buffer.Length && i < data.Length; i++)
+ {
+ buffer.Span[i] = data[i];
+ }
+ return data.Length;
+ }
+ }
+ return 0;
+ }
+
+ public async ValueTask SendAsync(ReadOnlyMemory buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default)
+ {
+ var data = new byte[buffer.Length];
+ buffer.CopyTo(data);
+ await _channel.Writer.WriteAsync(data, cancellationToken);
+ return data.Length;
+ }
+
+ public async Task AcceptAsync()
+ {
+ return await _newConnectionsChannel.Reader.ReadAsync();
+ }
+
+ internal async Task AddInputConnection(Guid? connectionId = null)
+ {
+ await _newConnectionsChannel.Writer.WriteAsync(connectionId.HasValue ? new TestConnection(connectionId.Value) : new TestConnection());
+ }
+ }
+}
diff --git a/Sphagnum.Server.Tests/Sphagnum.Server.Tests.csproj b/Sphagnum.Server.Tests/Sphagnum.Server.Tests.csproj
new file mode 100644
index 0000000..82c544c
--- /dev/null
+++ b/Sphagnum.Server.Tests/Sphagnum.Server.Tests.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Sphagnum.Server.Tests/TestConnectionTests.cs b/Sphagnum.Server.Tests/TestConnectionTests.cs
new file mode 100644
index 0000000..39057f2
--- /dev/null
+++ b/Sphagnum.Server.Tests/TestConnectionTests.cs
@@ -0,0 +1,162 @@
+using AutoFixture;
+using Sphagnum.Common.Messaging.Extensions;
+using Sphagnum.Server.Tests.Services;
+using System.Security.Cryptography;
+
+namespace Sphagnum.Server.Tests
+{
+ public class TestConnectionTests
+ {
+
+ [Test]
+ public async Task IsNewConnectionCretesCorrect()
+ {
+ var connection = new TestConnection();
+ var connectionTask = connection.AcceptAsync();
+ var id = Guid.NewGuid();
+ await Task.WhenAll(connection.AddInputConnection(id), connectionTask);
+ Assert.That(id, Is.EqualTo(connectionTask.Result.ConnectionId));
+ }
+
+ ///
+ /// ,
+ /// peek - , .
+ ///
+ ///
+ [Test]
+ public async Task SendRecieveData_WithPeekSocketFlag_MultipleReading()
+ {
+ var connection = new TestConnection();
+ var buffer1 = new byte[5];
+ var recievingTask = connection.ReceiveAsync(buffer1, System.Net.Sockets.SocketFlags.Peek);
+ var fix = new Fixture();
+ var data = fix.CreateMany(11).ToArray();
+ var sendingTask = connection.SendAsync(data, System.Net.Sockets.SocketFlags.None);
+ await Task.WhenAll(sendingTask.AsTask(), recievingTask.AsTask());
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer1[i] == data[i]);
+ }
+ Assert.That(recievingTask.Result == 5);
+ var buffer2 = new byte[5];
+ var count = await connection.ReceiveAsync(buffer2, System.Net.Sockets.SocketFlags.Peek);
+ Assert.That(recievingTask.Result == count);
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer2[i] == data[i]);
+ }
+
+ var buffer3 = new byte[5];
+ var count3 = await connection.ReceiveAsync(buffer3, System.Net.Sockets.SocketFlags.Peek);
+ Assert.That(recievingTask.Result == count3);
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer3[i] == data[i]);
+ }
+ }
+
+ ///
+ /// ,
+ /// peek - , . , .
+ ///
+ ///
+ [Test]
+ public async Task SendRecieveData_WithPeekSocketFlag_MultipleReadingWithWriting()
+ {
+ var connection = new TestConnection();
+ var buffer1 = new byte[5];
+ var recievingTask = connection.ReceiveAsync(buffer1, System.Net.Sockets.SocketFlags.Peek);
+ var fix = new Fixture();
+ var data = fix.CreateMany(RandomNumberGenerator.GetInt32(5, 100)).ToArray();
+ var sendingTask = connection.SendAsync(data, System.Net.Sockets.SocketFlags.None);
+ await Task.WhenAll(sendingTask.AsTask(), recievingTask.AsTask());
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer1[i] == data[i]);
+ }
+ Assert.That(recievingTask.Result == 5);
+ var buffer2 = new byte[5];
+ var count = await connection.ReceiveAsync(buffer2, System.Net.Sockets.SocketFlags.Peek);
+ Assert.That(recievingTask.Result == count);
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer2[i] == data[i]);
+ }
+
+ for (int c = 0; c < 20; c++)
+ {
+ var data2 = fix.CreateMany(RandomNumberGenerator.GetInt32(5, 100)).ToArray();
+ var sendingCount = await connection.SendAsync(data2, System.Net.Sockets.SocketFlags.None);
+ var buffer3 = new byte[5];
+ var count3 = await connection.ReceiveAsync(buffer3, System.Net.Sockets.SocketFlags.Peek);
+ Assert.That(recievingTask.Result == count3);
+ for (int i = 0; i < 5; i++)
+ {
+ Assert.That(buffer3[i] == data[i]);
+ }
+ }
+ }
+
+ ///
+ /// , - .
+ ///
+ ///
+ [Test]
+ public async Task SendRecieveData_WithNoneSocketFlag()
+ {
+ var fix = new Fixture();
+
+ var connection = new TestConnection();
+
+ for (int c = 0; c < 20; c++)
+ {
+ int dataSize = RandomNumberGenerator.GetInt32(5, 100);
+ var buffer1 = new byte[dataSize];
+ var recievingTask = connection.ReceiveAsync(buffer1, System.Net.Sockets.SocketFlags.None);
+ var data = fix.CreateMany(dataSize).ToArray();
+
+
+ var sendingTask = connection.SendAsync(data, System.Net.Sockets.SocketFlags.None);
+
+ await Task.WhenAll(sendingTask.AsTask(), recievingTask.AsTask());
+ for (int i = 0; i < dataSize; i++)
+ {
+ Assert.That(buffer1[i] == data[i]);
+ }
+ Assert.IsTrue(recievingTask.Result == sendingTask.Result);
+ }
+ }
+
+ ///
+ /// , - c .
+ ///
+ ///
+ [Test]
+ public async Task SendRecieveData_WithExtensionMethod()
+ {
+ var fix = new Fixture();
+
+ var connection = new TestConnection();
+
+ for (int c = 0; c < 20; c++)
+ {
+ int dataSize = RandomNumberGenerator.GetInt32(5, 100);
+
+ var recievingTask = connection.ReceiveAsync(CancellationToken.None);
+ var payload = fix.CreateMany(dataSize).ToArray();
+ var length = BitConverter.GetBytes(dataSize);
+ var data = new byte[dataSize + 4];
+ length.CopyTo(data, 0);
+ payload.CopyTo(data, 4);
+
+ var sendingTask = connection.SendAsync(data, System.Net.Sockets.SocketFlags.None);
+
+ await Task.WhenAll(sendingTask.AsTask(), recievingTask.AsTask());
+ for (int i = 0; i < dataSize; i++)
+ {
+ Assert.That(recievingTask.Result[i] == data[i]);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/development/Sphagnum.DebugClient/Controllers/TestController.cs b/development/Sphagnum.DebugClient/Controllers/TestController.cs
index cbe0141..09506c3 100644
--- a/development/Sphagnum.DebugClient/Controllers/TestController.cs
+++ b/development/Sphagnum.DebugClient/Controllers/TestController.cs
@@ -9,7 +9,6 @@ namespace Sphagnum.DebugClient.Controllers
public class TestController : ControllerBase
{
private readonly ClientDefault _connection;
- private static readonly Task? rec;
public TestController(ClientDefault connection)
{
@@ -17,7 +16,7 @@ namespace Sphagnum.DebugClient.Controllers
}
[HttpGet]
- public string test()
+ public string Test()
{
return "Ok!";
}
diff --git a/development/SphagnumDebug.sln b/development/SphagnumDebug.sln
index 563e74e..e4d4586 100644
--- a/development/SphagnumDebug.sln
+++ b/development/SphagnumDebug.sln
@@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sphagnum.Common.UnitTests",
EndProject
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{BF7E9B18-1C0F-4AA6-B4BD-F38617B72A1B}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sphagnum.Server.Tests", "..\Sphagnum.Server.Tests\Sphagnum.Server.Tests.csproj", "{134442E7-CA62-4BE4-B7EB-63847385A98C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -57,6 +59,10 @@ Global
{BF7E9B18-1C0F-4AA6-B4BD-F38617B72A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF7E9B18-1C0F-4AA6-B4BD-F38617B72A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF7E9B18-1C0F-4AA6-B4BD-F38617B72A1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {134442E7-CA62-4BE4-B7EB-63847385A98C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {134442E7-CA62-4BE4-B7EB-63847385A98C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {134442E7-CA62-4BE4-B7EB-63847385A98C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {134442E7-CA62-4BE4-B7EB-63847385A98C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -68,6 +74,7 @@ Global
{C344FDF3-3D4D-4BC6-B257-4AD907BE1BE4} = {71CDAFF8-7C3D-4915-8FAA-5C263857AD62}
{77F76F27-D883-4392-90D5-8F441043F468} = {71CDAFF8-7C3D-4915-8FAA-5C263857AD62}
{25865911-1F2D-4083-A99C-C65E13F05C14} = {8E76791F-BA23-44AD-BACB-E14DD5FCE750}
+ {134442E7-CA62-4BE4-B7EB-63847385A98C} = {8E76791F-BA23-44AD-BACB-E14DD5FCE750}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {42DA8F91-1667-49BC-971D-D83C0870393A}
diff --git a/src/Sphagnum.Common/AssemblySettings.cs b/src/Sphagnum.Common/AssemblySettings.cs
index 9eff541..130e54c 100644
--- a/src/Sphagnum.Common/AssemblySettings.cs
+++ b/src/Sphagnum.Common/AssemblySettings.cs
@@ -2,6 +2,6 @@
//Тесты
[assembly: InternalsVisibleTo("Sphagnum.Common.UnitTests")]
-
+[assembly: InternalsVisibleTo("Sphagnum.Server.Tests")]
[assembly: InternalsVisibleTo("Sphagnum.Client")]
[assembly: InternalsVisibleTo("Sphagnum.Server")]
\ No newline at end of file
diff --git a/src/Sphagnum.Common/Infrastructure/Contracts/IConnection.cs b/src/Sphagnum.Common/Infrastructure/Contracts/IConnection.cs
index 3dfb791..5ba0e2a 100644
--- a/src/Sphagnum.Common/Infrastructure/Contracts/IConnection.cs
+++ b/src/Sphagnum.Common/Infrastructure/Contracts/IConnection.cs
@@ -28,6 +28,6 @@ namespace Sphagnum.Common.Infrastructure.Contracts
void Close();
bool Connected { get; }
- public event Action ConnectionClosed;
+ public event Action? ConnectionClosed;
}
}
diff --git a/src/Sphagnum.Common/Messaging/Extensions/IConntcrionExtensions.cs b/src/Sphagnum.Common/Messaging/Extensions/IConnectionExtensions.cs
similarity index 85%
rename from src/Sphagnum.Common/Messaging/Extensions/IConntcrionExtensions.cs
rename to src/Sphagnum.Common/Messaging/Extensions/IConnectionExtensions.cs
index 7501a66..4a1d058 100644
--- a/src/Sphagnum.Common/Messaging/Extensions/IConntcrionExtensions.cs
+++ b/src/Sphagnum.Common/Messaging/Extensions/IConnectionExtensions.cs
@@ -6,11 +6,11 @@ using System.Threading.Tasks;
namespace Sphagnum.Common.Messaging.Extensions
{
- internal static class IConntcrionExtensions
+ internal static class IConnectionExtensions
{
public static async ValueTask ReceiveAsync(this IConnection connection, CancellationToken cancellationToken = default)
{
- var lengthBuffer = new byte[4];
+ var lengthBuffer = new byte[5];
await connection.ReceiveAsync(lengthBuffer, SocketFlags.Peek, cancellationToken);
var length = BitConverter.ToInt32(lengthBuffer, 0);
var result = new byte[length];
diff --git a/src/Sphagnum.Server/Broker/Services/ConnectionsReciever.cs b/src/Sphagnum.Server/Broker/Services/ConnectionsReciever.cs
index e659d05..80b74fd 100644
--- a/src/Sphagnum.Server/Broker/Services/ConnectionsReciever.cs
+++ b/src/Sphagnum.Server/Broker/Services/ConnectionsReciever.cs
@@ -9,7 +9,6 @@ namespace Sphagnum.Server.Broker.Services
{
private readonly int _port;
private readonly CancellationTokenSource _cts = new();
- private Task _acceptationTask;
private readonly IConnection _connection;
private readonly ConnectionsManager _manager;
private readonly MessagesProcessor _processor;
@@ -43,7 +42,7 @@ namespace Sphagnum.Server.Broker.Services
{
_connection.Bind(new IPEndPoint(IPAddress.Any, _port));
_connection?.Listen(1000); //todo разобраться что делает этот параметр.
- _acceptationTask = AcceptationWorker();
+ var _ = AcceptationWorker();
return Task.CompletedTask;
}
diff --git a/src/Sphagnum.Server/Broker/Services/MessagesProcessor.cs b/src/Sphagnum.Server/Broker/Services/MessagesProcessor.cs
index 7ca2c77..8a05ea1 100644
--- a/src/Sphagnum.Server/Broker/Services/MessagesProcessor.cs
+++ b/src/Sphagnum.Server/Broker/Services/MessagesProcessor.cs
@@ -14,7 +14,7 @@ namespace Sphagnum.Server.Broker.Services
{
Connections.TryRemove(id, out var conn);
};
- ProcessMessages(connection);
+ var _ = ProcessMessages(connection);
}
internal static async Task ProcessMessages(IConnection connection)
diff --git a/tests/Sphagnum.Common.UnitTests/MessageParserTests.cs b/tests/Sphagnum.Common.UnitTests/MessageParserTests.cs
index 0c495c8..7554df3 100644
--- a/tests/Sphagnum.Common.UnitTests/MessageParserTests.cs
+++ b/tests/Sphagnum.Common.UnitTests/MessageParserTests.cs
@@ -18,8 +18,11 @@ namespace Sphagnum.Common.UnitTests
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
- Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
-
+ Assert.Multiple(() =>
+ {
+ Assert.That(f1, Is.EqualTo(f2));
+ Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
+ });
count++;
}
}
@@ -36,9 +39,11 @@ namespace Sphagnum.Common.UnitTests
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
- Assert.IsTrue(f1 == f2);
- Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
-
+ Assert.Multiple(() =>
+ {
+ Assert.That(f1, Is.EqualTo(f2));
+ Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
+ });
count++;
}
}
@@ -56,8 +61,11 @@ namespace Sphagnum.Common.UnitTests
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
- Assert.IsTrue(f1 == f2);
- Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
+ Assert.Multiple(() =>
+ {
+ Assert.That(f1, Is.EqualTo(f2));
+ Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
+ });
count++;
}
}
diff --git a/tests/Sphagnum.Common.UnitTests/Old/ConnectionTests.cs b/tests/Sphagnum.Common.UnitTests/Old/ConnectionTests.cs
deleted file mode 100644
index 40bd3fe..0000000
--- a/tests/Sphagnum.Common.UnitTests/Old/ConnectionTests.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-namespace Sphagnum.Common.UnitTests.Old
-{
- public class ConnectionTests
- {
- [SetUp]
- public void Setup()
- {
- }
-
- [Test]
- public void Test1()
- {
- Assert.Pass();
- }
- }
-
-}
diff --git a/tests/Sphagnum.Common.UnitTests/Old/MessageParserTests.cs b/tests/Sphagnum.Common.UnitTests/Old/MessageParserTests.cs
deleted file mode 100644
index 50e8499..0000000
--- a/tests/Sphagnum.Common.UnitTests/Old/MessageParserTests.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-//using Sphagnum.Common.Messaging.Utils;
-//using Sphagnum.Common.Old.Utils.Enums;
-//using Sphagnum.Common.UnitTests.Comparers;
-//using Sphagnum.Common.UnitTests.DataGenerators;
-
-//namespace Sphagnum.Common.UnitTests.Old
-//{
-// public class MessageParserTests
-// {
-// [Test]
-// public void PackUnpackIncomingMessage_WithPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandomIncommingMessage();
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackIncomingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackIncomingMessage_WithEmptyPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandoIncommingMessage(true);
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackIncomingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// Assert.IsTrue((MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2)) == MessageFlags.HasPayload);
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessageGetMessageId_WithRoutingKeyAndPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var id = Guid.NewGuid();
-// var message = MessagesGenerator.GetRandomOutgoingMessage();
-// var bytesForFlags = MessageParserold.PackMessage(message);
-// var flags = (MessageFlags)BitConverter.ToUInt16(bytesForFlags.AsSpan(5, 2));
-// var bytes = MessageParserold.Pack(message, id, flags, bytesForFlags.Length);
-
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var id2 = MessageParserold.GetMessageId(bytes);
-// Assert.That(id, Is.EqualTo(id2));
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessageGetMessageId_WithEmptyRoutingKeyAndEmptyPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var id = Guid.NewGuid();
-// var message = MessagesGenerator.GetRandomOutgoingMessage(true, true);
-// var bytesForFlags = MessageParserold.PackMessage(message);
-// var flags = (MessageFlags)BitConverter.ToUInt16(bytesForFlags.AsSpan(5, 2));
-// var bytes = MessageParserold.Pack(message, id, flags, bytesForFlags.Length);
-
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var id2 = MessageParserold.GetMessageId(bytes);
-// Assert.That(id, Is.EqualTo(id2));
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessage_WithRoutingKeyAndPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandomOutgoingMessage();
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var bytes2 = MessageParserold.PackMessage(message2);
-// var message3 = MessageParserold.UnpackOutgoingMessage(bytes2);
-// Assert.That(MessagesComparer.ComparePayloads(message2, message3), Is.True);
-// var bytes3 = MessageParserold.PackMessage(message2);
-// var message4 = MessageParserold.UnpackOutgoingMessage(bytes3);
-// Assert.That(MessagesComparer.ComparePayloads(message3, message4), Is.True);
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessage_WithRoutingKeyAndEmptyPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandomOutgoingMessage(false, true);
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var bytes2 = MessageParserold.PackMessage(message2);
-// var message3 = MessageParserold.UnpackOutgoingMessage(bytes2);
-// Assert.That(MessagesComparer.ComparePayloads(message2, message3), Is.True);
-// var bytes3 = MessageParserold.PackMessage(message2);
-// var message4 = MessageParserold.UnpackOutgoingMessage(bytes3);
-// Assert.That(MessagesComparer.ComparePayloads(message3, message4), Is.True);
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessage_WithEmptyRoutingKey()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandomOutgoingMessage(true);
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var bytes2 = MessageParserold.PackMessage(message2);
-// var message3 = MessageParserold.UnpackOutgoingMessage(bytes2);
-// Assert.That(MessagesComparer.ComparePayloads(message2, message3), Is.True);
-// var bytes3 = MessageParserold.PackMessage(message2);
-// var message4 = MessageParserold.UnpackOutgoingMessage(bytes3);
-// Assert.That(MessagesComparer.ComparePayloads(message3, message4), Is.True);
-// count++;
-// }
-// }
-
-// [Test]
-// public void PackUnpackOutgoingMessage_WithEmptyRoutingKeyAndEmptyPayload()
-// {
-// var count = 0;
-// while (count < 100)
-// {
-// var message = MessagesGenerator.GetRandomOutgoingMessage(true, true);
-// var bytes = MessageParserold.PackMessage(message);
-// var message2 = MessageParserold.UnpackOutgoingMessage(bytes);
-// Assert.That(MessagesComparer.Compare(message, message2), Is.True);
-// var bytes2 = MessageParserold.PackMessage(message2);
-// var message3 = MessageParserold.UnpackOutgoingMessage(bytes2);
-// Assert.That(MessagesComparer.ComparePayloads(message2, message3), Is.True);
-// var bytes3 = MessageParserold.PackMessage(message2);
-// var message4 = MessageParserold.UnpackOutgoingMessage(bytes3);
-// Assert.That(MessagesComparer.ComparePayloads(message3, message4), Is.True);
-// count++;
-// }
-// }
-// }
-//}
\ No newline at end of file
diff --git a/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnection.cs b/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnection.cs
deleted file mode 100644
index d5c8998..0000000
--- a/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnection.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using Sphagnum.Common.Infrastructure.Contracts;
-using System.Collections.Concurrent;
-using System.Net;
-using System.Net.Sockets;
-
-namespace Sphagnum.Common.UnitTests.Old.Services
-{
- internal class TestConnection : IConnection
- {
- private readonly ConcurrentQueue _queue = new();
- public bool Connected => true;
-
- public IConnection Accept()
- {
- return new TestConnection();
- }
-
- public Task AcceptAsync()
- {
- return Task.FromResult(new TestConnection());
- }
-
- public void Bind(EndPoint endPoint)
- {
- }
-
- public void Close()
- {
-
- }
-
- public Task ConnectAsync(string host, int port)
- {
- return Task.CompletedTask;
- }
-
- public void Dispose()
- {
-
- }
-
- public void Listen(int backlog)
- {
-
- }
-
- public async ValueTask ReceiveAsync(Memory buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default)
- {
- var res = new byte[buffer.Length];
- await Receive(res, socketFlags, cancellationToken);
- res.CopyTo(buffer);
- return res.Length;
- }
-
- public ValueTask SendAsync(ReadOnlyMemory buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default)
- {
- _queue.Enqueue(buffer.Span.ToArray());
- return ValueTask.FromResult(buffer.Length);
- }
-
- private async ValueTask Receive(byte[] buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default, int counter = 0)
- {
- if (counter > 200)
- {
- throw new TimeoutException();
- }
-
- if (socketFlags == SocketFlags.Peek ? _queue.TryPeek(out byte[]? result) : _queue.TryDequeue(out result))
- {
- result.CopyTo(buffer, 0);
- return result.Length;
- }
- else
- {
- await Task.Delay(100, cancellationToken);
- counter++;
- await Receive(buffer, socketFlags, cancellationToken, counter);
- }
- throw new TimeoutException();
- }
- }
-}
diff --git a/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnectionFactory.cs b/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnectionFactory.cs
deleted file mode 100644
index 1118efb..0000000
--- a/tests/Sphagnum.Common.UnitTests/Old/Services/TestConnectionFactory.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-//using Sphagnum.Common.Old.Contracts.Login;
-//using Sphagnum.Common.Old.Services;
-
-//namespace Sphagnum.Common.UnitTests.Old.Services
-//{
-// internal class TestConnectionFactory : ConnectionFactory
-// {
-// internal override SphagnumConnectionOld CreateDefault(Func> messagesProcessorFactory)
-// {
-// return new SphagnumConnectionOld(() => new TestConnection(), messagesProcessorFactory);
-// }
-
-// internal override Task CreateDefaultConnected(Func> messagesProcessorFactory)
-// {
-// return Task.FromResult(new SphagnumConnectionOld(() => new TestConnection(), messagesProcessorFactory));
-// }
-// }
-//}
diff --git a/tests/Sphagnum.Common.UnitTests/Old/TestConnectionTests.cs b/tests/Sphagnum.Common.UnitTests/Old/TestConnectionTests.cs
deleted file mode 100644
index e3f7f6c..0000000
--- a/tests/Sphagnum.Common.UnitTests/Old/TestConnectionTests.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-//using Sphagnum.Common.UnitTests.Services;
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using System.Text;
-//using System.Threading.Tasks;
-
-//namespace Sphagnum.Common.UnitTests
-//{
-// public class TestConnectionTests
-// {
-// [Test]
-// public async Task SendRecieve8BytesWithBufferSize10()
-// {
-// var connection = new TestConnection
-// {
-// BufferSize = 10
-// };
-// var data = new byte[8];
-// Array.Fill(data, 1);
-// _ = await connection.SendAsync(data);
-// var forResult = new List();
-// for (int i = 0; i < 1; i++)
-// {
-// var buffer = new byte[connection.BufferSize];
-// _ = await connection.ReceiveAsync(buffer);
-// for (int j = 0; j < buffer.Length; j++)
-// {
-// var el = buffer[j];
-// if (el == 1)
-// {
-// forResult.Add(el);
-// }
-// }
-// Array.Clear(buffer);
-// }
-
-// Assert.IsTrue(data.Length == forResult.Count);
-// }
-
-// [Test]
-// public async Task SendRecieve10BytesWithBufferSize10()
-// {
-// var connection = new TestConnection
-// {
-// BufferSize = 10
-// };
-// var data = new byte[10];
-// Array.Fill(data, 1);
-// _ = await connection.SendAsync(data);
-// var forResult = new List();
-// for (int i = 0; i < 1; i++)
-// {
-// var buffer = new byte[connection.BufferSize];
-// _ = await connection.ReceiveAsync(buffer);
-// for (int j = 0; j < buffer.Length; j++)
-// {
-// var el = buffer[j];
-// if (el == 1)
-// {
-// forResult.Add(el);
-// }
-// }
-// Array.Clear(buffer);
-// }
-
-// Assert.IsTrue(data.Length == forResult.Count);
-// }
-
-// [Test]
-// public async Task SendRecieve11BytesWithBufferSize10()
-// {
-// var connection = new TestConnection
-// {
-// BufferSize = 10
-// };
-// var data = new byte[11];
-// Array.Fill(data, 1);
-// _ = await connection.SendAsync(data);
-// var forResult = new List();
-// for (int i = 0; i < 2; i++)
-// {
-// var buffer = new byte[connection.BufferSize];
-// _ = await connection.ReceiveAsync(buffer);
-// for (int j = 0; j < buffer.Length; j++)
-// {
-// var el = buffer[j];
-// if (el==1)
-// {
-// forResult.Add(el);
-// }
-// }
-// Array.Clear(buffer);
-// }
-
-// Assert.IsTrue(data.Length == forResult.Count);
-// }
-
-// [Test]
-// public async Task SendRecieve31BytesWithBufferSize10()
-// {
-// var connection = new TestConnection
-// {
-// BufferSize = 10
-// };
-// var data = new byte[31];
-// Array.Fill(data, 1);
-// _ = await connection.SendAsync(data);
-// var forResult = new List();
-// for (int i = 0; i < 4; i++)
-// {
-// var buffer = new byte[connection.BufferSize];
-// _ = await connection.ReceiveAsync(buffer);
-// for (int j = 0; j < buffer.Length; j++)
-// {
-// var el = buffer[j];
-// if (el == 1)
-// {
-// forResult.Add(el);
-// }
-// }
-// Array.Clear(buffer);
-// }
-
-// Assert.IsTrue(data.Length == forResult.Count);
-// }
-
-// [Test]
-// public async Task SendRecieve30BytesWithBufferSize10()
-// {
-// var connection = new TestConnection
-// {
-// BufferSize = 10
-// };
-// var data = new byte[30];
-// Array.Fill(data, 1);
-// _ = await connection.SendAsync(data);
-// var forResult = new List();
-// for (int i = 0; i < 3; i++)
-// {
-// var buffer = new byte[connection.BufferSize];
-// _ = await connection.ReceiveAsync(buffer);
-// for (int j = 0; j < buffer.Length; j++)
-// {
-// var el = buffer[j];
-// if (el == 1)
-// {
-// forResult.Add(el);
-// }
-// }
-// Array.Clear(buffer);
-// }
-
-// Assert.IsTrue(data.Length == forResult.Count);
-// }
-// }
-
-//}