public void AddFirstPromiseRetained() { writeQueue.Add(cat, catPromise); AssertQueueSize(3, false); writeQueue.Add(mouse, NewFutureListener()); AssertQueueSize(8, false); IPromise aggregatePromise = NewPromise(); Assert.Equal("catmous", Dequeue(7, aggregatePromise)); IByteBuffer remainder = Unpooled.WrappedBuffer(Encoding.ASCII.GetBytes("mous")); writeQueue.AddFirst(remainder, aggregatePromise); IPromise aggregatePromise2 = NewPromise(); Assert.Equal("mouse", Dequeue(5, aggregatePromise2)); aggregatePromise2.Complete(); Assert.True(catPromise.IsSuccess); Assert.True(mouseSuccess); Assert.Equal(0, cat.ReferenceCount); Assert.Equal(0, mouse.ReferenceCount); }