Ejemplo n.º 1
0
        public void MultiDisposeCallHandled()
        {
            MockArrayPool mock = new MockArrayPool();

            Packet <byte> sut = new Packet <byte>(new byte[0], 0, mock);

            sut.Dispose();
            sut.Dispose();

            Assert.AreEqual(1, mock.ReturnCallCount);
        }
Ejemplo n.º 2
0
        public void UsesGivenPool()
        {
            var pool   = new MockArrayPool <byte>();
            var memory = new RentedMemory <byte>(42, pool);

            Assert.AreEqual(memory.Pool, pool, "Provided pool was not stored.");

            var array = memory.DangerousGetArray();

            Assert.IsTrue(pool.Rented.Contains(array), "Provided pool was not used for renting.");

            memory.Dispose();
            Assert.IsFalse(pool.Rented.Contains(array), "Provided pool was not used for returnig.");
        }
Ejemplo n.º 3
0
    public void Dispose_ReturnsArraysToPool_ArrayPool()
    {
        MockArrayPool <char> mockPool = new MockArrayPool <char>();
        var seq      = new Sequence <char>(mockPool);
        var expected = new List <char[]>();

        for (int i = 0; i < 3; i++)
        {
            var mem = seq.GetMemory(3);
            Assumes.True(MemoryMarshal.TryGetArray <char>(mem, out var segment));
            expected.Add(segment.Array);
            seq.Advance(mem.Length);
        }

        seq.Dispose();
        Assert.True(seq.AsReadOnlySequence.IsEmpty);
        mockPool.AssertContents(expected);
    }