public void Exist()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var agent     = Guid.NewGuid();
            var entity    = Guid.NewGuid();
            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));

            repository.AddEntity(agent, entity, EntityType.Driver);

            var result = repository.Exist(agent, entity, EntityType.Agent);

            Assert.AreEqual(false, result);

            result = repository.Exist(agent, entity, EntityType.Driver);
            Assert.AreEqual(true, result);

            repository.DeleteEntity(agent, entity, EntityType.Driver);

            result = repository.Exist(agent, entity, EntityType.Driver);
            Assert.AreEqual(false, result);
        }
Beispiel #2
0
        public void AddOrUpdateAgent_Add()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkAgentRepository(logger, entityRepository, rightRepository, mockContext.Object);
            var agent            = Guid.NewGuid();
            var agent1           = Guid.NewGuid();
            var mockSet1         = new Mock <DbSet <Right> >();
            var data1            = new List <Right>
            {
                new Right
                {
                    AgentGuid      = agent,
                    EntityType     = EntityType.Agent,
                    OperationTypes = new[] { OperationType.AddOrUpdate }
                },
            };
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);
            var mockSet   = new Mock <DbSet <Agent> >();
            var data      = new List <Agent>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <Agent> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <Agent> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <Agent> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <Agent> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <Agent>())).Callback <Agent>(s => data.Add(s));
            mockSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => data.FirstOrDefault(d => d.Id == (int)ids[0]));
            mockContext.Setup(m => m.Agents).Returns(mockSet.Object);
            var mockSet2   = new Mock <DbSet <EntityGuids> >();
            var data2      = new List <EntityGuids>();
            var queryable2 = data2.AsQueryable();

            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable2.Provider);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable2.Expression);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable2.ElementType);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable2.GetEnumerator());
            mockSet2.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data2.Add(s));
            mockContext.Setup(m => m.EntityGuids).Returns(mockSet2.Object);

            var addOrUpdateAgent = repository.AddOrUpdateAgent(agent, new Agent
            {
                Id   = 0,
                Name = "1",
            });

            var agents = entityRepository.GetEntitys(agent, EntityType.Agent);

            Assert.AreEqual(1, agents.Count);
            Assert.AreEqual(addOrUpdateAgent.Guid, agents[0]);
        }
        public void UpdateRights_NotRight()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository entityFrameworkEntityRepository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var agent     = Guid.NewGuid();
            var agent1    = Guid.NewGuid();
            var agent2    = Guid.NewGuid();
            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));
            entityFrameworkEntityRepository.AddEntity(agent, agent1, EntityType.Agent);
            entityFrameworkEntityRepository.AddEntity(agent1, agent2, EntityType.Agent);
            var mockSet1   = new Mock <DbSet <Right> >();
            var data1      = new List <Right>();
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);
            var repository = new EntityFrameworkRightRepository(new NLogLoggerService(), mockContext.Object, entityFrameworkEntityRepository);

            repository.UpdateRights(agent1, agent2, EntityType.Agent, new OperationType[0]);
        }
Beispiel #4
0
        public void AddOrUpdateCart_CannotAccesToAdd()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);

            var repository = new EntityFrameworkCarRepository(logger, entityRepository, rightRepository, mockContext.Object);
            var agent      = Guid.NewGuid();
            var mockSet1   = new Mock <DbSet <Right> >();
            var data1      = new List <Right>
            {
                new Right
                {
                    AgentGuid      = agent,
                    EntityType     = EntityType.Car,
                    OperationTypes = new[] { OperationType.Select }
                },
            };
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);
            repository.AddOrUpdateCar(agent, new Car
            {
                Id     = 1,
                Number = "1"
            });
        }
Beispiel #5
0
        public void DeleteCar_IdNotValid()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkCarRepository(logger, entityRepository, rightRepository, mockContext.Object);

            repository.DeleteCar(Guid.NewGuid(), new Car());
        }
Beispiel #6
0
        public void DeleteAgent_AgentNull()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkAgentRepository(logger, entityRepository, rightRepository, mockContext.Object);

            repository.DeleteAgent(Guid.NewGuid(), null);
        }
Beispiel #7
0
        public void DeleteAgent_GuidAgentEmpty()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkAgentRepository(logger, entityRepository, rightRepository, mockContext.Object);

            repository.DeleteAgent(Guid.Empty, new Agent());
        }
Beispiel #8
0
        public void GetCarsByGuids_GuidsNull()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkCarRepository(logger, entityRepository, rightRepository, mockContext.Object);

            repository.GetCarsByGuids(Guid.NewGuid(), null);
        }
        public void AddEntity_EntityGuidEmpty()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);

            repository.AddEntity(Guid.NewGuid(), Guid.Empty, EntityType.Car);
        }
Beispiel #10
0
        public void GetAgentsByGuids_GuidsEmpty()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkAgentRepository(logger, entityRepository, rightRepository, mockContext.Object);

            repository.GetAgentsByGuids(Guid.NewGuid(), new List <Guid>());
        }
        public void GetRights_AgentEmpty()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository entityFrameworkEntityRepository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var repository = new EntityFrameworkRightRepository(new NLogLoggerService(), mockContext.Object, entityFrameworkEntityRepository);

            repository.GetRights(Guid.Empty, EntityType.Agent);
        }
Beispiel #12
0
        public void AddOrUpdateCar_UpdateWithEmptyGuid()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkCarRepository(logger, entityRepository, rightRepository, mockContext.Object);
            var agent            = Guid.NewGuid();
            var mockSet1         = new Mock <DbSet <Right> >();
            var data1            = new List <Right>
            {
                new Right
                {
                    AgentGuid      = agent,
                    EntityType     = EntityType.Car,
                    OperationTypes = new[] { OperationType.AddOrUpdate }
                },
            };
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);
            var mockSet = new Mock <DbSet <Car> >();
            var data    = new List <Car>
            {
                new Car
                {
                    Id     = 1,
                    Number = "1"
                },
            };
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <Car> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <Car> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <Car> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <Car> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <Car>())).Callback <Car>(s => data.Add(s));
            mockSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => data.FirstOrDefault(d => d.Id == (int)ids[0]));
            mockContext.Setup(m => m.Cars).Returns(mockSet.Object);
            repository.AddOrUpdateCar(agent, new Car
            {
                Id     = 1,
                Number = "1",
            });
        }
        public void AddEntity()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));

            repository.AddEntity(Guid.NewGuid(), Guid.NewGuid(), EntityType.Car);
            mockSet.Verify(m => m.Add(It.IsAny <EntityGuids>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
        public void DeleteEntity_EntityNotFound()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);

            var data = new List <EntityGuids>
            {
                new EntityGuids {
                    AgentGuid = Guid.NewGuid(), EntityGuid = Guid.NewGuid(), EntityType = EntityType.Car
                },
            }.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
            repository.DeleteEntity(Guid.NewGuid(), Guid.NewGuid(), EntityType.Car);
        }
        public void GetRights()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository entityFrameworkEntityRepository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var agent     = Guid.NewGuid();
            var agent1    = Guid.NewGuid();
            var agent2    = Guid.NewGuid();
            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));
            entityFrameworkEntityRepository.AddEntity(agent, agent1, EntityType.Agent);
            entityFrameworkEntityRepository.AddEntity(agent1, agent2, EntityType.Agent);
            var mockSet1 = new Mock <DbSet <Right> >();
            var data1    = new List <Right>
            {
                new Right
                {
                    AgentGuid      = agent1,
                    EntityType     = EntityType.Agent,
                    OperationTypes = new[] { OperationType.Admin }
                },
                new Right
                {
                    AgentGuid      = agent,
                    EntityType     = EntityType.Agent,
                    OperationTypes = new[] { OperationType.Admin }
                }
            };
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);
            var repository = new EntityFrameworkRightRepository(new NLogLoggerService(), mockContext.Object, entityFrameworkEntityRepository);

            repository.UpdateRights(agent1, agent2, EntityType.Agent, new[] { OperationType.Select });
            repository.UpdateRights(agent1, agent2, EntityType.Driver, new[] { OperationType.Select });
            repository.UpdateRights(agent1, agent2, EntityType.Car, new[] { OperationType.Select });

            var rights = repository.GetRights(agent2, EntityType.Agent);

            Assert.AreEqual(1, rights.Length);
            Assert.AreEqual(OperationType.Select, rights[0]);

            rights = repository.GetRights(agent2, EntityType.Driver);
            Assert.AreEqual(1, rights.Length);
            Assert.AreEqual(OperationType.Select, rights[0]);

            rights = repository.GetRights(agent2, EntityType.Car);
            Assert.AreEqual(1, rights.Length);
            Assert.AreEqual(OperationType.Select, rights[0]);

            repository.UpdateRights(agent1, agent2, EntityType.Car, new[] { OperationType.Delete, OperationType.AddOrUpdate });

            rights = repository.GetRights(agent2, EntityType.Car);
            Assert.AreEqual(2, rights.Length);
            Assert.AreEqual(OperationType.Delete, rights[0]);
            Assert.AreEqual(OperationType.AddOrUpdate, rights[1]);

            repository.UpdateRights(agent, agent1, EntityType.Agent, new[] { OperationType.Select });

            try
            {
                repository.UpdateRights(agent1, agent2, EntityType.Car, new[] { OperationType.Delete, OperationType.AddOrUpdate });
                Assert.Fail();
            }
            catch (InvalidDataException)
            {
            }
        }
        public void GetEntitys_Hierarchy()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var agent     = Guid.NewGuid();
            var entity    = Guid.NewGuid();
            var agent1    = Guid.NewGuid();
            var entity1   = Guid.NewGuid();
            var entity2   = Guid.NewGuid();
            var entity3   = Guid.NewGuid();
            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));

            repository.AddEntity(agent, entity, EntityType.Driver);
            repository.AddEntity(agent, agent1, EntityType.Agent);
            repository.AddEntity(agent1, entity1, EntityType.Driver);
            repository.AddEntity(agent1, entity2, EntityType.Car);
            repository.AddEntity(agent1, entity3, EntityType.Car);

            var agents = repository.GetEntitys(agent, EntityType.Agent);

            Assert.AreEqual(1, agents.Count);
            Assert.AreEqual(agent1, agents[0]);

            var drivers = repository.GetEntitys(agent, EntityType.Driver);

            Assert.AreEqual(2, drivers.Count);
            Assert.AreEqual(entity, drivers[1]);
            Assert.AreEqual(entity1, drivers[0]);

            drivers = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(1, drivers.Count);
            Assert.AreEqual(entity1, drivers[0]);

            var cars = repository.GetEntitys(agent1, EntityType.Car);

            Assert.AreEqual(2, cars.Count);
            Assert.AreEqual(entity2, cars[0]);
            Assert.AreEqual(entity3, cars[1]);

            cars = repository.GetEntitys(agent, EntityType.Car);
            Assert.AreEqual(2, cars.Count);
            Assert.AreEqual(entity2, cars[0]);
            Assert.AreEqual(entity3, cars[1]);

            repository.DeleteEntity(agent, entity3, EntityType.Car);

            cars = repository.GetEntitys(agent1, EntityType.Car);
            Assert.AreEqual(1, cars.Count);
            Assert.AreEqual(entity2, cars[0]);

            cars = repository.GetEntitys(agent, EntityType.Car);
            Assert.AreEqual(1, cars.Count);
            Assert.AreEqual(entity2, cars[0]);

            repository.DeleteEntity(agent1, entity1, EntityType.Driver);

            drivers = repository.GetEntitys(agent, EntityType.Driver);
            Assert.AreEqual(1, drivers.Count);
            Assert.AreEqual(entity, drivers[0]);

            drivers = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(0, drivers.Count);

            repository.DeleteEntity(agent1, entity2, EntityType.Car);

            cars = repository.GetEntitys(agent1, EntityType.Car);
            Assert.AreEqual(0, cars.Count);

            cars = repository.GetEntitys(agent, EntityType.Car);
            Assert.AreEqual(0, cars.Count);

            repository.DeleteEntity(agent, entity, EntityType.Driver);

            drivers = repository.GetEntitys(agent, EntityType.Driver);
            Assert.AreEqual(0, drivers.Count);

            drivers = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(0, drivers.Count);

            repository.DeleteEntity(agent, agent1, EntityType.Agent);

            agents = repository.GetEntitys(agent, EntityType.Agent);
            Assert.AreEqual(0, agents.Count);
        }
Beispiel #17
0
        public void GetCarsByGuids()
        {
            var mockContext      = new Mock <ApplicationContext>();
            var logger           = new NLogLoggerService();
            var entityRepository = new EntityFrameworkEntityRepository(logger, mockContext.Object);
            var rightRepository  = new EntityFrameworkRightRepository(logger, mockContext.Object, entityRepository);
            var repository       = new EntityFrameworkCarRepository(logger, entityRepository, rightRepository, mockContext.Object);
            var agent            = Guid.NewGuid();
            var mockSet1         = new Mock <DbSet <Right> >();
            var data1            = new List <Right>
            {
                new Right
                {
                    AgentGuid      = agent,
                    EntityType     = EntityType.Car,
                    OperationTypes = new[] { OperationType.AddOrUpdate, OperationType.Select, OperationType.Delete }
                },
            };
            var queryable1 = data1.AsQueryable();

            mockSet1.As <IQueryable <Right> >().Setup(m => m.Provider).Returns(queryable1.Provider);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.Expression).Returns(queryable1.Expression);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.ElementType).Returns(queryable1.ElementType);
            mockSet1.As <IQueryable <Right> >().Setup(m => m.GetEnumerator()).Returns(queryable1.GetEnumerator());
            mockSet1.Setup(d => d.Add(It.IsAny <Right>())).Callback <Right>(s => data1.Add(s));
            mockContext.Setup(m => m.Rights).Returns(mockSet1.Object);

            var mockSet   = new Mock <DbSet <Car> >();
            var data      = new List <Car>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <Car> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <Car> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <Car> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <Car> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <Car>())).Callback <Car>(s =>
            {
                s.Id++;
                data.Add(s);
            });
            mockSet.Setup(m => m.Find(It.IsAny <object[]>())).Returns <object[]>(ids => data.FirstOrDefault(d => d.Id == (int)ids[0]));
            mockContext.Setup(m => m.Cars).Returns(mockSet.Object);
            var mockSet2   = new Mock <DbSet <EntityGuids> >();
            var data2      = new List <EntityGuids>();
            var queryable2 = data2.AsQueryable();

            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable2.Provider);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable2.Expression);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable2.ElementType);
            mockSet2.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable2.GetEnumerator());
            mockSet2.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data2.Add(s));
            mockContext.Setup(m => m.EntityGuids).Returns(mockSet2.Object);

            var addOrUpdateCar = repository.AddOrUpdateCar(agent, new Car
            {
                Id     = 0,
                Number = "1",
            });

            var cars = entityRepository.GetEntitys(agent, EntityType.Car);

            Assert.AreEqual(1, cars.Count);
            Assert.AreEqual(addOrUpdateCar.Guid, cars[0]);

            var carsByGuids = repository.GetCarsByGuids(agent, new List <Guid> {
                addOrUpdateCar.Guid
            });

            Assert.AreEqual(1, carsByGuids.Count);
            Assert.AreEqual("1", carsByGuids[0].Number);
            Assert.AreEqual(addOrUpdateCar.Id, carsByGuids[0].Id);
            Assert.AreEqual(addOrUpdateCar.Guid, carsByGuids[0].Guid);
            addOrUpdateCar.Number = "22";
            repository.AddOrUpdateCar(agent, addOrUpdateCar);

            carsByGuids = repository.GetCarsByGuids(agent, new List <Guid> {
                addOrUpdateCar.Guid
            });
            Assert.AreEqual(1, carsByGuids.Count);
            Assert.AreEqual("22", carsByGuids[0].Number);
            Assert.AreEqual(addOrUpdateCar.Id, carsByGuids[0].Id);
            Assert.AreEqual(addOrUpdateCar.Guid, carsByGuids[0].Guid);

            repository.DeleteCar(agent, addOrUpdateCar);
            cars = entityRepository.GetEntitys(agent, EntityType.Car);
            Assert.AreEqual(0, cars.Count);
        }
        public void GetEntitys_Simple()
        {
            var mockSet     = new Mock <DbSet <EntityGuids> >();
            var mockContext = new Mock <ApplicationContext>();

            mockContext.Setup(m => m.EntityGuids).Returns(mockSet.Object);
            IEntityRepository repository = new EntityFrameworkEntityRepository(new NLogLoggerService(), mockContext.Object);
            var agent   = Guid.NewGuid();
            var entity  = Guid.NewGuid();
            var agent1  = Guid.NewGuid();
            var entity1 = Guid.NewGuid();
            var entity2 = Guid.NewGuid();
            var entity3 = Guid.NewGuid();

            var data      = new List <EntityGuids>();
            var queryable = data.AsQueryable();

            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Provider).Returns(queryable.Provider);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.Expression).Returns(queryable.Expression);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.ElementType).Returns(queryable.ElementType);
            mockSet.As <IQueryable <EntityGuids> >().Setup(m => m.GetEnumerator()).Returns(queryable.GetEnumerator());
            mockSet.Setup(d => d.Add(It.IsAny <EntityGuids>())).Callback <EntityGuids>(s => data.Add(s));

            repository.AddEntity(agent, entity, EntityType.Car);
            repository.AddEntity(agent1, entity1, EntityType.Car);

            var guids = repository.GetEntitys(agent, EntityType.Car);

            Assert.AreEqual(1, guids.Count);
            Assert.AreEqual(entity, guids[0]);
            guids = repository.GetEntitys(agent1, EntityType.Car);
            Assert.AreEqual(1, guids.Count);
            Assert.AreEqual(entity1, guids[0]);

            repository.DeleteEntity(agent, entity, EntityType.Car);
            guids = repository.GetEntitys(agent, EntityType.Car);
            Assert.AreEqual(0, guids.Count);
            guids = repository.GetEntitys(agent1, EntityType.Car);
            Assert.AreEqual(1, guids.Count);
            Assert.AreEqual(entity1, guids[0]);
            repository.AddEntity(agent1, entity3, EntityType.Driver);
            repository.AddEntity(agent1, entity2, EntityType.Driver);
            guids = repository.GetEntitys(agent1, EntityType.Car);
            Assert.AreEqual(1, guids.Count);
            guids = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(2, guids.Count);
            Assert.AreEqual(entity3, guids[0]);
            Assert.AreEqual(entity2, guids[1]);
            try
            {
                repository.DeleteEntity(agent1, entity3, EntityType.Car);
                Assert.Fail();
            }
            catch (InvalidDataException)
            {
            }
            repository.DeleteEntity(agent1, entity3, EntityType.Driver);
            guids = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(1, guids.Count);
            Assert.AreEqual(entity2, guids[0]);
            repository.DeleteEntity(agent1, entity2, EntityType.Driver);
            guids = repository.GetEntitys(agent1, EntityType.Driver);
            Assert.AreEqual(0, guids.Count);
        }