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); }
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."); }
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); }