public async Task Return_ShoppingCartItem_When_Correct_Carameters_Are_Passed()
        {
            var userId           = "a";
            var mockShoppingCart = ShoppingCardMock
                                   .GetMockShoppingCart(userId)
                                   .ShoppingCartItems.ToList()
                                   .FirstOrDefault();

            var userShoppingCartItem = new UserShoppingCartItem()
            {
                ShoppingCartItem = mockShoppingCart,
                UserId           = userId
            };

            var requestProviderMock = new Mock <IRequestProvider>();

            requestProviderMock
            .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>()))
            .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem));

            var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object);

            var shoppingCartOrderResult = await shoppingCartDataService.AddShoppingCartItem(mockShoppingCart, userId);

            Assert.NotNull(shoppingCartOrderResult);
            Assert.AreEqual(shoppingCartOrderResult.UserId, userId);
            Assert.NotNull(shoppingCartOrderResult.ShoppingCartItem);
        }
Пример #2
0
        // GET: /<controller>/
        public IActionResult Add([FromBody] UserShoppingCartItem userShoppingCartItem)
        {
            var shoppingCart = _appDbContext.ShoppingCarts.FirstOrDefault(s => s.UserId == userShoppingCartItem.UserId);

            if (shoppingCart == null)
            {
                shoppingCart = new ShoppingCart {
                    UserId = userShoppingCartItem.UserId
                };
                _appDbContext.ShoppingCarts.Add(shoppingCart);
                _appDbContext.SaveChanges();
            }

            var pie = _appDbContext.Pies.FirstOrDefault(p => p.PieId == userShoppingCartItem.ShoppingCartItem.PieId);

            var shoppingCartItem = new ShoppingCartItem
            {
                Pie            = pie,
                PieId          = userShoppingCartItem.ShoppingCartItem.Pie.PieId,
                Quantity       = userShoppingCartItem.ShoppingCartItem.Quantity,
                ShoppingCartId = shoppingCart.ShoppingCartId
            };

            _appDbContext.ShoppingCartItems.Add(shoppingCartItem);
            _appDbContext.SaveChanges();

            return(Ok(shoppingCartItem));
        }
        public async Task <UserShoppingCartItem> AddShoppingCartItem(ShoppingCartItem shoppingCartItem, string userId)
        {
            try
            {
                ValidationGuard
                .StringIsValidRange(userId, 1, $"Invalid {nameof(userId)}");

                ValidationGuard
                .ObjectIsNull(shoppingCartItem, $"Invalid {nameof(shoppingCartItem)}");

                UriBuilder builder = new UriBuilder(ApiConstants.BaseApiUrl)
                {
                    Path = ApiConstants.AddShoppingCartItemEndpoint
                };

                var userShoppingCartItem = new UserShoppingCartItem
                {
                    ShoppingCartItem = shoppingCartItem,
                    UserId           = userId
                };

                var shoppingCartApiCall = await _request.PostAsync <UserShoppingCartItem>(builder.ToString(), userShoppingCartItem);

                return(shoppingCartApiCall);
            }
            catch (Exception ex)
            {
                throw new ShoppingCartDataServiceException(ex.Message);
            }
        }
Пример #4
0
        // GET: /<controller>/
        public async Task <IActionResult> Add([FromBody] UserShoppingCartItem userShoppingCartItem)
        {
            ShoppingCartItem shoppingCartItem = new ShoppingCartItem();
            var shoppingCart = _appDbContext.ShoppingCarts.Include(p => p.ShoppingCartItems).SingleOrDefault(s => s.UserId == userShoppingCartItem.UserId);

            if (shoppingCart != null)
            {
                shoppingCartItem = shoppingCart.ShoppingCartItems?.SingleOrDefault(item => item.PieId == userShoppingCartItem.ShoppingCartItem.Pie.PieId);
                if (shoppingCartItem != null)
                {
                    shoppingCartItem.Quantity++;
                    _appDbContext.Entry(shoppingCartItem).State = EntityState.Modified;
                    await _appDbContext.SaveChangesAsync();
                }

                else
                {
                    //shoppingCart = _appDbContext.ShoppingCarts.FirstOrDefault(s => s.UserId == userShoppingCartItem.UserId);


                    var pie = _appDbContext.Pies.FirstOrDefault(p => p.PieId == userShoppingCartItem.ShoppingCartItem.PieId);

                    shoppingCartItem = new ShoppingCartItem
                    {
                        Pie            = pie,
                        PieId          = userShoppingCartItem.ShoppingCartItem.Pie.PieId,
                        Quantity       = userShoppingCartItem.ShoppingCartItem.Quantity,
                        ShoppingCartId = shoppingCart.ShoppingCartId,
                        ClientNumber   = userShoppingCartItem.ShoppingCartItem.ClientNumber
                    };
                    _appDbContext.ShoppingCartItems.Add(shoppingCartItem);
                    await _appDbContext.SaveChangesAsync();
                }
            }
            else
            {
                shoppingCart = new ShoppingCart {
                    UserId = userShoppingCartItem.UserId
                };
                _appDbContext.ShoppingCarts.Add(shoppingCart);
                _appDbContext.SaveChanges();
            }



            return(Ok(shoppingCartItem));
        }
Пример #5
0
        public async Task <ShoppingCartItem> AddShoppingCartItemAsync(ShoppingCartItem shoppingCartItem, string userId)
        {
            UriBuilder builder = new UriBuilder(ApiConstants.BaseApiUrl)
            {
                Path = ApiConstants.AddShoppingCartItemEndpoint
            };

            var userShoppingCartItem = new UserShoppingCartItem
            {
                ShoppingCartItem = shoppingCartItem,
                UserId           = userId
            };

            var result = await _apiService.PostAsync(builder.ToString(), userShoppingCartItem);

            return(shoppingCartItem);
        }
        public void Throws_When_ShoppingCartItem_Is_Null()
        {
            var userId = "a";
            ShoppingCartItem shoppingItem = null;

            var userShoppingCartItem = new UserShoppingCartItem()
            {
                ShoppingCartItem = shoppingItem,
                UserId           = userId
            };

            var requestProviderMock = new Mock <IRequestProvider>();

            requestProviderMock
            .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>()))
            .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem));

            var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object);

            Assert.ThrowsAsync <ShoppingCartDataServiceException>(
                async() => await shoppingCartDataService.AddShoppingCartItem(shoppingItem, userId));
        }
        public void Throws_When_Invalid_UserId_Is_Passed(string userId)
        {
            var mockShoppingCart = ShoppingCardMock
                                   .GetMockShoppingCart(userId)
                                   .ShoppingCartItems.ToList()
                                   .FirstOrDefault();

            var userShoppingCartItem = new UserShoppingCartItem()
            {
                ShoppingCartItem = mockShoppingCart,
                UserId           = userId
            };

            var requestProviderMock = new Mock <IRequestProvider>();

            requestProviderMock
            .Setup(e => e.PostAsync <UserShoppingCartItem>(It.IsAny <string>(), It.IsAny <UserShoppingCartItem>(), It.IsAny <string>()))
            .Returns(Task.FromResult <UserShoppingCartItem>(userShoppingCartItem));

            var shoppingCartDataService = new ShoppingCartDataService(requestProviderMock.Object);

            Assert.ThrowsAsync <ShoppingCartDataServiceException>(
                async() => await shoppingCartDataService.AddShoppingCartItem(mockShoppingCart, userId));
        }