Наследование: IStreamReprocessor
        public void Can_Reprocess_Existing_Items_In_Database()
        {
            try
            {
                var streamPersister = new StreamReprocessor(ConnectionString, DatabaseName);

                streamPersister.Reprocess();
            }
            finally
            {
                MongoServer.Create(ConnectionString).DropDatabase(DatabaseName);
            }
        }
        public void Can_Reprocess_Existing_Items_In_Memory()
        {
            var items = this.BuildItems(numberOfFeeds: 10, numberOfTweets: 20);

            var fakeStreamProcessor = new Mock<IItemProcessor>(MockBehavior.Loose);
            var fakeStreamStorage = new Mock<IStreamStorage>(MockBehavior.Loose);
            fakeStreamStorage.Setup(s => s.GetLatest(null, null, null, null)).Returns(items);

            var streamPersister = new StreamReprocessor(fakeStreamProcessor.Object, fakeStreamStorage.Object);
            streamPersister.Reprocess();

            fakeStreamProcessor.Verify(p => p.Process(It.IsAny<Item>()), Times.Exactly(items.Count));
            fakeStreamStorage.Verify(s => s.GetLatest(null, null, null, null), Times.Once());
            fakeStreamStorage.Verify(s => s.Save(It.IsAny<IEnumerable<Item>>()), Times.Once());
        }