public async Task Given_CorrelationId_NotPresent_ShouldThrow() { // Arrange var idProvider = Substitute.For <ICorrelationIdProvider>(); var options = new RequestCorrelationOptions(true, new List <ICheckUrl>()); var next = Substitute.For <RequestDelegate>(); var sut = new CorrelateRequestMiddleware(next, options, idProvider); var context = GetDefaultHttpContext(); // Act // Assert await Assert.ThrowsAsync <NotCorrelatedRequestException>(() => sut.Invoke(context)); }
public async Task Given_CorrelationId_IsPresent_ThenInvokeNextMiddlewareComponent(string header) { // Arrange var idProvider = Substitute.For <ICorrelationIdProvider>(); var options = new RequestCorrelationOptions(true, new List <ICheckUrl>()); var next = Substitute.For <RequestDelegate>(); var sut = new CorrelateRequestMiddleware(next, options, idProvider); var context = GetDefaultHttpContext(); context.Request.Headers.Add(header, Guid.NewGuid().ToString()); // Act await sut.Invoke(context); // Assert await next.Received(1).Invoke(context); }
Given_CorrelationId_NotPresent_WhenOptionsNotEnforcingMessageCorrelation_ThenRequestShouldContainGeneratedId() { // Arrange var idProvider = Substitute.For <ICorrelationIdProvider>(); var options = new RequestCorrelationOptions(false, new List <ICheckUrl>()); var next = Substitute.For <RequestDelegate>(); var sut = new CorrelateRequestMiddleware(next, options, idProvider); var context = GetDefaultHttpContext(); idProvider.GenerateId().Returns("my-id"); // Act await sut.Invoke(context); // Assert await next.Received(1).Invoke(Arg.Is <HttpContext>(c => c.Request.Headers.Values.Contains("my-id"))); }