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); }
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 }); }