예제 #1
0
        public void SinglePacket()
        {
            String playerId = "player1";
            Packet packet   = new TestNonActionPacket(playerId);

            int            length  = WritePacketToReceivedBuffer(packet, 0);
            Queue <Packet> packets = GetResultingPackets(messageBuffer.GetReceivedPackets(length));

            Assert.AreEqual(1, packets.Count);
            Assert.AreEqual(playerId, packets.Dequeue().PlayerId);
        }
예제 #2
0
        public void NonActionPacket()
        {
            Packet packet = new TestNonActionPacket(PLAYER_ID);

            packetReceiver.PacketReceived(packet);

            Queue <Packet> packets = packetReceiver.GetReceivedPackets();

            Assert.AreEqual(1, packets.Count);
            Assert.AreEqual(packet, packets.Dequeue());
        }
예제 #3
0
        public void MultiplePackets()
        {
            Packet packet1 = new TestNonActionPacket("Player1");
            Packet packet2 = new TestNonActionPacket("Player2");

            int length = WritePacketToReceivedBuffer(packet1, 0);

            length = WritePacketToReceivedBuffer(packet2, length);
            Queue <Packet> packets = GetResultingPackets(messageBuffer.GetReceivedPackets(length));

            Assert.AreEqual(2, packets.Count);
            Assert.AreEqual(packet1.PlayerId, packets.Dequeue().PlayerId);
            Assert.AreEqual(packet2.PlayerId, packets.Dequeue().PlayerId);
        }
예제 #4
0
        public void receivedPartialPacket()
        {
            Packet packet1 = new TestNonActionPacket("Player1");

            int partialLengthReceived = 2;
            int length = WritePacketToReceivedBuffer(packet1, 0);

            Queue <Packet> packets = GetResultingPackets(messageBuffer.GetReceivedPackets(partialLengthReceived));

            Assert.AreEqual(0, packets.Count);

            messageBuffer.ReceivingBuffer = messageBuffer.ReceivingBuffer.Skip(partialLengthReceived).ToArray();

            packets = GetResultingPackets(messageBuffer.GetReceivedPackets(length - partialLengthReceived));
            Assert.AreEqual(1, packets.Count);
            Assert.AreEqual(packet1.PlayerId, packets.Dequeue().PlayerId);
        }
예제 #5
0
        public void MultipleWithPartial()
        {
            Packet packet1 = new TestNonActionPacket("Player1");
            Packet packet2 = new TestNonActionPacket("Player2");

            int length = WritePacketToReceivedBuffer(packet1, 0);

            length = WritePacketToReceivedBuffer(packet2, length);

            int            fullWithPartialLength = length / 2 + 20;
            Queue <Packet> packets = GetResultingPackets(messageBuffer.GetReceivedPackets(fullWithPartialLength));

            Assert.AreEqual(1, packets.Count);
            Assert.AreEqual(packet1.PlayerId, packets.Dequeue().PlayerId);

            messageBuffer.ReceivingBuffer = messageBuffer.ReceivingBuffer.Skip(fullWithPartialLength).ToArray();

            packets = GetResultingPackets(messageBuffer.GetReceivedPackets(length - fullWithPartialLength));
            Assert.AreEqual(1, packets.Count);
            Assert.AreEqual(packet2.PlayerId, packets.Dequeue().PlayerId);
        }
        public void PacketPrioritizedAfterBeingDeferred()
        {
            Packet packet1 = new TestActionPacket(playerId, unloadedActionPosition);

            packetReceiver.PacketReceived(packet1);

            Assert.AreEqual(0, packetReceiver.GetReceivedPackets().Count);

            Packet packet2 = new TestNonActionPacket(playerId);

            packetReceiver.PacketReceived(packet2);

            loadedChunks.Add(unloadedChunk);
            packetReceiver.ChunkLoaded(unloadedChunk);

            Queue <Packet> packets = packetReceiver.GetReceivedPackets();

            Assert.AreEqual(2, packets.Count);
            Assert.AreEqual(packet1, packets.Dequeue());
            Assert.AreEqual(packet2, packets.Dequeue());
        }
예제 #7
0
        public void PacketPrioritizedAfterBeingDeferred()
        {
            Packet packet1 = new TestDeferrablePacket(unloadedActionPosition, CELL_LEVEL);

            packetReceiver.PacketReceived(packet1);

            Assert.AreEqual(0, packetReceiver.GetReceivedPackets().Count);

            Packet packet2 = new TestNonActionPacket(PLAYER_ID);

            packetReceiver.PacketReceived(packet2);

            visibleCells.Add(unloadedCell);
            packetReceiver.CellLoaded(unloadedCell);

            Queue <Packet> packets = packetReceiver.GetReceivedPackets();

            Assert.AreEqual(2, packets.Count);
            Assert.AreEqual(packet1, packets.Dequeue());
            Assert.AreEqual(packet2, packets.Dequeue());
        }