sphagnum/tests/Sphagnum.Common.UnitTests/MessageParserTests.cs

73 lines
2.9 KiB
C#

using Sphagnum.Common.Messaging.Contracts;
using Sphagnum.Common.Messaging.Utils;
using Sphagnum.Common.UnitTests.DataGenerators;
namespace Sphagnum.Common.UnitTests
{
public class MessageParserTests
{
[Test]
public void PackUnpackIncomingMessage_WithPayload()
{
var count = 0;
while (count < 100)
{
var message = MessagesGenerator.GetRandomMessage();
var bytes = MessageParser.PackMessage(message);
var message2 = MessageParser.UnpackMessage(bytes);
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
Assert.Multiple(() =>
{
Assert.That(f1, Is.EqualTo(f2));
Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
});
count++;
}
}
[Test]
public void PackUnpackIncomingMessage_WithEmptyPayload()
{
var count = 0;
while (count < 100)
{
var message = MessagesGenerator.GetRandomMessage(null, false, true);
var bytes = MessageParser.PackMessage(message);
var message2 = MessageParser.UnpackMessage(bytes);
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
Assert.Multiple(() =>
{
Assert.That(f1, Is.EqualTo(f2));
Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
});
count++;
}
}
[Test]
public void PackUnpackOutgoingMessageGetMessageId_WithEmptyRoutingKeyAndEmptyPayload()
{
var count = 0;
while (count < 100)
{
var id = Guid.NewGuid();
var message = MessagesGenerator.GetRandomMessage(null, true, true);
var bytes = MessageParser.PackMessage(message);
var message2 = MessageParser.UnpackMessage(bytes);
var bytes2 = MessageParser.PackMessage(message2);
var f1 = (MessageFlags)BitConverter.ToUInt16(bytes.AsSpan(5, 2));
var f2 = (MessageFlags)BitConverter.ToUInt16(bytes2.AsSpan(5, 2));
Assert.Multiple(() =>
{
Assert.That(f1, Is.EqualTo(f2));
Assert.That(Comparers.MessagesComparer.Compare(message, message2), Is.True);
});
count++;
}
}
}
}