public void GetFilteredElements_SpecificKOrder_Test()
        {
            //Arrange
            IQueryableUnitOfWork        unitOfWork   = new UnitOfWorkStub();
            ITraceManager               traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();
            ExtendedRepository <Entity> target       = new ExtendedRepository <Entity>(unitOfWork, traceManager);

            //Act
            target.GetFilteredElements <SubEntity>(e => e.Id == 1);
        }
        public void GetFilteredElements_SpecificKOrderFullSignature_NullFilterThrowArgumentNullException_Test()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

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

            //Act
            target.GetFilteredElements <int>(null, 1, 1, t => t.Id, true);
        }
        public void GetFilteredElements_SpecificKFilterAndSOrder_ORderNullThrowArgumentNullException_Test()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

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

            //Act
            target.GetFilteredElements <SubEntity, int>(t => t.Id == 3, null, false);
        }
        public void GetFilteredElements_FilterNullThrowArgumentNullException_Test()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

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

            //Act
            target.GetFilteredElements(null);
        }
        public void GetFilteredAndOrderedAndPagedElements_InvalidPageCountThrowArgumentException_Test()
        {
            //Arrange
            IQueryableUnitOfWork unitOfWork   = new UnitOfWorkStub();
            ITraceManager        traceManager = IoCFactory.Instance.CurrentContainer.Resolve <ITraceManager>();

            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(unitOfWork, traceManager);
            int pageIndex = 0;
            int pageCount = 0;

            //Act
            IEnumerable <Entity> result = target.GetFilteredElements <int>(e => e.Id == 1, pageIndex, pageCount, null, false);
        }
        public void GetFilteredAndOrderedElements_InvalidOrderByExpressionThrowArgumentNullException_Test()
        {
            //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.GetFilteredElements <int>(e => e.Id == 1, null, false);

            //Assert
            Assert.IsTrue(result != null);
            Assert.IsTrue(result.Count() == 1);
        }
        public void GetFilteredElementsTest()
        {
            //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.GetFilteredElements(e => e.Id == 1);

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

            ExtendedRepository <Entity> target = new ExtendedRepository <Entity>(unitOfWork, traceManager);
            int pageIndex = 0;
            int pageCount = 1;

            //Act
            IEnumerable <Entity> result = target.GetFilteredElements <int>(e => e.Id == 1, pageIndex, pageCount, e => e.Id, true);

            //Assert
            Assert.IsTrue(result != null);
            Assert.IsTrue(result.Count() == 1);
        }
        public void Attach_Test()
        {
            //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 = 5, Field = "test"
            };

            //Act
            target.RegisterItem(entity);

            //Assert
            Assert.IsTrue(target.GetFilteredElements(t => t.Id == 5).Count() == 1);
        }