Files
RobustToolbox/Robust.UnitTesting/Server/GameObjects/ServerEntityNetworkManagerTest.cs
T
Pieter-Jan Briers 2fc6614118 Add NUnit.Analyzers analyzer
Caught numerous cases of expected/actual being mixed and even a few broken test cases in content.
2020-07-30 18:38:17 +02:00

45 lines
1.8 KiB
C#

using Moq;
using NUnit.Framework;
using Robust.Server.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.Network.Messages;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.UnitTesting.Server.GameObjects
{
public class ServerEntityNetworkManagerTest
{
[Test]
public void TestMessageSort()
{
var tickA = new GameTick(5);
var tickB = new GameTick(3);
var channel = new Mock<INetChannel>().Object;
var msgA = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickA, Sequence = 10};
var msgB = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickA, Sequence = 13};
var msgC = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickA, Sequence = 12};
var msgD = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickA, Sequence = 14};
var msgE = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickB, Sequence = 7};
var msgF = new MsgEntity(channel) {Type = EntityMessageType.SystemMessage, SourceTick = tickB, Sequence = 4};
var pq = new PriorityQueue<MsgEntity>(new ServerEntityNetworkManager.MessageSequenceComparer());
pq.Add(msgA);
pq.Add(msgB);
pq.Add(msgC);
pq.Add(msgD);
pq.Add(msgE);
pq.Add(msgF);
Assert.That(pq.Take(), Is.EqualTo(msgF));
Assert.That(pq.Take(), Is.EqualTo(msgE));
Assert.That(pq.Take(), Is.EqualTo(msgA));
Assert.That(pq.Take(), Is.EqualTo(msgC));
Assert.That(pq.Take(), Is.EqualTo(msgB));
Assert.That(pq.Take(), Is.EqualTo(msgD));
}
}
}