public async Task Test_multi_event_publish_succeed() { //mock IEventHandler<MsgEvent> Mock <IEventHandler <MsgEvent> > mockMsgEventHandler = new Mock <IEventHandler <MsgEvent> >(); //mock IEventHandler<LostEvent> Mock <IEventHandler <LostEvent> > mockLostEventHandler = new Mock <IEventHandler <LostEvent> >(); var testMsgEvent = new MsgEvent() { Message = "test_msg" }; var testLostEvent = new LostEvent() { LostInfo = "test_LostInfo" }; //await new EventBus(new EventHandleProvider(mockMsgEventHandler.Object, mockLostEventHandler.Object)) // .Publish(testMsgEvent) // .DoAsync(eventBus => eventBus.Publish(testLostEvent)) // .DoAsync(eventBus => eventBus.Publish(testLostEvent)); await new EventBus(new EventHandleProvider(mockMsgEventHandler.Object, mockLostEventHandler.Object)) .Publish(testMsgEvent) .Publish(testLostEvent) .Publish(testLostEvent); mockMsgEventHandler.Verify(obj => obj.Handle(It.Is <MsgEvent>(msgEvent => msgEvent.Message == testMsgEvent.Message)), Times.Once); mockLostEventHandler.Verify(obj => obj.Handle(It.Is <LostEvent>(lostEvent => lostEvent.LostInfo == testLostEvent.LostInfo)), Times.Exactly(2)); }
public async Task Test_multi_event_publish_succeed() { var container = new ServiceContainer(); container.Register <IDoSomething, DoSomething>(); //mock and register IEventHandler<MsgEvent> Mock <IEventHandler <MsgEvent> > mockMsgEventHandler = new Mock <IEventHandler <MsgEvent> >(); container.Register <IEventHandler <MsgEvent> >(factory => mockMsgEventHandler.Object); //mock and register IEventHandler<LostEvent> Mock <IEventHandler <LostEvent> > mockLostEventHandler = new Mock <IEventHandler <LostEvent> >(); container.Register <IEventHandler <LostEvent> >(factory => mockLostEventHandler.Object); var testMsgEvent = new MsgEvent() { Message = "test_msg" }; var testLostEvent = new LostEvent() { LostInfo = "test_LostInfo" }; IEventBus eventBus = new EventBus(this.GenerateEventHandleProvider(container)); await eventBus.Publish(testMsgEvent); await eventBus.Publish(testLostEvent); await eventBus.Publish(testLostEvent); mockMsgEventHandler.Verify(obj => obj.Handle(It.Is <MsgEvent>(msgEvent => msgEvent.Message == testMsgEvent.Message)), Times.Once); mockLostEventHandler.Verify(obj => obj.Handle(It.Is <LostEvent>(lostEvent => lostEvent.LostInfo == testLostEvent.LostInfo)), Times.Exactly(2)); }
public async Task Test_publish_MsgEvent_and_LostEvent() { var container = new ServiceContainer(); Mock <IDoSomething> mockDoSomething = new Mock <IDoSomething>(); container.Register <IDoSomething>(factory => mockDoSomething.Object); var msgEvent = new MsgEvent() { Message = "你好" }; var lostEvent = new LostEvent() { LostInfo = "迷失" }; SampleEventIOCFactory.RegisterEventHandlersFromAssemblies(container, () => new PerContainerLifetime(), this.GetType().Assembly); IEventBus eventBus = new EventBus(this.GenerateEventHandleProvider(container)); await eventBus.Publish(msgEvent); await eventBus.Publish(lostEvent); mockDoSomething.Verify(obj => obj.JustDoIt(It.Is <string>(text => text == msgEvent.Message)), Times.Once); mockDoSomething.Verify(obj => obj.JustDoIt(It.Is <string>(text => text == lostEvent.LostInfo)), Times.Exactly(2)); }
public async Task Test_publish_MsgEvent_and_LostEvent() { var msgEvent = new MsgEvent() { Message = "你好" }; var lostEvent = new LostEvent() { LostInfo = "迷失" }; IEventBus eventBus = new EventBus(this.GenerateEventHandleProvider()); await eventBus.Publish(msgEvent); await eventBus.Publish(lostEvent); Assert.AreEqual(2, msgEvent.GetMessageExecuteTimes); Assert.AreEqual(2, lostEvent.GetLostInfoExecuteTimes); }
void Lost() { LostEvent?.Invoke(this); Destroy(gameObject); }
void BallLost() { LostEvent?.Invoke(this); SimplePool.Despawn(gameObject); }