public void AutowireAllEventsOnSource() { // create the event source, and a listener to wire to an event (s) on the source PingSource source = new PingSource(); PingListener listener = new PingListener(); // wire them up (any methods on the listener that have a signature compatible // with any event exposed on the source will be wired up) IEventHandlerValue wirer = new AutoWiringEventHandlerValue(); wirer.Wire(source, listener); // raise the event (s) on the source source.OnPinging(); source.OnPing(); source.OnPinged(); // ascertain that the event listener was indeed notified of the raised event Assert.IsTrue(listener.GotPinging, "The listener was not notified of the raised event."); Assert.IsTrue(listener.GotPing, "The listener was not notified of the raised event."); Assert.IsTrue(listener.GotPinged, "The listener was not notified of the raised event."); }
public void AllCompatibleSignaturesAreWired() { // create the event source, and a listener to wire to an event (s) on the source PingSource source = new PingSource(); PingListener listener = new PingListener(); // wire them up IEventHandlerValue wirer = new AutoWiringEventHandlerValue(); wirer.EventName = "Pinging"; wirer.MethodName = ".+"; // both OnPinging and OnPinged have compatible sigs :'( wirer.Wire(source, listener); // raise the event (s) on the source source.OnPinging(); // ascertain that the event listener was indeed notified of the raised event Assert.IsTrue(listener.GotPinging, "The listener was not notified of the raised event."); Assert.IsFalse(listener.GotPing, "The listener was (incorrectly) notified of the raised event."); // the moral of the story is... // don't use greedy method name regex's for autowiring, be explicit Assert.IsTrue(listener.GotPinged, "The listener was not notified of the raised event."); }
public void AllCompatibleSignaturesAreWired () { // create the event source, and a listener to wire to an event (s) on the source PingSource source = new PingSource (); PingListener listener = new PingListener (); // wire them up IEventHandlerValue wirer = new AutoWiringEventHandlerValue (); wirer.EventName = "Pinging"; wirer.MethodName = ".+"; // both OnPinging and OnPinged have compatible sigs :'( wirer.Wire (source, listener); // raise the event (s) on the source source.OnPinging (); // ascertain that the event listener was indeed notified of the raised event Assert.IsTrue (listener.GotPinging, "The listener was not notified of the raised event."); Assert.IsFalse (listener.GotPing, "The listener was (incorrectly) notified of the raised event."); // the moral of the story is... // don't use greedy method name regex's for autowiring, be explicit Assert.IsTrue (listener.GotPinged, "The listener was not notified of the raised event."); }
public void AutowireAllEventsOnSource () { // create the event source, and a listener to wire to an event (s) on the source PingSource source = new PingSource (); PingListener listener = new PingListener (); // wire them up (any methods on the listener that have a signature compatible // with any event exposed on the source will be wired up) IEventHandlerValue wirer = new AutoWiringEventHandlerValue (); wirer.Wire (source, listener); // raise the event (s) on the source source.OnPinging (); source.OnPing (); source.OnPinged (); // ascertain that the event listener was indeed notified of the raised event Assert.IsTrue (listener.GotPinging, "The listener was not notified of the raised event."); Assert.IsTrue (listener.GotPing, "The listener was not notified of the raised event."); Assert.IsTrue (listener.GotPinged, "The listener was not notified of the raised event."); }