public HomeOrchestratorLogger(
     ICoreLogger logger,
     CorrelationProvider correlationProvider)
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _correlationProvider = correlationProvider ?? throw new ArgumentNullException(nameof(correlationProvider));
 }
        public async Task InvokeAsync_FindsCorrelationHeader()
        {
            var correlationId         = "1234";
            var context               = new DefaultHttpContext();
            var correlationProvider   = new CorrelationProvider();
            var correlationMiddleware = new LoggingCorrelationMiddleware(correlationProvider, new NullLogger <LoggingCorrelationMiddleware>(), obtainCorrelationIdFromRequestHeaders: true);

            context.Request.Headers.Add("X-Request-Id", correlationId);
            await correlationMiddleware.InvokeAsync(context, (innerHttpContext) => Task.FromResult(0));

            Assert.AreEqual(correlationId, correlationProvider.GetCorrelationId());
        }
Esempio n. 3
0
        public static IServiceCollection AddLoggingCorrelation(this IServiceCollection services, string correlationIdHeaderName = "x-request-id", bool obtainCorrelationIdFromRequestHeaders = false)
        {
            services.TryAddScoped <ICorrelationProvider>(ILoggerFactory => {
                var provider = new CorrelationProvider(correlationIdHeaderName);
                return(provider);
            });
            services.TryAddScoped <CorrelationProviderAccessor>();
            services.TryAddScoped <LoggingCorrelationMiddleware>(fact => {
                return(new LoggingCorrelationMiddleware(fact.GetRequiredService <ICorrelationProvider>(), fact.GetRequiredService <ILogger <LoggingCorrelationMiddleware> >(), correlationIdHeaderName, obtainCorrelationIdFromRequestHeaders));
            });

            return(services);
        }
Esempio n. 4
0
        public void AddCorrelationId_without_existing_correlationId_set_correlationId()
        {
            var correlationId = Guid.NewGuid().ToString("D");
            var configuration = Substitute.For <IConfiguration>();

            configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey);

            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext());

            var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor);

            correlationIdProvider.AddCorrelationId();

            httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey].Should().NotBeNullOrEmpty();
        }
Esempio n. 5
0
        public void AddCorrelationId_with_correlationId_set_does_change_correlationId()
        {
            var correlationId = Guid.NewGuid().ToString("D");
            var configuration = Substitute.For <IConfiguration>();

            configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey);

            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext());
            httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey] = correlationId;

            var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor);

            correlationIdProvider.AddCorrelationId();

            httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey].Should().BeEquivalentTo(correlationId);
        }
Esempio n. 6
0
        private (Mock <ILogger <CoreLogger> > LoggerStub, CorrelationProvider Correlation, CausationProvider Causation) GetHelpers()
        {
            var loggerStub = new Mock <ILogger <CoreLogger> >();

            var httpContext         = new DefaultHttpContext();
            var httpRequest         = new DefaultHttpRequest(httpContext);
            var httpContextAccessor = new HttpContextAccessor
            {
                HttpContext = httpContext
            };

            var correlation = CorrelationProvider.Create();
            var causation   = new CausationProvider(httpContextAccessor);

            httpRequest.Headers.Add("X-Correlation-ID", correlation.CorrelationId.ToString());

            return(loggerStub, correlation, causation);
        }
Esempio n. 7
0
        public void GetCorrelation_return_correlation_from_request_header()
        {
            var configuration = Substitute.For <IConfiguration>();

            var correlationId = Guid.NewGuid().ToString("D");

            configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey);

            var groupId = Guid.NewGuid().ToString("D");

            configuration[CorrelationProvider.CorrelationIdConfigKey].Returns(CorrelationProvider.DefaultCorrelationIdHeaderKey);

            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext());
            httpContextAccessor.HttpContext.Request.Headers[CorrelationProvider.DefaultCorrelationIdHeaderKey] = correlationId;

            var correlationIdProvider = new CorrelationProvider(configuration, httpContextAccessor);

            correlationIdProvider.GetCorrelationId().Should().Be(correlationId);
        }
Esempio n. 8
0
 public ProductClient(CorrelationProvider correlationProvider)
 {
     this.DefaultRequestHeaders.Add(HttpConstants.Headers.CorrelationId, correlationProvider);
     this.BaseAddress = new Uri("http://localhost:5000/api/products/", UriKind.RelativeOrAbsolute);
 }
 public static IServiceCollection AddCorrelationAndCausation(this IServiceCollection services)
 {
     return(services
            .AddScoped(s => CorrelationProvider.Create())
            .AddScoped <CausationProvider>());
 }
 public ExceptionHandlerLogger(ICoreLogger logger, CorrelationProvider correlationProvider)
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _correlationProvider = correlationProvider ?? throw new ArgumentNullException(nameof(correlationProvider));
 }