public void TestDispatch() { IList <string> emissions = new List <string>(); EventHandlers eventHandlers = EventHandlers.CreateBuilder() .Add <TestFibEvent2>(_ => emissions.Add("handled 2 first")) .Add <TestFibEvent2>(_ => emissions.Add("handled 2 second")) .Add <TestFibEvent3>(_ => emissions.Add("handled 3")) .Add <IFibEvent>(_ => emissions.Add("handled generic")) .Build(); TestFibEvent2 testFibEvent2 = new TestFibEvent2(); TestFibEvent3 testFibEvent3 = new TestFibEvent3(); eventHandlers.Dispatch(testFibEvent2); eventHandlers.Dispatch(testFibEvent3); CollectionAssert.AreEqual( new[] { "handled 2 first", "handled 2 second", "handled generic", "handled 3", "handled generic" }, emissions); }
public void TestAdd() { ITestFibEvent1 mockTestFibEvent1 = Mock.Of <ITestFibEvent1>(); Mock.Get(mockTestFibEvent1).Setup(m => m.GetPayload()).Returns("payload"); TestFibEvent2 testFibEvent2 = new TestFibEvent2(); int counter = 0; EventHandlers eventHandlers = EventHandlers.CreateBuilder() .Add <ITestFibEvent1>( testFibEvent1 => Assert.AreEqual("payload", testFibEvent1.GetPayload())) .Add <TestFibEvent2>(e => e.SayHello("Fib")) .Add <IFibEvent>(_ => counter++) .Build(); eventHandlers.Dispatch(mockTestFibEvent1); eventHandlers.Dispatch(testFibEvent2); Assert.AreEqual(2, counter); Mock.Get(mockTestFibEvent1).Verify(m => m.GetPayload()); Mock.Get(mockTestFibEvent1).VerifyNoOtherCalls(); testFibEvent2.AssertMessageCorrect("Fib"); }