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'."); }
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" }); }
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); }