public async void Http_500_with_stack_trace_should_be_returned_at_handler_exception() { // Given var middlewareOptions = new CqrsBusMiddlewareOptions { AddStackTrace = true }; var sut = new CqrsBusMiddleware(null, middlewareOptions); var messageBusMock = new Mock <IMessageBus>(); messageBusMock.Setup(x => x.Execute(It.IsAny <string>(), null)) .Throws(new Exception("some exception message")); var httpContext = new DefaultHttpContext(); httpContext.Request.Path = CqrsBusMiddlewareOptions.Default.EndpointUrl; httpContext.Response.Body = new MemoryStream(); // When await sut.InvokeAsync(httpContext, messageBusMock.Object); httpContext.Response.Body.Seek(0, SeekOrigin.Begin); // Then messageBusMock.Verify(x => x.Execute(It.IsAny <string>(), null), Times.Once); httpContext.Response.StatusCode.ShouldBe((int)HttpStatusCode.InternalServerError); var fullExceptionAsJson = await httpContext.Response.Body.ReadAsString(); //// dynamic exception = JsonConvert.DeserializeObject(fullExceptionAsJson); //// ((string)exception.ClassName).ShouldBe("System.Exception"); //// ((string)exception.Message).ShouldBe("some exception message"); //// ((string)exception.Source).ShouldBe("Moq"); fullExceptionAsJson.ShouldContain("some exception message"); }
public void New_options_should_inherit_from_default() { var options = new CqrsBusMiddlewareOptions() { EndpointUrl = "abc" }; options.EndpointUrl.ShouldBe("abc"); options.MessageHeader.ShouldBe("Message"); }
public static IApplicationBuilder UseCqrsBus(this IApplicationBuilder builder, CqrsBusMiddlewareOptions options = null) { if (isConfigured == false) { var serviceProvider = builder.ApplicationServices; var modules = serviceProvider.GetServices <IModule>().ToArray(); var mtp = serviceProvider.GetService <IMessageTypeProvider>(); var htp = serviceProvider.GetService <IHandlerTypeProvider>(); foreach (var module in modules) { module.RegisterCqrsStuff(mtp, htp); } isConfigured = true; } return(builder.UseMiddleware <CqrsBusMiddleware>(options ?? CqrsBusMiddlewareOptions.Default)); }