public void SetHttpContextAddsAllIntendedExtendedProperties() { var correlationId = "CorrelationId1"; var forwardedFor = "SomeForwardedForValue1"; var path = "SomePathValue1"; var referrer = new Uri("http://SomeReferrerValue1"); var remoteIpAddress = "10.0.0.1"; var requestMethod = "SomeRequestMethodValue1"; var userAgent = "SomeUserAgentValue1"; var endpointMock = new Mock <IEndpointFeature>(); endpointMock.Setup(em => em.Endpoint).Returns(new RouteEndpoint(rd => Task.CompletedTask, RoutePatternFactory.Pattern(path), 0, null, null) { }); var featureMock = new Mock <IFeatureCollection>(); featureMock.Setup(fm => fm[typeof(IEndpointFeature)]).Returns(endpointMock.Object); var connectionMock = new Mock <ConnectionInfo>(); connectionMock.Setup(cm => cm.RemoteIpAddress).Returns(IPAddress.Parse(remoteIpAddress)); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(CorrelationId, correlationId); headers.Set(ForwardedFor, forwardedFor); headers.Set(UserAgent, userAgent); headers.Referer = referrer; var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); requestMock.Setup(rm => rm.Method).Returns(requestMethod); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(new Dictionary <object, object>()); contextMock.Setup(cm => cm.Features).Returns(featureMock.Object); contextMock.Setup(cm => cm.Connection).Returns(connectionMock.Object); var logEntry = new LogEntry(); logEntry.SetHttpContext(contextMock.Object); logEntry.CorrelationId.Should().Be(correlationId); logEntry.ExtendedProperties["X-Forwarded-For"].Should().Be(forwardedFor); logEntry.ExtendedProperties["Path"].Should().Be(path); logEntry.ExtendedProperties["Referrer"].Should().Be(referrer.ToString()); logEntry.ExtendedProperties["RemoteIpAddress"].Should().Be(remoteIpAddress); logEntry.ExtendedProperties["Method"].Should().Be(requestMethod.ToUpperInvariant()); logEntry.ExtendedProperties["UserAgent"].Should().Be(userAgent); }
} // prevent external instantiation #region HTTP Settings // Note that some headers are restricted like Host. public void SetRequestHeader(string headerName, string headerValue) { ThrowIfReadOnly(); // WebHeaderCollection performs validation of headerName/headerValue. RequestHeaders.Set(headerName, headerValue); }
public void ForwardedForContextProviderConstructor1() { var forwardedFor = new StringValues("SomeForwardedForValue1"); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(HeaderNames.ForwardedFor, forwardedFor); var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(new Dictionary <object, object>()); var accessorMock = new Mock <IHttpContextAccessor>(); accessorMock.Setup(am => am.HttpContext).Returns(contextMock.Object); var contextProvider = new ForwardedForContextProvider(accessorMock.Object); contextProvider.ForwardedFor.Should().BeEquivalentTo(forwardedFor); }
public void CorrelationIdContextProviderConstructor1() { var correlationId = new StringValues("CorrelationId1"); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(CorrelationId, correlationId); var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(new Dictionary <object, object>()); var accessorMock = new Mock <IHttpContextAccessor>(); accessorMock.Setup(am => am.HttpContext).Returns(contextMock.Object); var contextProvider = new CorrelationIdContextProvider(accessorMock.Object); contextProvider.Accessor.CorrelationId.Should().Be(correlationId); }
private static Mock <IHttpContextAccessor> SetUpFullHttpContextAccessor(StringValues correlationId, StringValues forwardedFor, StringValues path, Uri referrer, string remoteIpAddress, string requestMethod, StringValues userAgent) { var endpointMock = new Mock <IEndpointFeature>(); endpointMock.Setup(em => em.Endpoint).Returns(new RouteEndpoint(rd => Task.CompletedTask, RoutePatternFactory.Pattern(path), 0, null, null) { }); var featureMock = new Mock <IFeatureCollection>(); featureMock.Setup(fm => fm[typeof(IEndpointFeature)]).Returns(endpointMock.Object); var connectionMock = new Mock <ConnectionInfo>(); connectionMock.Setup(cm => cm.RemoteIpAddress).Returns(IPAddress.Parse(remoteIpAddress)); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(CorrelationId, correlationId); headers.Set(ForwardedFor, forwardedFor); headers.Set(UserAgent, userAgent); headers.Referer = referrer; var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); requestMock.Setup(rm => rm.Method).Returns(requestMethod); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(new Dictionary <object, object>()); contextMock.Setup(cm => cm.Features).Returns(featureMock.Object); contextMock.Setup(cm => cm.Connection).Returns(connectionMock.Object); var accessorMock = new Mock <IHttpContextAccessor>(); accessorMock.Setup(am => am.HttpContext).Returns(contextMock.Object); return(accessorMock); }
public void GetCorrelationId() { var correlationId = new StringValues("CorrelationId1"); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(HeaderNames.CorrelationId, correlationId); var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(new Dictionary <object, object>()); contextMock.Object.GetCorrelationId().Should().BeEquivalentTo(correlationId); }
public void GetCorrelationIdAccessor2() { var correlationId = new StringValues("CorrelationId1"); var items = new Dictionary <object, object>(); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(HeaderNames.CorrelationId, correlationId); var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); contextMock.Setup(cm => cm.Items).Returns(items); var accessor = contextMock.Object.GetCorrelationIdAccessor(); accessor.Should().NotBeNull(); accessor.CorrelationId.Should().Be(correlationId); }
public void UserAgentContextProviderConstructor1() { var userAgent = new StringValues("SomeUserAgentValue1"); var headers = new RequestHeaders(new HeaderDictionary()); headers.Set(Microsoft.Net.Http.Headers.HeaderNames.UserAgent, userAgent); var requestMock = new Mock <HttpRequest>(); requestMock.Setup(rm => rm.Headers).Returns(headers.Headers); var contextMock = new Mock <HttpContext>(); contextMock.Setup(cm => cm.Request).Returns(requestMock.Object); var accessorMock = new Mock <IHttpContextAccessor>(); accessorMock.Setup(am => am.HttpContext).Returns(contextMock.Object); var contextProvider = new UserAgentContextProvider(accessorMock.Object); contextProvider.UserAgent.ToString().Should().Be(userAgent); }