Пример #1
0
        public void Fire_event_with_two_handlers_with_missing_dependency()
        {
            var hub      = new EventHub <TestEvent>();
            var list     = new List <string>();
            var handler1 = new Handler("one", list);
            var handler2 = new Handler("two", list);

            hub.AddListener(handler1.Handle, handler1.PluginId, new[] { "dummy" });
            hub.AddListener(handler2.Handle, handler2.PluginId);

            hub.Invoking(x => x.FireEvent(new TestEvent {
                Value = 10
            }))
            .Should().Throw <ConfigurationException>().WithMessage("Entry 'one' has a dependency on missing entry 'dummy'.");
        }
Пример #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 Fire_event_with_two_handlers()
        {
            var hub      = new EventHub <TestEvent>();
            var list     = new List <string>();
            var handler1 = new Handler("one", list);
            var handler2 = new Handler("two", list);

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

            list.Should().BeEquivalentTo(new[] { "one", "two" });
            handler1.Event.Should().NotBeNull();
            handler1.Event.Value.Should().Be(10);

            handler2.Event.Should().NotBeNull();
            handler2.Event.Value.Should().Be(10);
        }