public void HttpStatusCodeResult_ExecuteResultSetsResponseStatusCode()
        {
            // Arrange
            var result = new HttpStatusCodeResult(StatusCodes.Status404NotFound);

            var httpContext = new DefaultHttpContext();
            var routeData = new RouteData();
            var actionDescriptor = new ActionDescriptor();

            var context = new ActionContext(httpContext, routeData, actionDescriptor);

            // Act
            result.ExecuteResult(context);

            // Assert
            Assert.Equal(StatusCodes.Status404NotFound, httpContext.Response.StatusCode);
        }
        public void HttpStatusCodeResult_ExecuteResultSetsResponseStatusCode()
        {
            // Arrange
            var result = new HttpStatusCodeResult(StatusCodes.Status404NotFound);

            var httpContext      = new DefaultHttpContext();
            var routeData        = new RouteData();
            var actionDescriptor = new ActionDescriptor();

            var context = new ActionContext(httpContext, routeData, actionDescriptor);

            // Act
            result.ExecuteResult(context);

            // Assert
            Assert.Equal(StatusCodes.Status404NotFound, httpContext.Response.StatusCode);
        }
Пример #3
0
        public async Task<IActionResult> Get(string productId)
        {
            IActionResult result;
            var productResult = await _byIdQuery.ExecuteAsync(productId);

            if(productResult == null)
            {
                _logger.LogInformation("Product {productId} doesn't exist.", productId);
                result = HttpNotFound();
            }
            else if (productResult.Product.DeletedOn != null)
            {
                _logger.LogInformation("Product {productId} exists but has been marked as deleted.", productId);
                result = new HttpStatusCodeResult(410);
            }
            else
            {
                _logger.LogVerbose("Product {productId} has been found.", productId);
                result = Ok(productResult.Product);
            }

            return result;
        }