public void SuccessfullyRemoveRangeByPredicate()
        {
            var dbSet = new MongoDbSet <MongoDbSetValidationModel>();

            dbSet.SetConnection(TestConfiguration.GetConnection());

            var entities = new[]
            {
                new MongoDbSetValidationModel
                {
                    RequiredField = "SuccessfullyRemoveRangeByPredicate"
                },
                new MongoDbSetValidationModel
                {
                    RequiredField = "SuccessfullyRemoveRangeByPredicate",
                    BooleanField  = true
                }
            };

            dbSet.AddRange(entities);
            dbSet.SaveChanges();

            dbSet.SetConnection(TestConfiguration.GetConnection());

            dbSet.RemoveRange(e => e.BooleanField);

            Assert.AreEqual(2, dbSet.Count(m => m.RequiredField == "SuccessfullyRemoveRangeByPredicate"));
            dbSet.SaveChanges();
            Assert.AreEqual(1, dbSet.Count(m => m.RequiredField == "SuccessfullyRemoveRangeByPredicate"));
            Assert.IsNotNull(dbSet.FirstOrDefault(m => m.Id == entities[0].Id));
        }
        public void SuccessfullyRemoveRangeByPredicate()
        {
            var connection = TestConfiguration.GetConnection();
            var context    = new MongoDbContext(connection);
            var dbSet      = new MongoDbSet <TestModel>(context);

            var entities = new[]
            {
                new TestModel
                {
                    Description = "SuccessfullyRemoveRangeByPredicate"
                },
                new TestModel
                {
                    Description  = "SuccessfullyRemoveRangeByPredicate",
                    BooleanField = true
                }
            };

            dbSet.AddRange(entities);
            context.SaveChanges();

            dbSet = new MongoDbSet <TestModel>(context);

            dbSet.RemoveRange(e => e.BooleanField);

            Assert.AreEqual(2, dbSet.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            context.SaveChanges();
            Assert.AreEqual(1, dbSet.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            Assert.IsNotNull(dbSet.FirstOrDefault(m => m.Id == entities[0].Id));
        }
        public void SuccessfullyLinqFindTracked()
        {
            var connection = TestConfiguration.GetConnection();
            var context    = new MongoDbContext(connection);
            var dbSet      = new MongoDbSet <TestModel>(context);

            var model = new TestModel
            {
                Id          = "abcd",
                Description = "SuccessfullyFindTracked.1"
            };

            dbSet.Add(model);

            context.SaveChanges();

            ResetMongoDb();

            var result = dbSet.FirstOrDefault();

            result.Description = "changed";
            context.ChangeTracker.DetectChanges();

            Assert.AreEqual(MongoFramework.Infrastructure.EntityEntryState.Updated, context.ChangeTracker.GetEntry(result).State);
        }