private ItemPriceAndCurrencyResponseDTO MapManuallyFromModelToDto(ItemPriceAndCurrencyResponse model)
        {
            var dto = _mapper.Map <ItemPriceAndCurrencyResponseDTO>(model);

            if (model.Groups != null)
            {
                dto.Groups = new List <GroupsDTO>();
            }
            foreach (var group in model.Groups)
            {
                var groupDTO = _mapper.Map <GroupsDTO>(group);
                if (group.Item != null)
                {
                    groupDTO.Items = new List <ItemDTO>();
                }
                dto.Groups.Add(groupDTO);
                foreach (var item in group.Item)
                {
                    var itemDTO = _mapper.Map <ItemDTO>(item);
                    if (item.ItemDay != null)
                    {
                        itemDTO.ItemDays = new List <ItemDayDTO>();
                    }
                    groupDTO.Items.Add(itemDTO);
                    foreach (var itemDay in item.ItemDay)
                    {
                        var itemDayDTO = _mapper.Map <ItemDayDTO>(itemDay);
                        itemDTO.ItemDays.Add(itemDayDTO);
                    }
                }
            }
            return(dto);
        }
        public void MapFromContext_ExistingFromGroupsTest()
        {
            //Arrange Dependencies
            var mapperMock                   = new Mock <IMapper>();
            var serviceContextMock           = new Mock <PriceCalendarServiceContext>();
            var consumeContextMock           = new Mock <ConsumeContext <IItemEntityCreated> >();
            var loggerMock                   = new Mock <ILogger>();
            var creationOfItemEntityConsumer = new CreationOfItemEntityConsumer(serviceContextMock.Object, mapperMock.Object, loggerMock.Object);

            //Arrange Mocked object
            consumeContextMock.Setup(p => p.Message.ArticleGroup).Returns(2222);
            consumeContextMock.Setup(p => p.Message.ItemNo).Returns("ItemNo");
            consumeContextMock.Setup(p => p.Message.Name).Returns("Name");
            consumeContextMock.Setup(p => p.Message.RelationNo).Returns(3333);
            consumeContextMock.Setup(p => p.Message.Unit).Returns("Unit");
            consumeContextMock.Setup(p => p.Message.Price).Returns(1111);

            //Setup argument for existing found in db
            var existing = new ItemPriceAndCurrencyResponse
            {
                Id       = consumeContextMock.Object.Message.RelationNo ?? default(int),
                Currency = consumeContextMock.Object.Message.Unit
            };

            //Setup desired result from tested method
            var desiredGroup = new Groups
            {
                Currency   = existing,
                CurrencyId = existing.Id,
                Id         = consumeContextMock.Object.Message.ArticleGroup ?? default(int),
                Item       = new List <Item>()
            };

            var item = new Item
            {
                Group   = desiredGroup,
                GroupId = desiredGroup.Id,
                Id      = consumeContextMock.Object.Message.ItemNo,
                Name    = consumeContextMock.Object.Message.Name,
                Price   = consumeContextMock.Object.Message.Price
            };

            var resultGroup = creationOfItemEntityConsumer
                              .MapFromContext_ExistingFromGroups(consumeContextMock.Object, existing);

            Assert.AreEqual(desiredGroup.Currency, resultGroup.Currency);
            Assert.AreEqual(desiredGroup.CurrencyId, resultGroup.CurrencyId);
            Assert.AreEqual(desiredGroup.Id, resultGroup.Id);
            foreach (var gItem in resultGroup.Item)
            {
                //Assert.AreEqual(item.Group, gItem.Group); -> Assert does not work at all with complex objects (they are the same)
                Assert.AreEqual(item.GroupId, gItem.GroupId);
                Assert.AreEqual(item.Id, gItem.Id);
                Assert.AreEqual(item.Name, gItem.Name);
                Assert.AreEqual(item.Price, gItem.Price);
            }
        }
Beispiel #3
0
 public void MapFromContext(ConsumeContext <IItemEntityUpdated> from, ItemPriceAndCurrencyResponse to)
 {
     to.Currency = from.Message.Unit;
     foreach (var group in to.Groups)
     {
         if (group.Id == from.Message.ArticleGroup)
         {
             MapFromContext(from, group);
         }
     }
 }
        public ItemPriceAndCurrencyResponse MapFromContext_NonExisting(ConsumeContext <IItemEntityCreated> from)
        {
            var itemPriceAndCurrencyResponse = new ItemPriceAndCurrencyResponse
            {
                Id       = from.Message.RelationNo ?? default(int),
                Currency = from.Message.Unit
            };

            itemPriceAndCurrencyResponse.Groups = new List <Groups>();
            itemPriceAndCurrencyResponse.Groups.Add(this.MapFromContext_ExistingFromGroups(from, itemPriceAndCurrencyResponse));
            return(itemPriceAndCurrencyResponse);
        }
        public void MapFromContext_ExistingFromResponseTest()
        {
            //Arrange Dependencies
            var mapperMock                   = new Mock <IMapper>();
            var serviceContextMock           = new Mock <PriceCalendarServiceContext>();
            var consumeContextMock           = new Mock <ConsumeContext <IItemEntityCreated> >();
            var loggerMock                   = new Mock <ILogger>();
            var creationOfItemEntityConsumer = new CreationOfItemEntityConsumer(serviceContextMock.Object, mapperMock.Object, loggerMock.Object);

            //Arrange Mocked object
            consumeContextMock.Setup(p => p.Message.ArticleGroup).Returns(2222);
            consumeContextMock.Setup(p => p.Message.ItemNo).Returns("ItemNo");
            consumeContextMock.Setup(p => p.Message.Name).Returns("Name");
            consumeContextMock.Setup(p => p.Message.RelationNo).Returns(3333);
            consumeContextMock.Setup(p => p.Message.Unit).Returns("Unit");
            consumeContextMock.Setup(p => p.Message.Price).Returns(1111);
            //Arrange Model object
            var model = new ItemPriceAndCurrencyResponse();

            model.Groups = new List <Groups>();
            model.Groups.Add(new Groups
            {
                Id = consumeContextMock.Object.Message.ArticleGroup ?? default(int)
            });

            var desiredResult = new Item
            {
                Id    = consumeContextMock.Object.Message.ItemNo,
                Name  = consumeContextMock.Object.Message.Name,
                Price = consumeContextMock.Object.Message.Price
            };

            foreach (var group in model.Groups)
            {
                if (group.Id == 2222)
                {
                    desiredResult.GroupId = group.Id;
                    desiredResult.Group   = group;
                }
            }

            //Act
            var itemResult = creationOfItemEntityConsumer.
                             MapFromContext_ExistingFromResponse(consumeContextMock.Object, model);

            //Assert
            Assert.AreEqual(itemResult.Group, desiredResult.Group);
            Assert.AreEqual(itemResult.GroupId, desiredResult.GroupId);
            Assert.AreEqual(itemResult.Group, desiredResult.Group);
            Assert.AreEqual(itemResult.Group, desiredResult.Group);
            Assert.AreEqual(itemResult.Group, desiredResult.Group);
            Assert.AreEqual(itemResult.Group, desiredResult.Group);
        }
Beispiel #6
0
        public void SetUp()
        {
            context = new Mock <ConsumeContext <IItemEntityUpdated> >();

            _logger = new Mock <ILogger>();

            context.Setup(p => p.Message.Unit).Returns("Unit");
            context.Setup(p => p.Message.ArticleGroup).Returns(222);
            context.Setup(p => p.Message.Name).Returns("Name");
            context.Setup(p => p.Message.Price).Returns(111);
            context.Setup(p => p.Message.ItemNo).Returns("ItemNo");

            this.DesiredModel = new ItemPriceAndCurrencyResponse {
                Currency = "Unit"
            };
            DesiredGroup = new Groups
            {
                Id = context.Object.Message.ArticleGroup ?? default
            };

            DesiredModel.Groups = new List <Groups>();
            DesiredModel.Groups.Add(DesiredGroup);

            DesiredGroup.Item = new List <Item>();
            DesiredItem       = new Item
            {
                Id    = context.Object.Message.ItemNo,
                Name  = context.Object.Message.Name,
                Price = context.Object.Message.Price
            };

            this.mapperMock         = new Mock <IMapper>().Object;
            this.serviceContextMock = new Mock <PriceCalendarServiceContext>().Object;

            this.ArgumentModel = new ItemPriceAndCurrencyResponse();
            this.ArgumentGroup = new Groups();
            ArgumentGroup.Id   = context.Object.Message.ArticleGroup ?? default;
            this.ArgumentItem  = new Item();
            ArgumentItem.Id    = context.Object.Message.ItemNo;

            ArgumentModel.Groups = new List <Groups>();
            ArgumentModel.Groups.Add(ArgumentGroup);
            ArgumentGroup.Item = new List <Item>();
            ArgumentGroup.Item.Add(ArgumentItem);
        }
        public Item MapFromContext_ExistingFromResponse(ConsumeContext <IItemEntityCreated> from, ItemPriceAndCurrencyResponse existing)
        {
            var item = new Item();

            item.Id      = from.Message.ItemNo;
            item.Name    = from.Message.Name;
            item.Price   = from.Message.Price;
            item.GroupId = from.Message.ArticleGroup;
            foreach (var group in existing.Groups)
            {
                if (group.Id == item.GroupId)
                {
                    item.Group = group;
                }
            }
            return(item);
        }
        public Groups MapFromContext_ExistingFromGroups(ConsumeContext <IItemEntityCreated> from, ItemPriceAndCurrencyResponse existing)
        {
            var group = new Groups
            {
                Id          = from.Message.ArticleGroup ?? default(int),
                Currency    = existing,
                CurrencyId  = existing.Id,
                Item        = new List <Item>(),
                Description = from.Message.PriceModel
            };

            var item = new Item
            {
                Group   = group,
                GroupId = group.Id,
                Id      = from.Message.ItemNo,
                Name    = from.Message.Name,
                Price   = from.Message.Price
            };

            group.Item.Add(item);
            return(group);
        }