public void Filter_CustomFields_Success() { TestDbContext dbContext = CreateDbContext(); var fieldProvider = new Mock <IDataPrivilegeFieldProvider>(); fieldProvider.Setup(f => f.GetFieldValue("num")).Returns(0); DataPrivilegeContext context = new DataPrivilegeContext(new List <DataPrivilegeRule>(), dbContext, fieldProvider.Object, null); dbContext.TestEntities.Add(new TestEntity() { Id = "0", BoolProp = true, IntProp = 1 }); dbContext.TestEntities.Add(new TestEntity() { Id = "1", ByteProp = 1 }); dbContext.TestEntities.Add(new TestEntity() { Id = "11" }); dbContext.TestEntities.Add(new TestEntity() { Id = "12" }); dbContext.SaveChanges(); var entities = context.Filter(dbContext.TestEntities).ToList(); entities.Count.ShouldBe(1); entities.ShouldContain(t => t.Id == "0"); }
public void QueryableFilter_NoCustomFields_Success() { var visitorMock = new Mock <DataPrivilegeVisitor <TestDbContext, TestEntity> >(null, null, null); visitorMock.Setup(d => d.Visit("BoolProp=1 and IntProp!=0")) .Returns(new VisitResult <TestEntity>(_p => _p.BoolProp == true && _p.IntProp != 0, new List <Exception>(), new List <string>())); visitorMock.Setup(d => d.Visit("ByteProp!=0")) .Returns(new VisitResult <TestEntity>(_p => _p.ByteProp != 0, new List <Exception>(), new List <string>())); TestDbContext dbContext = CreateDbContext(); DataPrivilegeVisitor <TestDbContext, TestEntity> dataPrivilegeVisitor = visitorMock.Object; List <DataPrivilegeRule> rules = new List <DataPrivilegeRule>() { new DataPrivilegeRule() { TableName = "TestEntity", ConditionExpression = "BoolProp=1 and IntProp!=0" }, new DataPrivilegeRule() { TableName = "TestEntity", ConditionExpression = "ByteProp!=0" } }; DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule> context = new DataPrivilegeContext <TestDbContext, TestEntity, DataPrivilegeRule>(rules, dbContext, null, dataPrivilegeVisitor); dbContext.TestEntities.Add(new TestEntity() { Id = "0", BoolProp = true, IntProp = 1 }); dbContext.TestEntities.Add(new TestEntity() { Id = "1", ByteProp = 1 }); dbContext.TestEntities.Add(new TestEntity() { Id = "11" }); dbContext.TestEntities.Add(new TestEntity() { Id = "12" }); dbContext.SaveChanges(); var entities = context.Filter(dbContext.TestEntities).ToList(); entities.Count.ShouldBe(2); entities.ShouldContain(t => t.Id == "0"); entities.ShouldContain(t => t.Id == "1"); }