Esempio n. 1
0
        public void ShouldRejectWriteWhenInsufficientSpace()
        {
            const int  length = 200;
            const long head   = 0;
            var        tail   = head +
                                (Capacity -
                                 (length - RingBufferDescriptor.RecordAlignment).AlignToMultipleOf(
                                     RingBufferDescriptor.RecordAlignment));

            _atomicLong.VolatileRead(Head).Returns(head);
            _atomicLong.VolatileRead(Tail).Returns(tail);

            var chunk = new ByteChunk(null, length);

            Assert.False(_ringBuffer.Write(MessageTypeId, chunk));

            _atomicInt.ReceivedWithAnyArgs(0);
            _atomicLong.DidNotReceiveWithAnyArgs().CompareExchange(IntPtr.Zero, 0, 0);
            _atomicLong.DidNotReceiveWithAnyArgs().VolatileWrite(IntPtr.Zero, 0);
            _buffer.DidNotReceiveWithAnyArgs().Write(0, new ByteChunk(null, 0));
        }