public void Option1_TestDiscount_Success()
        {
            try
            {
                _connection.Open();
                var options = DatabaseHelper.GetContextOptions(_connection);
                // Add products and discounts to Test DB
                DatabaseHelper.SetupProducts(_connection);

                using (var context = new AppDbContext(options))
                {
                    var repo              = new SupermarketRepository(context);
                    var controller        = new BasketController(repo);
                    var expectedTotal     = 2.95m;
                    var expectedLineCount = 3;

                    // Add 1 bread, 1 milk and 1 butter
                    controller.AddToBasket(1);
                    controller.AddToBasket(2);
                    controller.AddToBasket(3);

                    var model = (controller.Index(_basketId) as ViewResult).Model as BasketViewModel;
                    Assert.True(model.ProductLineItems.Count == expectedLineCount);
                    Assert.True(model.Total == expectedTotal); // Basket total before discount

                    var updatedViewModel = (controller.UpdateTotal(_basketId) as ViewResult).Model as BasketViewModel;
                    Assert.True(updatedViewModel.Total == expectedTotal); // Basket Total after update
                }
            }
            finally
            {
                _connection.Close();
            }
        }
        public void CanAddBasketItem()
        {
            //Send in Mock repositories
            //Set Up
            IRepository <Basket>  baskets  = new MockContext <Basket>();
            IRepository <Product> products = new MockContext <Product>();

            var httpContext = new MockHttpContext();

            IBasketService basketService = new BasketService(products, baskets);
            var            controller    = new BasketController(basketService);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);



            //TestCategoryAttribute the basket service directly
            //Act
            // basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            // Looking for basket collection
            Basket basket = baskets.Collection().FirstOrDefault();



            //Test an d check
            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 3
0
        public void CanAddBasketItemController()
        {
            // Arrange
            const string             productId          = "1";
            IRepository <Basket>     basketContext      = new MockContext <Basket>();
            IRepository <BasketItem> basketItemsContext = new MockContext <BasketItem>();
            IRepository <Product>    productContext     = new MockContext <Product>();
            IRepository <Order>      orderContext       = new MockContext <Order>();
            IRepository <Customer>   customerContext    = new MockContext <Customer>();
            MockHttpContext          httpContext        = new MockHttpContext();

            IBasketService   basketService = new BasketService(productContext, basketContext, basketItemsContext);
            IOrderService    orderService  = new OrderService(orderContext);
            BasketController controller    = new BasketController(basketService, orderService, customerContext);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            // Act
            controller.AddToBasket(productId);

            Basket basket = basketContext.Collection().FirstOrDefault();

            // Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual(productId, basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
        public void CanAddBasketItem()
        {
            //Setup Info
            IRepository <Basket>   baskets   = new MockContext <Basket>();
            IRepository <Product>  products  = new MockContext <Product>();
            IRepository <Order>    orders    = new MockContext <Order>();
            IRepository <Customer> customers = new MockContext <Customer>();

            var httpContext = new MockHttpContext();

            IBasketService basketService = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(orders);
            var            controller    = new BasketController(basketService, orderService, customers);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //Act on Info
            controller.AddToBasket("1");

            basketService.AddToBasket(httpContext, "1");

            Basket basket = baskets.Collection().FirstOrDefault();

            //Confirm on Info
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 5
0
        public void CanAddBasketItem()
        {
            // Setup
            var baskets     = new MockContext <Basket>();
            var products    = new MockContext <Product>();
            var orders      = new MockContext <Order>();
            var httpContext = new MockHttpContext();
            var customers   = new MockContext <Customer>();

            // Act
            IBasketService basketService = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(orders);
            var            controller    = new BasketController(basketService, orderService, customers);

            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            controller.AddToBasket("1");

            // Assert
            var basket = baskets.Collection().FirstOrDefault();

            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.FirstOrDefault().ProductId);
        }
Exemplo n.º 6
0
        public void CanAddBasketItem()
        {
            // setup
            var baskets     = new MockContext <Basket>();
            var products    = new MockContext <Product>();
            var orders      = new MockContext <Order>();
            var httpContext = new MockHttpContext();
            var customers   = new MockContext <Customer>();

            var basketService = new BasketService(products, baskets);
            var orderService  = new OrderService(orders);

            customers.Insert(new Customer {
                Id = "1", Email = "*****@*****.**", ZipCode = "11000"
            });
            var fakeUser = new GenericPrincipal(new GenericIdentity("*****@*****.**", "Forms"), null);

            httpContext.User = fakeUser;
            var controller = new BasketController(basketService, orderService, customers);

            controller.ControllerContext = new ControllerContext(httpContext, new RouteData(), controller);

            // act
            //basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            var basket = baskets.Collection().FirstOrDefault();

            // assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 7
0
        public void CanAddBasketItem()
        {
            // Setup
            IRepository <Basket>   baskets   = new MockContext <Basket>();
            IRepository <Product>  products  = new MockContext <Product>();
            IRepository <Order>    orders    = new MockContext <Order>();
            IRepository <Customer> customers = new MockContext <Customer>();

            var httpContext = new MockHttpContext();

            IBasketService basketService = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(orders);

            // This is so we can test add to bask throught the controller
            var controller = new BasketController(basketService, orderService, customers);

            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            // Act
            // This is to test the basket service itself
            //basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            Basket basket = baskets.Collection().FirstOrDefault();

            // Test
            // Test if Basket is not Empty
            Assert.IsNotNull(basket);

            // Test that there is only one item in the basket
            Assert.AreEqual(1, basket.BasketItems.Count);

            // Tests that the first item productid is 1
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 8
0
        public void CanAddBasketItem()
        {
            //setup
            IRepository <Basket>  baskets  = new MockContext <Basket>();
            IRepository <Product> products = new MockContext <Product>();

            var httpContext = new MockHttpContext();


            IBasketService basketService = new BasketService(products, baskets);
            var            controller    = new BasketController(basketService);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //Act
            //basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            Basket basket = baskets.Collection().FirstOrDefault();


            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 9
0
        public void CanAddBasketItem()
        {
            //Arrange
            IRepository <Basket>   basketRepository   = new MockRepository <Basket>();
            IRepository <Product>  productRepository  = new MockRepository <Product>();
            IRepository <Order>    orderRepository    = new MockRepository <Order>();
            IRepository <Customer> customerRepository = new MockRepository <Customer>();
            MockHttpContext        httpContext        = new MockHttpContext();

            IBasketService basketService = new BasketService(productRepository, basketRepository);
            IOrderService  orderService  = new OrderService(orderRepository);

            var controller = new BasketController(basketService, orderService, customerRepository);

            controller.ControllerContext = new ControllerContext(httpContext, new RouteData(), controller);

            //Act
            // basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            Basket basket = basketRepository.Collection().FirstOrDefault();

            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
        public void CanAddBasketItem()
        {
            //Setup
            IRepository <Basket>   baskets   = new MockRepository <Basket>();
            IRepository <Product>  products  = new MockRepository <Product>();
            IRepository <Order>    orders    = new MockRepository <Order>();
            IRepository <Customer> customers = new MockRepository <Customer>();

            IBasketService basketService = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(orders);
            var            controller    = new BasketController(basketService, orderService, customers);

            var httpContext = new MockHttpContext();

            controller.ControllerContext = new ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //Act
            //to test the service directly we would do this
            //basketService.AddToBasket(httpContext, "1");
            //to test the service via the controller we do this
            controller.AddToBasket("1");
            Basket basket = baskets.Collection().FirstOrDefault();

            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 11
0
        public void CanAddBasketItem()
        {
            IRepository <Product> productContext = new MockContext <Product>();
            //IRepository<ProductCategory> productCategoryContext = new MockContext<ProductCategory>();
            IRepository <Basket>   basketContext      = new MockContext <Basket>();
            IRepository <Customer> customerRepository = new MockContext <Customer>();


            IBasketService basketService = new BasketService(productContext, basketContext);
            IOrderService  orderService  = new OrderService(new MockContext <Order>());
            //setting up
            BasketController basketController = new BasketController(basketService, orderService, customerRepository);

            basketController.ControllerContext = new System.Web.Mvc.ControllerContext(new MockHttpContext(), new System.Web.Routing.RouteData(), basketController);
            //basketService.AddToBasket(new MockHttpContext(),"1");

            //act
            basketController.AddToBasket("1");
            var basket = basketContext.Collection().FirstOrDefault();

            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count());
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
        public void Create_a_basket_when_first_item_is_added()
        {
            basketServiceMock.Setup(b => b.AddItemToBasket(It.IsAny <Product>(), It.IsAny <int>()));

            var response = basketController
                           .AddToBasket(fixture.Create <Product>(),
                                        fixture.Create <int>()) as StatusCodeResult;

            basketServiceMock.Verify(b => b.AddItemToBasket(It.IsAny <Product>(), It.IsAny <int>()));
            Assert.That(response.StatusCode, Is.EqualTo(StatusCodes.Status201Created));
        }
Exemplo n.º 13
0
        public void Delete_ReturnsIActionResultWhenGameKeyAndQuantityAndPrice()
        {
            // Arrange
            string gameKey = "csgo";

            // Act
            var result = _basketController.AddToBasket(gameKey) as IActionResult;

            // Assert
            Assert.NotNull(result);
        }
Exemplo n.º 14
0
        public void RedirectToActionIndexWhenValidForAddToBasket()
        {
            _basketService.Setup(x => x.AddToBasket(It.IsAny <HttpContext>(), "abc123"));

            var result = _sut.AddToBasket("abc123");

            _basketService.Verify(x => x.AddToBasket(It.IsAny <HttpContext>(), "abc123"), Times.Once);

            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Index", redirectToActionResult.ActionName);
        }
        public void BasketController_AddToBasket_Test_Success()
        {
            try
            {
                _connection.Open();
                var options = DatabaseHelper.GetContextOptions(_connection);
                // Add products to Test DB
                DatabaseHelper.SetupProducts(_connection);

                using (var context = new AppDbContext(options))
                {
                    var repo       = new SupermarketRepository(context);
                    var controller = new BasketController(repo);

                    // Add 4 containers of milk to the basket. 1 line item
                    controller.AddToBasket(2);
                    controller.AddToBasket(2);
                    controller.AddToBasket(2);
                    controller.AddToBasket(2);

                    var result = controller.Index(_basketId) as ViewResult;
                    Assert.NotNull(result);
                    var model = result.Model as BasketViewModel;
                    Assert.True(model.BasketId == 1);
                    Assert.True(model.ProductLineItems.Count == 1);

                    // Basket total before discount
                    Assert.True(model.Total == 4.60m);

                    var updatedresult    = controller.UpdateTotal(_basketId) as ViewResult;
                    var updatedViewModel = updatedresult.Model as BasketViewModel;
                    Assert.True(updatedViewModel.Total == 3.45m);
                }
            }
            finally
            {
                _connection.Close();
            }
        }
Exemplo n.º 16
0
        public void CanAddBasketItem()
        {
            // Arrange
            Setup();

            // Act
            _mockedController.AddToBasket("1");
            Basket basket = baskets.Collection().FirstOrDefault();

            // Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 17
0
        static void Main(string[] args)
        {
            IRepository <Basket>  baskets  = new MockContext <Basket>();
            IRepository <Product> products = new MockContext <Product>();

            var httpContext = new MockHttpContext();

            IBasketService basketService = new BasketService(products, baskets);
            var            controller    = new BasketController(basketService);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);

            //basketService.AddToBasket(httpContext, "1");
            controller.AddToBasket("1");

            Basket basket = baskets.Collection().FirstOrDefault();
        }
Exemplo n.º 18
0
        public void CanAddBasketItem()
        {
            //setup
            IRepository <Basket>   baskets   = new MockContext <Basket>(); // created the mock repositories
            IRepository <Product>  products  = new MockContext <Product>();
            IRepository <Order>    orders    = new MockContext <Order>();
            IRepository <Customer> customers = new MockContext <Customer>();


            var httpContext = new MockHttpContext();                             //created our httpContext

            IBasketService basketService = new BasketService(products, baskets); // ceated our basketService which takes our products, baskets context

            IOrderService orderService = new OrderService(orders);

            //// for testing the BasketService
            //basketService.AddToBasket(httpContext, "1"); // to test the service directly

            //Basket basket = baskets.Collection().FirstOrDefault(); // checks if theres any baskets in our basket collection

            //Assert.IsNotNull(basket); // checks basket to make sure it is not null
            //Assert.AreEqual(1, basket.BasketItems.Count); // checks if there is one item in the basket
            //Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId); // checks to make sure the productId in the basket is the one we just injected


            // for testing the BasketController

            //act
            var controller = new BasketController(basketService, orderService, customers);

            controller.ControllerContext = new System.Web.Mvc.ControllerContext(httpContext, new System.Web.Routing.RouteData(), controller);
            // how we inject the httpContext into the controller

            controller.AddToBasket("1");

            Basket basket = baskets.Collection().FirstOrDefault();


            //Assert
            Assert.IsNotNull(basket);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }
Exemplo n.º 19
0
        public void AddToBasket_ShouldReturnNotFound(short value)
        {
            _gameManagerMock.Setup(x => x.GetGameByKey(It.IsAny <string>())).Returns(new Game()
            {
                Key = "asd", UnitsInStock = value
            });

            var bc = new BasketController(_gameManagerMock.Object);

            TestControllerBuilder builder = new TestControllerBuilder();

            builder.InitializeController(bc);
            builder.Session["Basket"] = new List <string>()
            {
                "asd", "str", "key"
            };

            var result = bc.AddToBasket("asd") as HttpStatusCodeResult;

            Assert.AreEqual(404, result.StatusCode);
        }
Exemplo n.º 20
0
        //добавление товара в корзину пользователя
        public void Can_Add_To_Basket()
        {
            //Организация
            Mock <IBookRepository> mock = new Mock <IBookRepository>();

            mock.Setup(m => m.Books).Returns(new List <Book>
            {
                new Book {
                    BookId = 1, Name = "Book1", Price = 12
                }
            }.AsQueryable());

            Basket           basket     = new Basket();
            BasketController controller = new BasketController(mock.Object, null);

            //Действия
            controller.AddToBasket(basket, 1, null);

            //Утверждение
            Assert.AreEqual(basket.GetGoods.Count(), 1);
            Assert.AreEqual(basket.GetGoods.ToList()[0].Book.BookId, 1);
        }
Exemplo n.º 21
0
        //после добавление товара в корзинну - происходит перенаправление на страницу корзины
        public void Can_Redirect_To_Basket_Page()
        {
            //Организация
            Mock <IBookRepository> mock = new Mock <IBookRepository>();

            mock.Setup(m => m.Books).Returns(new List <Book>
            {
                new Book {
                    BookId = 1, Name = "Book1", Genre = "Genre1"
                }
            }.AsQueryable());

            Basket           basket     = new Basket();
            BasketController controller = new BasketController(mock.Object, null);

            //Действия

            RedirectToRouteResult redirectToRoute = controller.AddToBasket(basket, 2, "myUrl");

            //Утверждение
            Assert.AreEqual(redirectToRoute.RouteValues["action"], "Index");
            Assert.AreEqual(redirectToRoute.RouteValues["returnUrl"], "myUrl");
        }
Exemplo n.º 22
0
        public void CanAddBasketItem_BasketController()
        {
            IRepository <Product>  products  = new MockContext <Product>();
            IRepository <Basket>   baskets   = new MockContext <Basket>();
            IRepository <Order>    orders    = new MockContext <Order>();
            IRepository <Customer> customers = new MockContext <Customer>();

            var httpContext = new MockHttpContext();

            IBasketService basketService = new BasketService(products, baskets);
            IOrderService  orderService  = new OrderService(orders);

            BasketController basketController = new BasketController(basketService, orderService, customers);

            basketController.ControllerContext = new ControllerContext(httpContext, new RouteData(), basketController);
            basketController.AddToBasket("1");


            Basket basket = baskets.Collection().FirstOrDefault();

            Assert.IsNotNull(basketService);
            Assert.AreEqual(1, basket.BasketItems.Count);
            Assert.AreEqual("1", basket.BasketItems.ToList().FirstOrDefault().ProductId);
        }