public void TakeAndReturnBuffer() { var bufferManager = new SimpleBufferManager(); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(0, bufferManager.BucketCount); Assert.AreEqual(0, bufferManager.AllocatedBytes); Assert.AreEqual(0, bufferManager.AvailableBytes); byte[] buffer1024 = bufferManager.TakeBuffer(1024); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(1024, buffer1024.Length); Assert.AreEqual(1024, bufferManager.AllocatedBytes); Assert.AreEqual(1, bufferManager.BucketCount); Assert.AreEqual(0, bufferManager.AvailableBytes); bufferManager.ReturnBuffer(buffer1024); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(1024, bufferManager.AllocatedBytes); Assert.AreEqual(1024, bufferManager.AvailableBytes); Assert.AreEqual(1, bufferManager.BucketCount); byte[] buffer4096 = bufferManager.TakeBuffer(4096); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(4096, buffer4096.Length); Assert.AreEqual(1024 + 4096, bufferManager.AllocatedBytes); Assert.AreEqual(1024, bufferManager.AvailableBytes); Assert.AreEqual(2, bufferManager.BucketCount); bufferManager.ReturnBuffer(buffer4096); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(1024 + 4096, bufferManager.AllocatedBytes); Assert.AreEqual(1024 + 4096, bufferManager.AvailableBytes); Assert.AreEqual(2, bufferManager.BucketCount); }
public void LargeBuffer() { var bufferManager = new SimpleBufferManager(); int bufferSize = SimpleBufferManager.MaxBufferSize + 1; byte[] buffer = bufferManager.TakeBuffer(bufferSize); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(bufferSize, buffer.Length); Assert.AreEqual(0, bufferManager.AllocatedBytes); Assert.AreEqual(0, bufferManager.AvailableBytes); Assert.AreEqual(0, bufferManager.BucketCount); bufferManager.ReturnBuffer(buffer); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(0, bufferManager.AllocatedBytes); Assert.AreEqual(0, bufferManager.AvailableBytes); Assert.AreEqual(0, bufferManager.BucketCount); }
public void RecycleBuffer() { var bufferManager = new SimpleBufferManager(); int bufferSize = bufferManager.GetDefaultBufferSize(); for (int i = 0; i < 10; i++) { byte[] buffer = bufferManager.TakeBuffer(bufferSize); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(bufferSize, buffer.Length); Assert.AreEqual(bufferSize, bufferManager.AllocatedBytes); Assert.AreEqual(0, bufferManager.AvailableBytes); Assert.AreEqual(1, bufferManager.BucketCount); bufferManager.ReturnBuffer(buffer); Trace.TraceInformation(bufferManager.ToString()); Assert.AreEqual(bufferSize, bufferManager.AllocatedBytes); Assert.AreEqual(bufferSize, bufferManager.AvailableBytes); Assert.AreEqual(1, bufferManager.BucketCount); } }