public void SuccessfullyLinqFindTracked()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <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);
        }
        public void SuccessfullyRemoveRangeByPredicate()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <TestModel>(context);

            var context2 = new MongoDbTenantContext(connection, tenantId + "-alt");
            var dbSet2   = new MongoDbTenantSet <TestModel>(context2);


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

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

            dbSet.AddRange(entities);
            dbSet2.AddRange(entities2);

            context.SaveChanges();
            context2.SaveChanges();

            dbSet = new MongoDbTenantSet <TestModel>(context);

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

            Assert.AreEqual(2, dbSet.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            Assert.AreEqual(2, dbSet2.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            context.SaveChanges();
            Assert.AreEqual(1, dbSet.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            Assert.AreEqual(2, dbSet2.Count(m => m.Description == "SuccessfullyRemoveRangeByPredicate"));
            Assert.IsNotNull(dbSet.FirstOrDefault(m => m.Id == entities[0].Id));
        }