public void ShouldReadNextEventFromQueue() { _queueReader.Setup(_ => _.Read()).Returns(SerializedEvent); var result = _target.GetNext(); result.ToXml().Should().BeEquivalentTo(SerializedEvent); _messageQueue.Verify(_ => _.BeginRead(MessageQueueKeys.Events), Times.Once); _queueReader.Verify(_ => _.Read(), Times.Once); _queueReader.Verify(_ => _.Dispose(), Times.Once); }
/// <summary> /// Processes the next event. /// </summary> /// <returns><see langword="true"/> if there are more events to process; otherwise, <see langword="false"/>.</returns> public bool ProcessNextEvent() { var eventToProcess = _eventProvider.GetNext(); if (eventToProcess == null) return false; var eventDb = _eventRepository.GetByKey(eventToProcess.Key).SingleOrDefault(); if (eventDb == null) throw new UnknownEventException(); var handlers = _eventHandlerDispatcher.Get(eventToProcess); foreach(var eventHandler in handlers) { eventHandler.Handle(eventToProcess); } return true; }