public void DeleteTest()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(unitOfWork, traceManager);

            //Act
            IEnumerable <Entity> result = target.GetAll();

            Entity firstEntity = result.First();

            target.Remove(firstEntity);

            IEnumerable <Entity> postResult = target.GetAll();

            //Assert
            Assert.IsNotNull(postResult);
            Assert.IsFalse(postResult.Contains(firstEntity));
        }
        public void ApplyChanges_Test()
        {
            //Arrange
            IQueryableUnitOfWork actual       = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

            //Act
            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(actual, traceManager);
            Entity item = target.GetAll().First();

            //Assert
            target.Modify(item);
        }
        public void GetAll_ForSubtypes_Test()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(unitOfWork, traceManager);

            //Act
            IEnumerable <SubEntity> result = target.GetAll <SubEntity>();

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count() == 1);
        }
        public void AddTest()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(unitOfWork, traceManager);
            Entity entity = new Entity()
            {
                Id    = 4,
                Field = "field 4"
            };


            //Act
            target.Add(entity);
            IEnumerable <Entity> result = target.GetAll();

            //Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Count() == 4);
            Assert.IsTrue(result.Contains(entity));
        }