public void EventsWithNoListenersDoNotCauseException()
        {
            SingleEventSource  eventSource         = new SingleEventSource();
            EmptyEventListener eventListener       = new EmptyEventListener();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
        }
        public void DerivedMethodWithOverridingAttributeIsUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverridingAttribute eventListener = new DerivedListenerWithOverridingAttribute();
            ReflectionInstrumentationBinder        binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
        }
        public void EventIsAttachedToCorrectListener()
        {
            SingleEventSource eventSource          = new SingleEventSource();
            TwoEventListener  eventListener        = new TwoEventListener();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.AreEqual("CallThis", eventListener.methodCalled);
        }
        public void AttachesSingleEventToSingleListener()
        {
            SingleEventSource               eventSource   = new SingleEventSource();
            SingleEventListener             eventListener = new SingleEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.IsTrue(eventListener.eventWasRaised);
        }
        public void EventCanAttachToHandlerInListenerBase()
        {
            SingleEventSource               eventSource   = new SingleEventSource();
            DerivedSingleEventListener      eventListener = new DerivedSingleEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.IsTrue(eventListener.eventWasRaised);
        }
        public void DerivedMethodWithoutAttributeIsNotUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverriddenNoAttributeListenerMethod eventListener =
                new DerivedListenerWithOverriddenNoAttributeListenerMethod();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.IsFalse(eventListener.eventWasRaised);
        }
        public void DerivedMethodWithoutAttributeIsNotUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverriddenNoAttributeListenerMethod eventListener =
                new DerivedListenerWithOverriddenNoAttributeListenerMethod();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);

            eventSource.Raise();

            Assert.IsFalse(eventListener.eventWasRaised);
        }
        public void AttachesSingleEventToSingleListener()
        {
            SingleEventSource eventSource = new SingleEventSource();
            SingleEventListener eventListener = new SingleEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);

            eventSource.Raise();

            Assert.IsTrue(eventListener.eventWasRaised);
        }
        public void EventCanAttachToHandlerInListenerBase()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedSingleEventListener eventListener = new DerivedSingleEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);

            eventSource.Raise();

            Assert.IsTrue(eventListener.eventWasRaised);
        }
        public void DerivedMethodWithOverridingAttributeIsUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverridingAttribute eventListener = new DerivedListenerWithOverridingAttribute();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);

            eventSource.Raise();
        }
        public void EventsWithNoListenersDoNotCauseException()
        {
            SingleEventSource eventSource = new SingleEventSource();
            EmptyEventListener eventListener = new EmptyEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);
        }
        public void EventIsAttachedToCorrectListener()
        {
            SingleEventSource eventSource = new SingleEventSource();
            TwoEventListener eventListener = new TwoEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();

            Assert.AreEqual("CallThis", eventListener.methodCalled);
        }