public void ConsumingOutOfOrderFailsGracefully() { var defultIter = new MemoryPoolIterator(); // Calling ConsumingComplete without a preceding calling to ConsumingStart fails using (var socketInput = new SocketInput(null, null)) { Assert.Throws <InvalidOperationException>(() => socketInput.ConsumingComplete(defultIter, defultIter)); } // Calling ConsumingComplete twice in a row fails using (var socketInput = new SocketInput(null, null)) { socketInput.ConsumingStart(); socketInput.ConsumingComplete(defultIter, defultIter); Assert.Throws <InvalidOperationException>(() => socketInput.ConsumingComplete(defultIter, defultIter)); } // Calling ConsumingStart twice in a row fails using (var socketInput = new SocketInput(null, null)) { socketInput.ConsumingStart(); Assert.Throws <InvalidOperationException>(() => socketInput.ConsumingStart()); } }
public void ConsumingCompleteCallsBufferSizeControlSubtract(Mock <IBufferSizeControl> mockBufferSizeControl) { using (var kestrelEngine = new KestrelEngine(new MockLibuv(), new TestServiceContext())) { kestrelEngine.Start(1); using (var memory = new MemoryPool()) using (var socketInput = new SocketInput(memory, null, mockBufferSizeControl?.Object)) { socketInput.IncomingData(new byte[20], 0, 20); var iterator = socketInput.ConsumingStart(); iterator.Skip(5); socketInput.ConsumingComplete(iterator, iterator); mockBufferSizeControl?.Verify(b => b.Subtract(5)); } } }