]> git.deb.at Git - rhonda/impostor.git/commitdiff
Fix packet recorder and re-enable RemoveMessage test
authorAeonLucid <aeonlucid@outlook.com>
Sun, 1 Nov 2020 22:07:48 +0000 (23:07 +0100)
committerAeonLucid <aeonlucid@outlook.com>
Sun, 1 Nov 2020 22:07:48 +0000 (23:07 +0100)
src/Impostor.Server/Recorder/PacketRecorder.cs
src/Impostor.Tests/Hazel/MessageReaderTests.cs

index 8824415a770e9b992fe3343e1d6edc08c9f4b18c..322af4f57cb62d514d5db94805bc6b300713abfb 100644 (file)
@@ -146,7 +146,7 @@ namespace Impostor.Server.Recorder
             context.Writer.Write((byte) messageType);
             context.Writer.Write((byte) reader.Tag);
             context.Writer.Write((int) reader.Length);
-            context.Writer.Write(reader.Buffer.AsSpan(0, reader.Length));
+            context.Writer.Write(reader.Buffer, reader.Offset, reader.Length);
         }
 
         private static void WriteGameCode(PacketSerializationContext context, in GameCode gameCode)
index da13696eb87e5d8a09e59190bfadce04e2b58fa7..a51b8bff2671755412f27ce8d69ec6cff4054c63 100644 (file)
@@ -280,67 +280,67 @@ namespace Impostor.Tests.Hazel
             Assert.Equal("NO", sub.ReadString());
         }
 
-        // [Fact]
-        // public void RemoveMessage()
-        // {
-        //     // Create expected message.
-        //     var messageExpected = new MessageWriter(1024);
-        //
-        //     messageExpected.StartMessage(0);
-        //     messageExpected.StartMessage(1);
-        //     messageExpected.Write("HiTest");
-        //     messageExpected.EndMessage();
-        //     messageExpected.StartMessage(2);
-        //     messageExpected.Write("HiTest");
-        //     messageExpected.EndMessage();
-        //     messageExpected.EndMessage();
-        //
-        //     // Create message.
-        //     var messageWriter = new MessageWriter(1024);
-        //
-        //     messageWriter.StartMessage(0);
-        //         messageWriter.StartMessage(1);
-        //             messageWriter.Write("HiTest1");
-        //             messageWriter.StartMessage(2);
-        //                 messageWriter.Write("RemoveMe!");
-        //             messageWriter.EndMessage();
-        //         messageWriter.EndMessage();
-        //         messageWriter.StartMessage(2);
-        //             messageWriter.Write("HiTest2");
-        //         messageWriter.EndMessage();
-        //     messageWriter.EndMessage();
-        //
-        //     // Do the magic.
-        //     var readerPool = CreateReaderPool();
-        //     var reader = readerPool.Get();
-        //     reader.Update(messageWriter.Buffer);
-        //     var inner = reader.ReadMessage();
-        //
-        //     while (inner.Position < inner.Length)
-        //     {
-        //         var message = inner.ReadMessage();
-        //         if (message.Tag == 1)
-        //         {
-        //             Assert.Equal("HiTest1", message.ReadString());
-        //
-        //             var messageSub = message.ReadMessage();
-        //             if (messageSub.Tag == 2)
-        //             {
-        //                 Assert.Equal("RemoveMe!", messageSub.ReadString());
-        //
-        //                 // Remove this message.
-        //                 // inner.RemoveMessage(messageSub);
-        //             }
-        //         }
-        //         else if (message.Tag == 2)
-        //         {
-        //             Assert.Equal("HiTest2", message.ReadString());
-        //         }
-        //     }
-        //
-        //     // Check if the magic was successful.
-        //     Assert.Equal(messageExpected.ToByteArray(true), messageWriter.ToByteArray(true));
-        // }
+        [Fact]
+        public void RemoveMessage()
+        {
+            // Create expected message.
+            var messageExpected = new MessageWriter(1024);
+
+            messageExpected.StartMessage(0);
+            messageExpected.StartMessage(1);
+            messageExpected.Write("HiTest");
+            messageExpected.EndMessage();
+            messageExpected.StartMessage(2);
+            messageExpected.Write("HiTest");
+            messageExpected.EndMessage();
+            messageExpected.EndMessage();
+
+            // Create message.
+            var messageWriter = new MessageWriter(1024);
+
+            messageWriter.StartMessage(0);
+                messageWriter.StartMessage(1);
+                    messageWriter.Write("HiTest1");
+                    messageWriter.StartMessage(2);
+                        messageWriter.Write("RemoveMe!");
+                    messageWriter.EndMessage();
+                messageWriter.EndMessage();
+                messageWriter.StartMessage(2);
+                    messageWriter.Write("HiTest2");
+                messageWriter.EndMessage();
+            messageWriter.EndMessage();
+
+            // Do the magic.
+            var readerPool = CreateReaderPool();
+            var reader = readerPool.Get();
+            reader.Update(messageWriter.Buffer);
+            var inner = reader.ReadMessage();
+
+            while (inner.Position < inner.Length)
+            {
+                var message = inner.ReadMessage();
+                if (message.Tag == 1)
+                {
+                    Assert.Equal("HiTest1", message.ReadString());
+
+                    var messageSub = message.ReadMessage();
+                    if (messageSub.Tag == 2)
+                    {
+                        Assert.Equal("RemoveMe!", messageSub.ReadString());
+
+                        // Remove this message.
+                        inner.RemoveMessage(messageSub);
+                    }
+                }
+                else if (message.Tag == 2)
+                {
+                    Assert.Equal("HiTest2", message.ReadString());
+                }
+            }
+
+            // Check if the magic was successful.
+            Assert.Equal(messageExpected.ToByteArray(true), messageWriter.ToByteArray(true));
+        }
 
         [Fact]
         public void GetLittleEndian()