summaryrefslogtreecommitdiff
path: root/Impostor-dev/src/Impostor.Tests/Hazel/MessageWriterTests.cs
blob: 83d67da9deca1b8bd609ceb0983539a1e0bade4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Linq;
using Impostor.Hazel;
using Xunit;

namespace Impostor.Tests.Hazel
{
    public class MessageWriterTests
    {
        [Fact]
        public void ReadOnlyMemoryWriteWorksTheSameAsArray()
        {
            var oldVer = new MessageWriter(1024);
            var newVer = new MessageWriter(1024);

            var data = Enumerable.Repeat
            (
                Enumerable.Range(0, byte.MaxValue)
                    .Select(x => (byte)x),
                2
            ).SelectMany(x => x).ToArray();

            WriteSomeData(oldVer);
            WriteSomeData(newVer);

            oldVer.Write(data);
            newVer.Write(data.AsMemory());

            Assert.True(oldVer.Buffer.AsSpan().SequenceEqual(newVer.Buffer.AsSpan()));

            static void WriteSomeData(MessageWriter oldVer)
            {
                oldVer.WritePacked(99);
                oldVer.WritePacked(101);
            }
        }
    }
}