public void SuccessfullyBlocksRemoveRange()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <TestModel>(context);

            var entities = new[] {
                new TestModel
                {
                    Description = "SuccessfullyBlocksRemoveRange.1"
                },
                new TestModel
                {
                    Description = "SuccessfullyBlocksRemoveRange.2"
                }
            };

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

            dbSet = new MongoDbTenantSet <TestModel>(context);

            entities[0].TenantId = "qweasd";
            entities[1].TenantId = "qweasd";

            Assert.ThrowsException <MultiTenantException>(() => dbSet.RemoveRange(entities));
        }
        public void SuccessfullyRemoveRange()
        {
            var connection = TestConfiguration.GetConnection();
            var tenantId   = TestConfiguration.GetTenantId();
            var context    = new MongoDbTenantContext(connection, tenantId);
            var dbSet      = new MongoDbTenantSet <TestModel>(context);

            var entities = new[] {
                new TestModel
                {
                    Description = "SuccessfullyRemoveRange.1"
                },
                new TestModel
                {
                    Description = "SuccessfullyRemoveRange.2"
                }
            };

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

            dbSet = new MongoDbTenantSet <TestModel>(context);

            dbSet.RemoveRange(entities);

            Assert.IsTrue(dbSet.Any(m => m.Description == "SuccessfullyRemoveRange.1"));
            Assert.IsTrue(dbSet.Any(m => m.Description == "SuccessfullyRemoveRange.2"));
            context.SaveChanges();
            Assert.IsFalse(dbSet.Any(m => m.Description == "SuccessfullyRemoveRange.1"));
            Assert.IsFalse(dbSet.Any(m => m.Description == "SuccessfullyRemoveRange.2"));
        }
        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));
        }