public async Task AuthenticateAsync_Traces_ErrorResult() { // Arrange IHttpActionResult result = new AuthenticationFailureResult(); CancellationToken cancellationToken = CreateCancellationToken(); Mock <IAuthenticationFilter> filterMock = new Mock <IAuthenticationFilter>(); filterMock .Setup( f => f.AuthenticateAsync( It.IsAny <HttpAuthenticationContext>(), It.IsAny <CancellationToken>() ) ) .Callback( (HttpAuthenticationContext context, CancellationToken token) => context.ErrorResult = result ) .Returns(Task.FromResult <object>(null)); TraceRecord record = null; ITraceWriter tracer = CreateTracer( (r) => { record = r; } ); IAuthenticationFilter product = CreateProductUnderTest(filterMock.Object, tracer); const string expectedMessage = "The authentication filter encountered an error. ErrorResult=" + "'System.Web.Http.Tracing.Tracers.AuthenticationFilterTracerTests+AuthenticationFailureResult'."; using (HttpRequestMessage expectedRequest = CreateRequest()) { HttpAuthenticationContext authenticationContext = CreateAuthenticationContext( expectedRequest ); // Act await product.AuthenticateAsync(authenticationContext, cancellationToken); // Assert Assert.NotNull(record); Assert.Same(expectedRequest, record.Request); Assert.Same(TraceCategories.FiltersCategory, record.Category); Assert.Equal(TraceLevel.Info, record.Level); Assert.Equal(TraceKind.End, record.Kind); Assert.Equal(filterMock.Object.GetType().Name, record.Operator); Assert.Equal("AuthenticateAsync", record.Operation); Assert.Null(record.Exception); Assert.Equal(expectedMessage, record.Message); } }
public void CreateAndCheckProperties() { var result = new AuthenticationFailureResult("my reason", new HttpRequestMessage(HttpMethod.Get, "http://localhost")); Assert.That(result, Is.Not.Null); Assert.That(result.ReasonPhrase, Is.Not.Null); Assert.That(result.ReasonPhrase, Is.EqualTo("my reason")); Assert.That(result.Request, Is.Not.Null); var response = result.ExecuteAsync(new CancellationToken()).Result; Assert.That(response, Is.Not.Null); Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized)); }
public void AuthenticateAsync_Traces_ErrorResult() { // Arrange IHttpActionResult result = new AuthenticationFailureResult(); CancellationToken cancellationToken = CreateCancellationToken(); Mock<IAuthenticationFilter> filterMock = new Mock<IAuthenticationFilter>(); filterMock.Setup(f => f.AuthenticateAsync(It.IsAny<HttpAuthenticationContext>(), It.IsAny<CancellationToken>())) .Callback((HttpAuthenticationContext context, CancellationToken token) => context.ErrorResult = result) .Returns(Task.FromResult<object>(null)); TraceRecord record = null; ITraceWriter tracer = CreateTracer((r) => { record = r; }); IAuthenticationFilter product = CreateProductUnderTest(filterMock.Object, tracer); const string expectedMessage = "The authentication filter encountered an error. ErrorResult=" + "'System.Web.Http.Tracing.Tracers.AuthenticationFilterTracerTests+AuthenticationFailureResult'."; using (HttpRequestMessage expectedRequest = CreateRequest()) { HttpAuthenticationContext authenticationContext = CreateAuthenticationContext(expectedRequest); // Act Task task = product.AuthenticateAsync(authenticationContext, cancellationToken); // Assert Assert.NotNull(task); task.Wait(); Assert.NotNull(record); Assert.Same(expectedRequest, record.Request); Assert.Same(TraceCategories.FiltersCategory, record.Category); Assert.Equal(TraceLevel.Info, record.Level); Assert.Equal(TraceKind.End, record.Kind); Assert.Equal(filterMock.Object.GetType().Name, record.Operator); Assert.Equal("AuthenticateAsync", record.Operation); Assert.Null(record.Exception); Assert.Equal(expectedMessage, record.Message); } }