Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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;
        }