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 AcceptedAtRoute <string>( routeName: "sample", routeValues: routeValues, value: "Hello world"); await result.ExecuteAsync(httpContext); // Assert var response = Encoding.UTF8.GetString(stream.ToArray()); Assert.Equal("\"Hello world\"", response); }
public async Task ExecuteResultAsync_ThrowsIfRouteUrlIsNull() { // Arrange var linkGenerator = new TestLinkGenerator(); var httpContext = GetHttpContext(linkGenerator); // Act var result = new AcceptedAtRoute( routeName: null, routeValues: new Dictionary <string, object>()); // Assert await ExceptionAssert.ThrowsAsync <InvalidOperationException>(() => result.ExecuteAsync(httpContext), "No route matches the supplied values."); }
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 AcceptedAtRoute <object>(routeValues: values, value: null); await result.ExecuteAsync(httpContext); // Assert Assert.Equal(StatusCodes.Status202Accepted, httpContext.Response.StatusCode); Assert.Equal(expectedUrl, httpContext.Response.Headers["Location"]); }