public static IApoGroupService GetApoGroupService() { var apoGroup = DataInitializer.GetApoGroup(); var repository = new Mock <IApoGroupService>(); repository.Setup(x => x.GetApoGroupByApoDivision(It.IsAny <int>())) .Returns(new Func <int, IEnumerable <IApoGroupDataTranferObject> >(id => { var list = apoGroup.Where(x => x.DivisionId == id); return(Mapper.Map <List <ApoGroupDto> >(list)); })); return(repository.Object); }
public static IApoGroupRepository GetApoGroupRepository() { var apoGroup = DataInitializer.GetApoGroup(); var repository = new Mock <IApoGroupRepository>(); repository.Setup(x => x.GetAll(It.IsAny <IApoGroupResourceParameter>())) .Returns(new Func <IApoGroupResourceParameter, IQueryable <IApoGroupDomain> >(apoGroupResourceParameter => { return(apoGroup.Where(x => (!apoGroupResourceParameter.ApoDivsionId.HasValue || apoGroupResourceParameter.ApoDivsionId.Value == x.DivisionId) && (string.IsNullOrWhiteSpace(apoGroupResourceParameter.SearchText) || x.Name.ToLowerInvariant() .Contains( apoGroupResourceParameter.SearchText.ToLowerInvariant()) || x.Code.ToLowerInvariant() .Contains( apoGroupResourceParameter.SearchText.ToLowerInvariant()))) .AsQueryable()); })); repository.Setup(x => x.FindByKey(It.IsAny <int>())) .Returns(new Func <int, IApoGroupDomain>(id => { return(apoGroup.SingleOrDefault(x => x.Id == id)); })); repository.Setup(x => x.Insert(It.IsAny <IApoGroupDomain>())) .Returns(new Func <IApoGroupDomain, IApoGroupDomain>(apoAddOrEdit => { dynamic maxId = apoGroup.Last().Id; var nextId = Convert.ToInt32(maxId) + 1; var nextCode = (Convert.ToInt32(apoGroup.Last().Code) + 1).ToString("D2"); apoAddOrEdit.Id = (int)nextId; apoAddOrEdit.Code = nextCode; apoGroup.Add(apoAddOrEdit as ApoGroupDomain); return(apoAddOrEdit); })); repository.Setup(x => x.GetByName(It.IsAny <IApoGroupForCreateOrEdit>())) .Returns(new Func <IApoGroupForCreateOrEdit, ApoGroupDomain>(apoAddOrEdit => { return(apoGroup.FirstOrDefault(x => x.Name.ToLowerInvariant() .Equals(apoAddOrEdit.Name.Trim().ToLowerInvariant()))); })); repository.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <IApoGroupDomain>())) .Returns(new Func <int, IApoGroupDomain, IApoGroupDomain>((id, apoDivisionDomain) => { var apoDiv = apoGroup.SingleOrDefault(x => x.Id == id); if (apoDiv != null) { apoDiv.Name = apoDivisionDomain.Name; return(apoDiv); } return(null); })); repository.Setup(x => x.Delete(It.IsAny <int>())) .Returns(new Func <int, bool>(id => { try { return(apoGroup.Single(x => x.Id == id) != null); } catch (Exception e) { return(false); } })); repository.Setup(x => x.GetByApoDivision(It.IsAny <int>())) .Returns(new Func <int, IQueryable <IApoGroupDomain> >(id => { return(apoGroup.Where(x => x.DivisionId == id).AsQueryable()); })); repository.Setup(x => x.All()) .Returns(() => apoGroup.ToList()); return(repository.Object); }