public void DynamicSubscription_ShouldNotTrigger_AfterRemove() { var eventBus = new InProcessServiceBus(); var result = "error"; Func <dynamic, Task> delateFunc = eventData => { return(Task.Run(() => { result = eventData.Msg; })); }; eventBus.AddDynamicSubscription(typeof(TestEventData).Name, delateFunc); var testEventData = new TestEventData() { Msg = "success" }; eventBus.PublishSync(testEventData); Assert.AreEqual(testEventData.Msg, result); result = "error"; eventBus.RemoveDynamicSubscription(typeof(TestEventData).Name, delateFunc); eventBus.PublishSync(testEventData); Assert.AreNotEqual(testEventData.Msg, result); }
public async Task ShouldLogMessage_WhenSetLogDelate() { var eventBus = new InProcessServiceBus(); var logMsg = ""; var testException = new Exception("Test Exception"); Exception catchedException = null; eventBus.OnLogBusMessage += (logLevel, msg, ex) => { logMsg = msg; catchedException = ex; }; eventBus.AddDynamicSubscription(typeof(TestEventData).Name, eventData => { return(Task.Run(() => { throw testException; })); }); var testEventData = new TestEventData() { Msg = "success" }; await eventBus.Publish(testEventData); Assert.AreNotEqual(0, logMsg.Length); Assert.AreEqual(testException, catchedException); }
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 void MutipleGenericRequestHandler_ByDifferentNameSpace_ShouldResponse() { var eventBus = new InProcessServiceBus(); eventBus.AddRequestHandler <TestRequestDataT <TestEventData> >((eventData, context) => { return(Task.Run(() => { context.Response = eventData.Msg + "1"; })); }); eventBus.AddRequestHandler <TestRequestDataT <TestDemo.TestEventData> >((eventData, context) => { return(Task.Run(() => { context.Response = context.Response + "2"; })); }); var testRequestData = new TestRequestDataT <TestEventData>(new TestEventData()) { Msg = "success" }; var result = eventBus.Send <string>(testRequestData); Assert.AreEqual(testRequestData.Msg + "12", result); }
public void MutipleGenericSubscription_ByDifferentNameSpace_ShouldTrigger() { var eventBus = new InProcessServiceBus(); var result = "error"; var result2 = "error"; eventBus.AddSubscription <TestEventDataT <TestEventData> >(eventData => { return(Task.Run(() => { result = eventData.Msg; })); }); eventBus.AddSubscription <TestEventDataT <TestDemo.TestEventData> >(eventData => { return(Task.Run(() => { result2 = eventData.Msg; })); }); var testEventData = new TestEventDataT <TestEventData>(new TestEventData()) { Msg = "success" }; eventBus.PublishSync(testEventData); Assert.AreEqual(testEventData.Msg, result); Assert.AreEqual(testEventData.Msg, result2); }
public void ShouldSupport_MutipleSameHandler() { var eventBus = new InProcessServiceBus(); var result1 = "error"; var result2 = "error"; eventBus.AddSubscription <TestEventData>(eventData => { return(Task.Run(() => { result1 = eventData.Msg; })); }); eventBus.AddSubscription <TestEventData>(eventData => { return(Task.Run(() => { result2 = eventData.Msg; })); }); var testEventData = new TestEventData() { Msg = "success" }; eventBus.PublishSync(testEventData); Assert.AreEqual(testEventData.Msg, result1); Assert.AreEqual(testEventData.Msg, result2); }
public void MutipleSubscription_ShouldTrigger() { var eventBus = new InProcessServiceBus(); var result = "error"; eventBus.AddSubscription <TestEventData>(eventData => { return(Task.Run(() => { result = eventData.Msg + "1"; })); }); eventBus.AddSubscription <TestEventData>(eventData => { return(Task.Run(() => { result = eventData.Msg + "2"; })); }); var testEventData = new TestEventData() { Msg = "success" }; eventBus.PublishSync(testEventData); Assert.AreEqual(testEventData.Msg + "2", result); }
public SagaTests() { saga = new SagaToTest(serviceBus, inMemorySagaRepository); serviceBus = new InProcessServiceBus(typeof(FakeStartingCommand), new Dictionary <Type, Event>() { { typeof(FakeStep2Command), new FakeResponse(new MyDomainId(Guid.NewGuid()), correlationId, "zxc", "user") } }); }
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 async Task ShouldRaiseException_WhenPublishSetOption() { var eventBus = new InProcessServiceBus(); eventBus.AddDynamicSubscription(typeof(TestEventData).Name, eventData => { return(Task.Run(() => { throw new Exception("Test Exception"); })); }); var testEventData = new TestEventData() { Msg = "success" }; await eventBus.Publish(testEventData, 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 SubscriptionEventDataWithParam_ShouldTrigger() { var eventBus = new InProcessServiceBus(); var result = "error"; eventBus.AddSubscription <TestEventDataWithParam>(eventData => { return(Task.Run(() => { result = eventData.Msg; })); }); var testEventData = new TestEventDataWithParam("success"); eventBus.PublishSync(testEventData); Assert.AreEqual(testEventData.Msg, result); }
public async Task DynamicSubscription_ShouldTrigger() { var eventBus = new InProcessServiceBus(); var result = "error"; eventBus.AddDynamicSubscription(typeof(TestEventData).Name, eventData => { return(Task.Run(() => { result = eventData.Msg; })); }); var testEventData = new TestEventData() { Msg = "success" }; await eventBus.Publish(testEventData); Assert.AreEqual(testEventData.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); }