public void WithRouteName_GivenExpectedRouteName_ShouldPass() { var expectedRouteName = "expectedRoute"; var result = new AcceptedAtRouteResult(expectedRouteName, null, null); result.Should().BeAcceptedAtRouteResult().WithRouteName(expectedRouteName); }
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); var routeValues = new RouteValueDictionary(new Dictionary <string, string>() { { "test", "case" }, { "sample", "route" } }); // Act var result = new AcceptedAtRouteResult( routeName: "sample", routeValues: routeValues, value: value); result.UrlHelper = urlHelper; await result.ExecuteResultAsync(actionContext); // Assert Assert.Same(value, actual); }
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); }
public void ValueAs_Null_ShouldFail() { ActionResult result = new AcceptedAtRouteResult(string.Empty, null, null); var failureMessage = FailureMessageHelper.ExpectedContextTypeXButFoundNull( "AcceptedAtRouteResult.Value", typeof(object)); Action a = () => result.Should().BeAcceptedAtRouteResult().ValueAs <object>(); a.Should().Throw <Exception>().WithMessage(failureMessage); }
public void WithRouteValue_GivenExpectedKeyValuePair_ShouldPass() { var expectedKey = "expectedKey"; var expectedValue = "expectedValue"; var routeValues = new { expectedKey = expectedValue }; var result = new AcceptedAtRouteResult(string.Empty, routeValues, null); result.Should().BeAcceptedAtRouteResult().WithRouteValue(expectedKey, expectedValue); }
public void WithRouteName_GivenUnexpectedRouteName_ShouldFail() { var result = new AcceptedAtRouteResult("someOtherRoute", null, null); var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY( "AcceptedAtRouteResult.RouteName", "expectedRoute", "someOtherRoute"); Action a = () => result.Should().BeAcceptedAtRouteResult().WithRouteName("expectedRoute", Reason, ReasonArgs); a.Should().Throw <Exception>().WithMessage(failureMessage); }
public void Constructor_InitializesStatusCodeAndValue(object value) { // Arrange & Act var result = new AcceptedAtRouteResult( routeName: null, routeValues: null, value: value); // Assert Assert.Equal(StatusCodes.Status202Accepted, result.StatusCode); Assert.Same(value, result.Value); }
public void WithRouteValue_GivenKeyDoesntExist_ShouldFail() { var expectedKey = "expectedKey"; var routeValues = new { myKey = "MyValue" }; var result = new AcceptedAtRouteResult(string.Empty, routeValues, null); var failureMessage = FailureMessageHelper.ExpectedContextContainValueAtKeyButKeyNotFound( "AcceptedAtRouteResult.RouteValues", "Val", expectedKey); Action a = () => result.Should().BeAcceptedAtRouteResult().WithRouteValue(expectedKey, "Val", Reason, ReasonArgs); a.Should().Throw <Exception>().WithMessage(failureMessage); }
public void HaveValue_GivenUnexpectedKeyValuePair_ShouldFail() { var expectedKey = "expectedKey"; var expectedValue = "expectedValue"; var routeValues = new { expectedKey = "someOtherValue" }; var failureMessage = FailureMessageHelper.ExpectedAtKeyValueXButFoundY( "AcceptedAtRouteResult.RouteValues", expectedKey, expectedValue, "someOtherValue"); var result = new AcceptedAtRouteResult(string.Empty, routeValues, null); Action a = () => result.Should().BeAcceptedAtRouteResult().WithRouteValue(expectedKey, expectedValue, Reason, ReasonArgs); a.Should().Throw <Exception>().WithMessage(failureMessage); }
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."); }
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"]); }
public async Task ExecuteResultAsync_SetsStatusCodeAndLocationHeader(object values) { // Arrange var expectedUrl = "testAction"; var formatter = CreateMockFormatter(); var httpContext = GetHttpContext(formatter); var actionContext = GetActionContext(httpContext); var urlHelper = GetMockUrlHelper(expectedUrl); // Act var result = new AcceptedAtRouteResult(routeValues: values, value: null); result.UrlHelper = urlHelper; await result.ExecuteResultAsync(actionContext); // Assert Assert.Equal(StatusCodes.Status202Accepted, httpContext.Response.StatusCode); Assert.Equal(expectedUrl, httpContext.Response.Headers["Location"]); }
public async Task ExecuteResultAsync_ThrowsIfRouteUrlIsNull() { // Arrange var formatter = CreateMockFormatter(); var httpContext = GetHttpContext(formatter); var actionContext = GetActionContext(httpContext); var urlHelper = GetMockUrlHelper(returnValue: null); // Act var result = new AcceptedAtRouteResult( routeName: null, routeValues: new Dictionary <string, object>(), value: null); result.UrlHelper = urlHelper; // Assert await ExceptionAssert.ThrowsAsync <InvalidOperationException>(() => result.ExecuteResultAsync(actionContext), "No route matches the supplied values."); }