コード例 #1
0
        public void TestPost_InvalidProduct()
        {
            var cart = new ShoppingCart()
            {
                ProductId = -1, Quantity = 1, UserId = 1
            };

            var mockRepo = new Mock <IShoppingCartRepository>();

            mockRepo.Setup(r => r.Insert(cart)).Returns(false);

            var controller = new ShoppingCartsController(mockRepo.Object, mockCache);
            var result     = controller.Post(cart);

            var okResult = Assert.IsType <NotFoundResult>(result);
        }
コード例 #2
0
        public void TestPost_InvalidQuantity()
        {
            var cart = new ShoppingCart()
            {
                ProductId = 1, Quantity = -1, UserId = 1
            };

            var mockRepo = new Mock <IShoppingCartRepository>();

            mockRepo.Setup(r => r.Insert(cart)).Returns(true); //This should not be called, however the database does not have any quantity validations so, it would, actually save it.

            var controller = new ShoppingCartsController(mockRepo.Object, mockCache);

            controller.ModelState.AddModelError("Quantity", "Quantity must be larger than 0"); //ModelState error are added when building the request. Calling the method directly does not allow the modelstate to build up its errors.
            var result = controller.Post(cart);

            var okResult = Assert.IsType <NotFoundResult>(result);
        }
コード例 #3
0
        public void TestPost_Valid()
        {
            var cart = new ShoppingCart()
            {
                ProductId = 1, Quantity = 1, UserId = 1
            };

            var mockRepo = new Mock <IShoppingCartRepository>();

            mockRepo.Setup(r => r.Insert(cart)).Returns(true);

            var controller = new ShoppingCartsController(mockRepo.Object, mockCache);
            var result     = controller.Post(cart);

            var okResult     = Assert.IsType <CreatedResult>(result);
            var resultObject = (ShoppingCart)okResult.Value;

            Assert.Equal(resultObject.ProductId, cart.ProductId);
            Assert.Equal(resultObject.Quantity, cart.Quantity);
            Assert.Equal(resultObject.UserId, cart.UserId);
        }