public void EntityProcessorsRunWhenToDictionaryIsUsed()
        {
            EntityMapping.RegisterType(typeof(MongoFrameworkQueryableModel));

            var connection = TestConfiguration.GetConnection();
            var provider   = new MongoFrameworkQueryProvider <MongoFrameworkQueryableModel>(connection);
            var queryable  = new MongoFrameworkQueryable <MongoFrameworkQueryableModel>(provider);

            var processor = new TestProcessor <MongoFrameworkQueryableModel>();

            provider.EntityProcessors.Add(processor);

            var entityCollection = new EntityCollection <MongoFrameworkQueryableModel>();
            var writerPipeline   = new EntityWriterPipeline <MongoFrameworkQueryableModel>(connection);

            writerPipeline.AddCollection(entityCollection);
            entityCollection.Update(new MongoFrameworkQueryableModel {
                Title = "EntityProcessorsRunWithToDictionaryTest"
            }, EntityEntryState.Added);
            writerPipeline.Write();

            var result = queryable.ToDictionary(m => m.Id);

            Assert.AreEqual("EntityProcessorsRunWithToDictionaryTest", result.FirstOrDefault().Value.Title);
            Assert.IsTrue(processor.EntityProcessed);
        }
        public void EntityProcessorsRunWhenToDictionaryIsUsed()
        {
            EntityMapping.RegisterType(typeof(MongoFrameworkQueryableModel));

            var connection = TestConfiguration.GetConnection();
            var context    = new MongoDbContext(connection);
            var provider   = new MongoFrameworkQueryProvider <MongoFrameworkQueryableModel>(connection);
            var queryable  = new MongoFrameworkQueryable <MongoFrameworkQueryableModel>(provider);

            var processor = new TestProcessor <MongoFrameworkQueryableModel>();

            provider.EntityProcessors.Add(processor);

            context.ChangeTracker.SetEntityState(new MongoFrameworkQueryableModel {
                Title = "EntityProcessorsRunWithToDictionaryTest"
            }, EntityEntryState.Added);
            context.SaveChanges();

            var result = queryable.ToDictionary(m => m.Id);

            Assert.AreEqual("EntityProcessorsRunWithToDictionaryTest", result.FirstOrDefault().Value.Title);
            Assert.IsTrue(processor.EntityProcessed);
        }