public async Task PagesControllerBodyReturnsNotFoundWhenNoRedirectLocation(string mediaTypeName) { // Arrange var pageRequestModel = new PageRequestModel { Location1 = "a-location-name", Location2 = "an-article-name", }; ContentPageModel?expectedResult = null; ContentPageModel?expectedRedirectResult = null; var controller = BuildPagesController(mediaTypeName); A.CallTo(() => FakePagesControlerHelpers.GetContentPageAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedResult); A.CallTo(() => FakePagesControlerHelpers.GetRedirectedContentPageAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedRedirectResult); // Act var result = await controller.Body(pageRequestModel).ConfigureAwait(false); // Assert A.CallTo(() => FakePagesControlerHelpers.GetContentPageAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => FakePagesControlerHelpers.GetRedirectedContentPageAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); var statusResult = Assert.IsType <NotFoundResult>(result); A.Equals((int)HttpStatusCode.NotFound, statusResult.StatusCode); controller.Dispose(); }
public async Task PagesControllerBodyReturnsRedirectWhenRedirectLocationExists(string mediaTypeName) { // Arrange var pageRequestModel = new PageRequestModel { Location1 = "a-location-name", Location2 = "an-article-name", }; ContentPageModel?expectedResult = null; var expectedRedirectResult = A.Fake <ContentPageModel>(); var controller = BuildPagesController(mediaTypeName); expectedRedirectResult.PageLocation = "/" + pageRequestModel.Location1; expectedRedirectResult.CanonicalName = pageRequestModel.Location2; A.CallTo(() => FakePagesControlerHelpers.GetContentPageAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedResult); A.CallTo(() => FakePagesControlerHelpers.GetRedirectedContentPageAsync(A <string> .Ignored, A <string> .Ignored)).Returns(expectedRedirectResult); // Act var result = await controller.Body(pageRequestModel).ConfigureAwait(false); // Assert A.CallTo(() => FakePagesControlerHelpers.GetContentPageAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => FakePagesControlerHelpers.GetRedirectedContentPageAsync(A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); var statusResult = Assert.IsType <RedirectResult>(result); statusResult.Url.Should().NotBeNullOrWhiteSpace(); A.Equals(true, statusResult.Permanent); controller.Dispose(); }