示例#1
0
        public void Fire_event_with_one_handler()
        {
            var hub     = new EventHub <TestEvent>();
            var list    = new List <string>();
            var handler = new Handler("one", list);

            hub.AddListener(handler.Handle, handler.PluginId);
            hub.FireEvent(new TestEvent {
                Value = 10
            });

            list.Should().BeEquivalentTo(new[] { "one" });
            handler.Event.Should().NotBeNull();
            handler.Event.Value.Should().Be(10);
        }
示例#2
0
        public void Fire_event_with_three_handlers_with_dependency_chain()
        {
            var hub      = new EventHub <TestEvent>();
            var list     = new List <string>();
            var handler1 = new Handler("one", list);
            var handler2 = new Handler("two", list);
            var handler3 = new Handler("three", list);

            hub.AddListener(handler1.Handle, handler1.PluginId, new[] { handler2.PluginId });
            hub.AddListener(handler2.Handle, handler2.PluginId, new[] { handler3.PluginId });
            hub.AddListener(handler3.Handle, handler3.PluginId);
            hub.FireEvent(new TestEvent {
                Value = 10
            });

            list.Should().BeEquivalentTo(new[] { "three", "two", "one" });
        }
示例#3
0
        public void Empty_event_hub_fire_event()
        {
            var hub = new EventHub <TestEvent>();

            hub.FireEvent(new TestEvent());
        }