public void DoesNothingWhenThereAreNoListeners()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     Expect.Never.On(listener1).Method("OnBanana").With(1, 2);
     Expect.Never.On(listener2).Method("OnBanana").With(1, 2);
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void ForwardsCallsToListeners()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.AddListeners(new IBroadcasterTestsListener[] { listener1, listener2 });
     Expect.Once.On(listener1).Method("OnBanana").With(1, 2);
     Expect.Once.On(listener2).Method("OnBanana").With(1, 2);
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void RemoveListener_RemovesListener_EvenWhenHandlingTheEvent()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.AddListeners(new ForgetMeListener(broadcaster) );
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void RemoveListeners_RemovesListeners_IfPassedKnownListeners()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.AddListeners( listener1, listener2 );
     broadcaster.RemoveListeners( listener1, listener2 );
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void RemoveListeners_DoesNothing_IfPassedListenersNotInTheBroadcaster()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.RemoveListeners( listener1, listener2 );
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void RemoveListeners_DoesNothing_IfPassedAnEmptyArray()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.RemoveListeners();
     broadcaster.Listener.OnBanana(1, 2);
 }
 public void ThrowsExceptionWhenNonVoidMethodIsCalled()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.AddListeners(listener1);
     broadcaster.Listener.GetSomething();
 }
 public void RethrowsExceptionWhenListenThorwsException()
 {
     broadcaster = new TypeSafeBroadcaster<IBroadcasterTestsListener>();
     broadcaster.AddListeners(listener1);
     Stub.On(listener1).Method("OnBanana").With(1, 2).Will(Throw.Exception(new ArgumentException()));
     broadcaster.Listener.OnBanana(1, 2);
 }