Пример #1
0
        public async Task ExecuteResultAsync_SetsObjectValueOfFormatter(object value)
        {
            // Arrange
            var    url         = "testAction";
            var    formatter   = CreateMockFormatter();
            var    httpContext = GetHttpContext(formatter);
            object actual      = null;

            formatter.Setup(f => f.WriteAsync(It.IsAny <OutputFormatterWriteContext>()))
            .Callback((OutputFormatterWriteContext context) => actual = context.Object)
            .Returns(Task.FromResult(0));

            var actionContext = GetActionContext(httpContext);
            var urlHelper     = GetMockUrlHelper(url);

            // Act
            var result = new AcceptedAtActionResult(
                actionName: url,
                controllerName: null,
                routeValues: null,
                value: value);

            result.UrlHelper = urlHelper;
            await result.ExecuteResultAsync(actionContext);

            // Assert
            Assert.Same(value, actual);
        }
Пример #2
0
        public async Task ExecuteResultAsync_ThrowsIfActionUrlIsNullOrEmpty(string returnValue)
        {
            // Arrange
            var formatter     = CreateMockFormatter();
            var httpContext   = GetHttpContext(formatter);
            var actionContext = GetActionContext(httpContext);
            var urlHelper     = GetMockUrlHelper(returnValue);

            // Act
            var result = new AcceptedAtActionResult(
                actionName: null,
                controllerName: null,
                routeValues: null,
                value: null);

            result.UrlHelper = urlHelper;

            // Assert
            await ExceptionAssert.ThrowsAsync <InvalidOperationException>(() =>
                                                                          result.ExecuteResultAsync(actionContext),
                                                                          "No route matches the supplied values.");
        }
Пример #3
0
        public async Task ExecuteResultAsync_SetsStatusCodeAndLocationHeader()
        {
            // Arrange
            var expectedUrl   = "testAction";
            var formatter     = CreateMockFormatter();
            var httpContext   = GetHttpContext(formatter);
            var actionContext = GetActionContext(httpContext);
            var urlHelper     = GetMockUrlHelper(expectedUrl);

            // Act
            var result = new AcceptedAtActionResult(
                actionName: expectedUrl,
                controllerName: null,
                routeValues: null,
                value: null);

            result.UrlHelper = urlHelper;
            await result.ExecuteResultAsync(actionContext);

            // Assert
            Assert.Equal(StatusCodes.Status202Accepted, httpContext.Response.StatusCode);
            Assert.Equal(expectedUrl, httpContext.Response.Headers["Location"]);
        }