Пример #1
0
        public void Add_Items_ComputeTotalPrice(float[] prices, int[] quantities, float expected)
        {
            // arrange
            var userBag     = new UserBag();
            var baggedItems = prices.Select((price, i) => CreateBaggedItem(i, price, quantities[i]));

            userBag.AddItems(baggedItems);

            // act
            var totalPrice = userBag.ComputeTotalPrice();

            // assert
            Assert.AreEqual(totalPrice, expected);
        }
Пример #2
0
        public OutputDtoQueryUserBaggedItem GetByUserId(int userId)
        {
            var baggedItems = _baggedItemRepository.GetByUserId(userId);
            var userBag     = new UserBag();

            userBag.AddItems(baggedItems);

            var bagOwner = _userRepository.GetById(userId);

            var dtoBaggedItems = userBag.Items
                                 .Select(baggedItem => new OutputDtoQueryUserBaggedItem.BaggedItem
            {
                Id       = baggedItem.Id,
                AddedAt  = baggedItem.AddedAt,
                Quantity = baggedItem.Quantity,
                Size     = baggedItem.Size,

                BagItem = new OutputDtoQueryUserBaggedItem.BaggedItem.Item
                {
                    Id              = baggedItem.AddedItem.Id,
                    Label           = baggedItem.AddedItem.Label,
                    Price           = baggedItem.AddedItem.Price * baggedItem.Quantity,
                    ImageItem       = baggedItem.AddedItem.ImageItem,
                    DescriptionItem = baggedItem.AddedItem.DescriptionItem
                }
            });

            return(new OutputDtoQueryUserBaggedItem
            {
                BagOwner = new OutputDtoQueryUserBaggedItem.User
                {
                    Id = bagOwner.Id,
                    Firstname = bagOwner.Firstname,
                    Lastname = bagOwner.Lastname
                },
                TotalPrice = userBag.ComputeTotalPrice(),
                Items = dtoBaggedItems
            });
        }
        // Helper static methods (DTO instances)
        public static OutputDtoQueryUserBaggedItem CreateOutputDtoQueryUserBaggedItem(int i, int listSize)
        {
            var userBag = new UserBag();

            userBag.AddItems(CreateListOfBaggedItems(listSize));
            var dtoBaggedItems = userBag.Items
                                 .Select(baggedItem => new OutputDtoQueryUserBaggedItem.BaggedItem
            {
                Id       = baggedItem.Id,
                AddedAt  = baggedItem.AddedAt,
                Quantity = baggedItem.Quantity,
                Size     = baggedItem.Size,

                BagItem = new OutputDtoQueryUserBaggedItem.BaggedItem.Item
                {
                    Id              = baggedItem.AddedItem.Id,
                    Label           = baggedItem.AddedItem.Label,
                    Price           = baggedItem.AddedItem.Price * baggedItem.Quantity,
                    ImageItem       = baggedItem.AddedItem.ImageItem,
                    DescriptionItem = baggedItem.AddedItem.DescriptionItem
                }
            });

            var bagOwner = CreateUser(1);

            return(new OutputDtoQueryUserBaggedItem
            {
                BagOwner = new OutputDtoQueryUserBaggedItem.User
                {
                    Id = bagOwner.Id,
                    Firstname = bagOwner.Firstname,
                    Lastname = bagOwner.Lastname
                },
                TotalPrice = userBag.ComputeTotalPrice(),
                Items = dtoBaggedItems
            });
        }