public void ClearClearsTheSize() { var mockMessage = new Mock <AmqpMessage>(); var mockConverter = new InjectableMockConverter { CreateBatchFromEventsHandler = (_e, _p) => mockMessage.Object }; mockMessage .Setup(message => message.SerializedMessageSize) .Returns(9959); var batch = new AmqpEventBatch(mockConverter, new CreateBatchOptions { MaximumSizeInBytes = 99 }); batch.Clear(); Assert.That(batch.SizeInBytes, Is.EqualTo(GetReservedSize(batch))); }
public void ClearClearsTheCount() { var currentIndex = -1; var options = new CreateBatchOptions { MaximumSizeInBytes = 5000 }; var eventMessages = new AmqpMessage[5]; var mockEnvelope = new Mock <AmqpMessage>(); var mockConverter = new InjectableMockConverter { CreateBatchFromEventsHandler = (_e, _p) => mockEnvelope.Object, CreateMessageFromEventHandler = (_e, _p) => eventMessages[++currentIndex] }; mockEnvelope .Setup(message => message.SerializedMessageSize) .Returns(0); for (var index = 0; index < eventMessages.Length; ++index) { eventMessages[index] = AmqpMessage.Create(new Data { Value = new ArraySegment <byte>(new byte[] { 0x66 }) }); } // Add the messages to the batch; all should be accepted. var batch = new AmqpEventBatch(mockConverter, options); for (var index = 0; index < eventMessages.Length; ++index) { Assert.That(batch.TryAdd(new EventData(new byte[0])), Is.True, $"The addition for index: { index } should fit and be accepted."); } // Dispose the batch and verify that each message has also been disposed. batch.Clear(); Assert.That(batch.Count, Is.EqualTo(0), "The count should have been cleared when the batch was disposed."); }