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