Ejemplo n.º 1
0
        public void When_Post_IsCalled_With_CorrectData_Should_RespondWith_CreatedAtRoute()
        {
            Cart cart = new Cart();

            using (var controller = new CartController(new FakeProductRepository(), cart))
            {
                DummyOrderCreate newOrder = new DummyOrderCreate()
                {
                    ProductId = 1
                };

                // Act
                IActionResult actionResult         = controller.Post(newOrder);
                var           createdAtRouteResult = actionResult as CreatedAtRouteResult;

                // Assert
                Assert.NotNull(createdAtRouteResult);
                Assert.Equal(201, createdAtRouteResult.StatusCode);

                CartLine cartLine = createdAtRouteResult.Value as CartLine;
                Assert.NotNull(cartLine);
                Assert.Single(cart.Lines);
                Assert.Equal(1, cart.Lines.LastOrDefault().Product.ProductId);
                Assert.Equal("GetLineById", createdAtRouteResult.RouteName);
            }
        }
Ejemplo n.º 2
0
        public void When_Post_IsCalled_And_ProductId_Is_Invalid_Should_RespondWith_BadRequest()
        {
            Cart cart = new Cart();

            using (var controller = new CartController(new FakeProductRepository(), cart))
            {
                DummyOrderCreate newOrder = new DummyOrderCreate()
                {
                    ProductId = 114
                };

                // Act
                IActionResult actionResultNull  = controller.Post(newOrder);
                var           badRequestResult1 = actionResultNull as BadRequestObjectResult;

                // Assert
                Assert.NotNull(badRequestResult1);
                Assert.Equal(400, badRequestResult1.StatusCode);
            }
        }
Ejemplo n.º 3
0
        public IActionResult Post([FromBody] DummyOrderCreate dummyProduct)
        {
            if (dummyProduct == null)
            {
                return(BadRequest("Invalid product id"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var product = repository.GetProductById(dummyProduct.ProductId.Value);

            if (product.HasNoValue)
            {
                return(BadRequest("No product found!"));
            }

            var line = cart.AddItem(product.Value, dummyProduct.Quantity);

            return(CreatedAtRoute("GetLineById", new { id = line.CartLineId }, line));
        }