public void TestSpeed() { var eventCount = 1000; var subscriberCount = 1000; var universalEventBus = new UniversalEventBus(); for (int i = 0; i < subscriberCount; i++) { var subscriber = new MockEventSubscriberOne(); universalEventBus.Subscribe <TestEventArgsOne>(subscriber.Handle); } var events = new List <TestEventArgsOne>(); for (int i = 0; i < eventCount; i++) { events.Add(new TestEventArgsOne()); } var stopwatch = new Stopwatch(); stopwatch.Start(); foreach (var testEventArgsOne in events) { universalEventBus.Broadcast(testEventArgsOne); } Console.WriteLine(stopwatch.ElapsedMilliseconds); Assert.Less(stopwatch.ElapsedMilliseconds, 2500); }
public void TestSelectivelySendsMessages() { var testEventArgsOne = new TestEventArgsOne(); var testEventArgsTwo = new TestEventArgsTwo(); var universalEventBus = new UniversalEventBus(); universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne); universalEventBus.Subscribe <TestEventArgsTwo>(EventHandlerTwo); universalEventBus.Broadcast(testEventArgsOne); Assert.AreSame(testEventArgsOne, _argsOneRecieved); Assert.IsNull(_argsTwoRecieved); universalEventBus.Broadcast(testEventArgsTwo); Assert.AreSame(testEventArgsTwo, _argsTwoRecieved); }
public void TestBroadcastsToSubscribers() { var testEventArgsOne = new TestEventArgsOne(); var universalEventBus = new UniversalEventBus(); universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne); universalEventBus.Broadcast(testEventArgsOne); Assert.AreEqual(testEventArgsOne, _argsOneRecieved); }
public void TestUnsubscribes() { var testEventArgsOne = new TestEventArgsOne(); var universalEventBus = new UniversalEventBus(); universalEventBus.Subscribe <TestEventArgsOne>(EventHandlerOne); universalEventBus.Unsubscribe <TestEventArgsOne>(EventHandlerOne); universalEventBus.Broadcast(testEventArgsOne); Assert.IsNull(_argsOneRecieved); }