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());
        }