コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }