public async void BasketItemIsAddedWhenOtherProductIsAddedToBasket() { string userId = Guid.NewGuid().ToString(); BasketModelResponse response = await client.BasketService.GetBasketForUser(userId); BasketAddItemResponse resp = await client.BasketService.AddBasketItem(response.BasketId, new BasketAddItemRequest() { Price = 10.50M, ProductId = 1, Quantity = 2 }); resp = await client.BasketService.AddBasketItem(response.BasketId, new BasketAddItemRequest() { Price = 20.00M, ProductId = 3, Quantity = 1 }); resp.Should().NotBeNull(); resp.Success.Should().Be(true); response = await client.BasketService.GetBasketForUser(userId); List <BasketModelItem> items = response.Items.ToList(); items.Count.Should().Be(2); }
public async void BasketIsCreatedAndRetrievedForUser() { string userId = Guid.NewGuid().ToString(); BasketModelResponse response = await client.BasketService.GetBasketForUser(userId); response.Should().NotBeNull(); response.BasketId.Should().BeGreaterThan(0); }
public async Task <BasketIndexViewModel> GetOrCreateBasketForUser(string userId) { _logger.LogInformation("GetOrCreateBasketForUser called."); BasketApiClient client = new BasketApiClient(_config.APIBaseUrl); BasketModelResponse basket = await client.BasketService.GetBasketForUser(userId); return(GetViewModelFromBasket(basket)); }
public async Task <BasketModelResponse> GetForUser(string userid) { Basket b = await _basketService.GetOrCreateBasketForUser(userid); //query the product items to add extra product details to the response int[] productIds = b.Items.Select(item => item.ProductItemId).ToArray(); IEnumerable <ProductItem> productItems = await _productsService.ListAsync(p => productIds.Contains(p.Id)); b.UserId = userid; BasketModelResponse response = b.ToBasketModelResponse(productItems); return(response); }
private BasketIndexViewModel GetViewModelFromBasket(BasketModelResponse basket) { BasketIndexViewModel model = new BasketIndexViewModel(); model.Id = basket.BasketId; model.UserId = basket.UserId; model.BasketItems = basket.Items.Select(i => { BasketItemViewModel itemModel = new BasketItemViewModel() { UnitPrice = i.Price, Quantity = i.Quantity, ProductItemId = i.ProductId, ProductName = i.ProductName }; return(itemModel); }).ToList(); return(model); }
public async void BasketItemIsUpdated() { string userId = Guid.NewGuid().ToString(); BasketModelResponse response = await client.BasketService.GetBasketForUser(userId); BasketAddItemResponse respAdd = await client.BasketService.AddBasketItem(response.BasketId, new BasketAddItemRequest() { Price = 10.50M, ProductId = 1, Quantity = 2 }); respAdd.Should().NotBeNull(); respAdd.Success.Should().Be(true); List <BasketUpdateItem> updateItems = new List <BasketUpdateItem>(); updateItems.Add(new BasketUpdateItem() { ProductId = 1, Quantity = 1 }); BasketUpdateResponse respUpd = await client.BasketService.UpdateBasketItem( response.BasketId, new BasketUpdateItemsRequest() { Items = updateItems }); respUpd.Should().NotBeNull(); respUpd.Success.Should().Be(true); response = await client.BasketService.GetBasketForUser(userId); List <BasketModelItem> items = response.Items.ToList(); items.Count.Should().Be(1); items.First().Quantity.Should().Be(1); }