public void AsEnumerableReturnsTheEvents() { var currentIndex = -1; var maximumSize = 5000; var options = new CreateBatchOptions { MaximumSizeInBytes = maximumSize }; var eventMessages = new AmqpMessage[5]; var batchEvents = new EventData[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) { var message = new Mock <AmqpMessage>(); message.Setup(msg => msg.SerializedMessageSize).Returns(50); eventMessages[index] = message.Object; } var batch = new AmqpEventBatch(mockConverter, options); for (var index = 0; index < eventMessages.Length; ++index) { batchEvents[index] = new EventData(new byte[0]); batch.TryAdd(batchEvents[index]); } IEnumerable <EventData> batchEnumerable = batch.AsEnumerable <EventData>(); Assert.That(batchEnumerable, Is.Not.Null, "The batch enumerable should have been populated."); var batchEnumerableList = batchEnumerable.ToList(); Assert.That(batchEnumerableList.Count, Is.EqualTo(batch.Count), "The wrong number of events was in the enumerable."); for (var index = 0; index < batchEvents.Length; ++index) { Assert.That(batchEnumerableList.Contains(batchEvents[index]), $"The event at index: { index } was not in the enumerable."); } }
public void AsEnumerableValidatesTheTypeParameter() { var options = new BatchOptions { MaximumizeInBytes = 5000 }; var mockEnvelope = new Mock <AmqpMessage>(); var mockConverter = new InjectableMockConverter(); mockConverter.CreateBatchFromEventsHandler = (_e, _p) => mockEnvelope.Object; mockEnvelope .Setup(message => message.SerializedMessageSize) .Returns(0); var batch = new AmqpEventBatch(mockConverter, options); Assert.That(() => batch.AsEnumerable <EventData>(), Throws.InstanceOf <FormatException>()); }