Example #1
0
        public async Task ExecuteResultAsync_FormatsData()
        {
            // Arrange
            var url           = "testAction";
            var linkGenerator = new TestLinkGenerator {
                Url = url
            };
            var httpContext = GetHttpContext(linkGenerator);
            var stream      = new MemoryStream();

            httpContext.Response.Body = stream;

            var routeValues = new RouteValueDictionary(new Dictionary <string, string>()
            {
                { "test", "case" },
                { "sample", "route" }
            });

            // Act
            var result = new AcceptedAtRouteResult(
                routeName: "sample",
                routeValues: routeValues,
                value: "Hello world");
            await result.ExecuteAsync(httpContext);

            // Assert
            var response = Encoding.UTF8.GetString(stream.ToArray());

            Assert.Equal("\"Hello world\"", response);
        }
Example #2
0
        public async Task ExecuteResultAsync_ThrowsIfRouteUrlIsNull()
        {
            // Arrange
            var linkGenerator = new TestLinkGenerator();
            var httpContext   = GetHttpContext(linkGenerator);

            // Act
            var result = new AcceptedAtRouteResult(
                routeName: null,
                routeValues: new Dictionary <string, object>(),
                value: null);

            // Assert
            await ExceptionAssert.ThrowsAsync <InvalidOperationException>(() =>
                                                                          result.ExecuteAsync(httpContext),
                                                                          "No route matches the supplied values.");
        }
Example #3
0
        public async Task ExecuteResultAsync_SetsStatusCodeAndLocationHeader(object values)
        {
            // Arrange
            var expectedUrl   = "testAction";
            var linkGenerator = new TestLinkGenerator {
                Url = expectedUrl
            };
            var httpContext = GetHttpContext(linkGenerator);

            // Act
            var result = new AcceptedAtRouteResult(routeValues: values, value: null);
            await result.ExecuteAsync(httpContext);

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