Пример #1
0
        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");
        }
Пример #2
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");
        }