public void MutipleRequestHandler_ShouldResponseForPipeline_ReturnFirst() { var eventBus = new InProcessServiceBus(); eventBus.AddRequestHandler <TestRequestData>((eventData, context) => { return(Task.Run(() => { context.Response = eventData.Msg + "1"; context.IsEnd = true; })); }); eventBus.AddRequestHandler <TestRequestData>((eventData, context) => { return(Task.Run(() => { context.Response = context.Response + "2"; })); }); var testRequestData = new TestRequestData() { Msg = "success" }; var result = eventBus.Send <string>(testRequestData); Assert.AreEqual(testRequestData.Msg + "1", result); }
public async Task ShouldRaiseException_WhenSendSetOption() { var eventBus = new InProcessServiceBus(); eventBus.AddDynamicRequestHandler(typeof(TestRequestData).Name, (requestData, requetContext) => { return(Task.Run(() => { throw new Exception("Test Exception"); })); }); var testRequestData = new TestRequestData() { Msg = "success" }; await eventBus.SendAsync <string>(testRequestData, new TriggerOption(false)); }
public void Request_ShouldResponse() { var eventBus = new InProcessServiceBus(); eventBus.AddRequestHandler <TestRequestData>((eventData, context) => { return(Task.Run(() => { context.Response = eventData.Msg; })); }); var testRequestData = new TestRequestData() { Msg = "success" }; var result = eventBus.Send <string>(testRequestData); Assert.AreEqual(testRequestData.Msg, result); }
public void DynamicRequest_ShouldNotResponse_AfterRemove() { var eventBus = new InProcessServiceBus(); Func <dynamic, IRequestHandlerContext, Task> delateFunc = (eventData, context) => { return(Task.Run(() => { context.Response = (string)eventData.Msg; })); }; eventBus.AddDynamicRequestHandler(typeof(TestRequestData).Name, delateFunc); eventBus.RemoveDynamicRequestHandler(typeof(TestRequestData).Name, delateFunc); var testRequestData = new TestRequestData() { Msg = "success" }; var result = eventBus.Send <string>(testRequestData); Assert.AreEqual(null, result); }