public void TryDequeue()
        {
            pipe.Enqueue(new ArraySegment <byte>(new byte[] { 0x42 }));
            Assert.That(pipe.Count, Is.EqualTo(1));

            bool result = pipe.TryDequeue();

            Assert.That(result, Is.True);
            Assert.That(pipe.Count, Is.EqualTo(0));
        }
        public void Count()
        {
            // enqueue for 42
            pipe.Enqueue(42, EventType.Connected, default);
            Assert.That(pipe.Count(42), Is.EqualTo(1));

            // enqueue for 1337
            pipe.Enqueue(1337, EventType.Connected, default);
            Assert.That(pipe.Count(1337), Is.EqualTo(1));

            // dequeue first one (42)
            pipe.TryDequeue();
            Assert.That(pipe.Count(42), Is.EqualTo(0));

            // dequeue second one (1337)
            pipe.TryDequeue();
            Assert.That(pipe.Count(1337), Is.EqualTo(0));
        }