Example #1
0
        public void AddBooksToSessionBasket_CheckAddItemToEmptyBasket(int id, int quantity)
        {
            using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(),
                                                           MockData.MoqEmailSender(), MockData.MoqMyLogger()))
            {
                OrderedBook orderedBook = new OrderedBook {
                    BookId = id, Quantity = quantity
                };
                List <OrderedBook> expectedOrderedBookList = new List <OrderedBook>();
                expectedOrderedBookList.Add(orderedBook);

                var controllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        Session = new MockHttpSession()
                    }
                };

                homeController.ControllerContext = controllerContext;

                var result = homeController.AddBooksToSessionBasket(id, quantity).ToList();

                int actualQuantity = result.FirstOrDefault(x => x.BookId == id)?.Quantity ?? 0;
                int actualId       = result.FirstOrDefault(x => x.BookId == id)?.BookId ?? 0;

                Assert.Equal(id, actualId);
                Assert.Equal(quantity, actualQuantity);
            }
        }
Example #2
0
        public void AddBooksToSessionBasket_CheckAddItemToNonEmptyBasket(int id, int quantity)
        {
            using (var homeController = new HomeController(MockData.MoqLogger(), MockData.MoqShopContext(),
                                                           MockData.MoqEmailSender(), MockData.MoqMyLogger()))
            {
                OrderedBook orderedBook1 = new OrderedBook {
                    BookId = 1, Quantity = 3
                };
                OrderedBook orderedBook2 = new OrderedBook {
                    BookId = 2, Quantity = 4
                };
                OrderedBook orderedBook3 = new OrderedBook {
                    BookId = 3, Quantity = 1
                };
                List <OrderedBook> mockOrderedBookList = new List <OrderedBook>();
                mockOrderedBookList.Add(orderedBook1);
                mockOrderedBookList.Add(orderedBook2);
                mockOrderedBookList.Add(orderedBook3);

                int quantityFromSession = mockOrderedBookList.FirstOrDefault(x => x.BookId == id)?.Quantity ?? 0;

                var controllerContext = new ControllerContext()
                {
                    HttpContext = new DefaultHttpContext()
                    {
                        Session = new MockHttpSession()
                    }
                };

                homeController.ControllerContext = controllerContext;

                homeController.HttpContext.Session.Set(WebConst.SessionCart, mockOrderedBookList);

                var result = homeController.AddBooksToSessionBasket(id, quantity).ToList();

                int actualQuantity = result.FirstOrDefault(x => x.BookId == id)?.Quantity ?? 0;
                int actualId       = result.FirstOrDefault(x => x.BookId == id)?.BookId ?? 0;

                if (actualId == 0 && actualQuantity == 0)
                {
                    Assert.True(mockOrderedBookList.Count == result.Count + 1);
                }
                else
                {
                    Assert.Equal(id, actualId);
                    Assert.Equal(quantity + quantityFromSession, actualQuantity);
                }
            }
        }