Example #1
0
        public void GetDataByProjectIdPageableTest()
        {
            PagedResult <Project_Connection> expectedResult;

            _repository
            .Setup(it => it.GetDataByProjectIdPageable(It.IsAny <Int32>(), It.IsAny <String>(), It.IsAny <Int32>(), It.IsAny <Int32>()))
            .Returns <Int32, String, Int32, Int32>((projectId, sortExpression, page, pageSize) =>
            {
                var query = _repositoryList.Where(x => x.ProjectId == projectId);
                switch (sortExpression)
                {
                case  "ProjectId":
                    query = new List <Project_Connection>(query.OrderBy(q => q.ProjectId));
                    break;

                case  "ConnectionId":
                    query = new List <Project_Connection>(query.OrderBy(q => q.ConnectionId));
                    break;
                }
                return(query.Take(pageSize).Skip((page - 1) * pageSize).ToList());
            });

            _repository
            .Setup(it => it.GetDataByProjectIdRowCount(projectId))
            .Returns(_repositoryList.Count);

            var result = _target.GetDataByProjectIdPageable(ProjectIdValue, "ProjectId", 1, 2);

            Assert.IsTrue(result.TryGetContentValue(out expectedResult));
            Assert.AreEqual(_repositoryList.Where(x => x.ProjectId == projectId).Take(2).ToList().Count, expectedResult.Results.Count);
            Assert.AreEqual(_repositoryList.Where(x => x.ProjectId == projectId).OrderBy(q => q.ProjectId).FirstOrDefault().ProjectId, expectedResult.Results.FirstOrDefault().ProjectId);
        }