public void AuthorizationFailedFires2WmiEvents()
        {
            AzManAuthorizationProvider instrumentedAzman          = new AzManAuthorizationProvider(data.StoreLocation, data.Application, data.AuditIdentifierPrefix, data.Scope);
            AuthorizationProviderInstrumentationListener listener = new AuthorizationProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(instrumentedAzman.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(2))
            {
                bool res = instrumentedAzman.Authorize(cryptographyProviderCollection, unauthorizedTask);

                eventWatcher.WaitForEvents();

                Assert.AreEqual(2, eventWatcher.EventsReceived.Count);

                Assert.AreEqual("AuthorizationCheckPerformedEvent", eventWatcher.EventsReceived[0].ClassPath.ClassName);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[0].Properties["UserName"].Value);
                Assert.AreEqual(unauthorizedTask, eventWatcher.EventsReceived[0].Properties["TaskName"].Value);

                Assert.AreEqual("AuthorizationCheckFailedEvent", eventWatcher.EventsReceived[1].ClassPath.ClassName);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[1].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[1].Properties["UserName"].Value);
                Assert.AreEqual(unauthorizedTask, eventWatcher.EventsReceived[1].Properties["TaskName"].Value);
            }
        }
 public void SetUp()
 {
     db = new SqlDatabase(connectionString);
     listener = new MockListener();
     ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
     binder.Bind(db.GetInstrumentationEventProvider(), listener);
 }
Example #3
0
        public void AuthorizationFailedFires2WmiEvents()
        {
            AzManAuthorizationProvider instrumentedAzman = new AzManAuthorizationProvider(data.StoreLocation, data.Application, data.AuditIdentifierPrefix, data.Scope);
            AuthorizationProviderInstrumentationListener listener = new AuthorizationProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(instrumentedAzman.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(2))
            {
                bool res = instrumentedAzman.Authorize(cryptographyProviderCollection, unauthorizedTask);

                eventWatcher.WaitForEvents();

                Assert.AreEqual(2, eventWatcher.EventsReceived.Count);

                Assert.AreEqual("AuthorizationCheckPerformedEvent", eventWatcher.EventsReceived[0].ClassPath.ClassName);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[0].Properties["UserName"].Value);
                Assert.AreEqual(unauthorizedTask, eventWatcher.EventsReceived[0].Properties["TaskName"].Value);

                Assert.AreEqual("AuthorizationCheckFailedEvent", eventWatcher.EventsReceived[1].ClassPath.ClassName);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[1].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[1].Properties["UserName"].Value);
                Assert.AreEqual(unauthorizedTask, eventWatcher.EventsReceived[1].Properties["TaskName"].Value);
            }
        }
        public void SourceWithNoEventsDoesNotCauseException()
        {
            EmptyEventListener actingAsSourceInThisExample = new EmptyEventListener();
            EmptyEventListener eventListener       = new EmptyEventListener();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(actingAsSourceInThisExample, eventListener);
        }
        public void NullSubjectInProviderThrowsException()
        {
            NullSubjectSource               eventSource   = new NullSubjectSource();
            SingleEventListener             eventListener = new SingleEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
        }
Example #6
0
        public void SetUp()
        {
            db       = new SqlDatabase(connectionString);
            listener = new MockListener();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(db.GetInstrumentationEventProvider(), listener);
        }
        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 HashFailureThrowsWithInstrumentationEnabled()
        {
            HashAlgorithmProvider           hashProvider = new HashAlgorithmProvider(typeof(SHA1Managed), false);
            ReflectionInstrumentationBinder binder       = new ReflectionInstrumentationBinder();

            binder.Bind(hashProvider.GetInstrumentationEventProvider(), new HashAlgorithmInstrumentationListener("foo", true, true, true));

            hashProvider.CreateHash(null);
        }
        public void TwoDifferentSubjectsCanBeAttactedToSameListener()
        {
            TwoEventSource                  eventSource   = new TwoEventSource();
            DualAttributedListener          eventListener = new DualAttributedListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.AreEqual(2, eventListener.count);
        }
Example #11
0
        public void CryptoFailureThrowsWithInstrumentationEnabled()
        {
            byte[] key = Guid.NewGuid().ToByteArray();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(provider.GetInstrumentationEventProvider(), new SymmetricAlgorithmInstrumentationListener("foo", true, true, true));

            provider.Decrypt(new byte[] { 0, 1, 2, 3, 4 });
        }
        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);
        }
Example #13
0
        private static void AttachInstrumentationListener(IInstrumentationEventProvider validator, IConfigurationSource configurationSource)
        {
            ValidationInstrumentationListener instrumentationListener = CreateInstrumentationListener(configurationSource);

            if (instrumentationListener.EventLoggingEnabled || instrumentationListener.PerformanceCountersEnabled || instrumentationListener.WmiEnabled)
            {
                ReflectionInstrumentationBinder instrumentationBinder = new ReflectionInstrumentationBinder();
                instrumentationBinder.Bind(validator.GetInstrumentationEventProvider(), instrumentationListener);
            }
        }
        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);
        }
Example #15
0
        public void InstallerWillWireUpSubjectToPublicMethodInInternalListenerClass()
        {
            InternalListener listener = new InternalListener();
            EventSource      source   = new EventSource();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(source, listener);
            source.Fire();
            Assert.IsTrue(listener.callbackHappened);
        }
        public void MultipleEventsAttachedToCorrectListener()
        {
            TwoOfSameEventSource            eventSource   = new TwoOfSameEventSource();
            CountingEventListener           eventListener = new CountingEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.AreEqual(2, eventListener.count);
        }
        public void AttachesOnlyInstrumentedEventsToListener()
        {
            SingleEventSourceWithOtherEvents eventSource  = new SingleEventSourceWithOtherEvents();
            SingleEventListener             eventListener = new SingleEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.IsTrue(eventListener.eventWasRaised);
        }
        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 EventsDefinedInBaseAreAttachedToListener()
        {
            DerivedEventSource              eventSource   = new DerivedEventSource();
            SingleEventListener             eventListener = new SingleEventListener();
            ReflectionInstrumentationBinder binder        = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);
            eventSource.Raise();
            Assert.IsTrue(eventListener.eventWasRaised);
        }
		public void InstallerWillWireUpSubjectToPublicMethodInInternalListenerClass()
		{
			InternalListener listener = new InternalListener();
			EventSource source = new EventSource();
			ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
			binder.Bind(source, listener);

			source.Fire();

			Assert.IsTrue(listener.callbackHappened);
		}
        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 FormatterListenerDoesNotFireInstrumentationWhenTracingString()
        {
            FormattedDatabaseTraceListener listener = new FormattedDatabaseTraceListener(new SqlDatabase(connectionString), "WriteLog", "AddCategory", new TextFormatter("TEST{newline}TEST"));
            MockLoggingInstrumentationListener instrumentationListener = new MockLoggingInstrumentationListener();
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(listener.GetInstrumentationEventProvider(), instrumentationListener);

            TraceEventCache eventCache = new TraceEventCache();
            listener.TraceData(eventCache, "", TraceEventType.Error, 0, "message");

            Assert.AreEqual(0, instrumentationListener.calls);
        }
        public void SetUp()
        {
            instrumentationProvider = new CachingInstrumentationProvider();
            instrumentationListener = new MockCachingInstrumentationListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(instrumentationProvider, instrumentationListener);

            backingStore  = new NullBackingStore();
            factoryHelper = new MockCacheManagerFactoryHelper();
        }
Example #24
0
        public void ConnectionFailedEventBroadcast()
        {
            db = new SqlDatabase("invalid;");
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(db.GetInstrumentationEventProvider(), listener);
            try
            {
                db.ExecuteNonQuery(CommandType.Text, "Select count(*) from Region");
            }
            catch (ArgumentException) {}
            Assert.AreEqual("invalid;", listener.connectionDataArgs.ConnectionString);
        }
        public void AttachesOnlyInstrumentedEventsToListener()
        {
            SingleEventSourceWithOtherEvents eventSource = new SingleEventSourceWithOtherEvents();
            SingleEventListener eventListener = new SingleEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(eventSource, eventListener);

            eventSource.Raise();

            Assert.IsTrue(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 DerivedMethodWithoutAttributeIsNotUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverriddenNoAttributeListenerMethod eventListener =
                new DerivedListenerWithOverriddenNoAttributeListenerMethod();

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

            eventSource.Raise();

            Assert.IsFalse(eventListener.eventWasRaised);
        }
Example #28
0
        public void FormatterListenerFiresInstrumentation()
        {
            FormattedDatabaseTraceListener     listener = new FormattedDatabaseTraceListener(new SqlDatabase(connectionString), "WriteLog", "AddCategory", new TextFormatter("TEST{newline}TEST"));
            MockLoggingInstrumentationListener instrumentationListener = new MockLoggingInstrumentationListener();
            ReflectionInstrumentationBinder    binder = new ReflectionInstrumentationBinder();

            binder.Bind(listener.GetInstrumentationEventProvider(), instrumentationListener);

            TraceEventCache eventCache = new TraceEventCache();

            listener.TraceData(eventCache, "", TraceEventType.Error, 0, new LogEntry("message", "category", 0, 0, TraceEventType.Error, "title", null));

            Assert.AreEqual(1, instrumentationListener.calls);
        }
        public void ConnectionFailedEventBroadcast()
        {
			db = new SqlDatabase("invalid;");
			ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
			binder.Bind(db.GetInstrumentationEventProvider(), listener);

            try
            {
                db.ExecuteNonQuery(CommandType.Text, "Select count(*) from Region");
            }
            catch (ArgumentException)
            {
            }

			Assert.AreEqual("invalid;", listener.connectionDataArgs.ConnectionString);
        }
        public void AuthorizeFiresWmiEvent()
        {
            AzManAuthorizationProvider instrumentedAzman          = new AzManAuthorizationProvider(data.StoreLocation, data.Application, data.AuditIdentifierPrefix, data.Scope);
            AuthorizationProviderInstrumentationListener listener = new AuthorizationProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(instrumentedAzman.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(1))
            {
                bool res = instrumentedAzman.Authorize(cryptographyProviderCollection, authorizedTask);

                eventWatcher.WaitForEvents();
                Thread.Sleep(500);

                Assert.AreEqual(1, eventWatcher.EventsReceived.Count);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[0].Properties["UserName"].Value);
                Assert.AreEqual(authorizedTask, eventWatcher.EventsReceived[0].Properties["TaskName"].Value);
            }
        }
Example #31
0
        public void RetrieveCachedPrincipalFiresWmiEvent()
        {
            SecurityCacheProvider securityCache = SecurityCacheFactory.GetSecurityCacheProvider() as SecurityCacheProvider;
            SecurityCacheProviderInstrumentationListener listener = new SecurityCacheProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(securityCache.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(1))
            {
                IToken token   = new GuidToken();
                object profile = securityCache.GetPrincipal(token);
                eventWatcher.WaitForEvents();

                Assert.AreEqual(1, eventWatcher.EventsReceived.Count);
                Assert.AreEqual("SecurityCacheReadPerformedEvent", eventWatcher.EventsReceived[0].ClassPath.ClassName);
                Assert.AreEqual(SecurityEntityType.Principal.ToString(), eventWatcher.EventsReceived[0].Properties["EntityType"].Value);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(token.Value, eventWatcher.EventsReceived[0].Properties["TokenUsed"].Value);
            }
        }
		public void HashFailureThrowsWithInstrumentationEnabled()
		{
			HashAlgorithmProvider hashProvider = new HashAlgorithmProvider(typeof(SHA1Managed), false);
			ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
			binder.Bind(hashProvider.GetInstrumentationEventProvider(), new HashAlgorithmInstrumentationListener("foo", true, true, true));

			hashProvider.CreateHash(null);
		}
        public void EventsWithNoListenersDoNotCauseException()
        {
            SingleEventSource eventSource = new SingleEventSource();
            EmptyEventListener eventListener = new EmptyEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);
        }
        public void MultipleEventsAttachedToCorrectListener()
        {
            TwoOfSameEventSource eventSource = new TwoOfSameEventSource();
            CountingEventListener eventListener = new CountingEventListener();

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

            eventSource.Raise();

            Assert.AreEqual(2, eventListener.count);
        }
        public void NullSubjectInProviderThrowsException()
        {
            NullSubjectSource eventSource = new NullSubjectSource();
            SingleEventListener eventListener = new SingleEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(eventSource, eventListener);
        }
        public void SourceWithNoEventsDoesNotCauseException()
        {
            EmptyEventListener actingAsSourceInThisExample = new EmptyEventListener();
            EmptyEventListener eventListener = new EmptyEventListener();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(actingAsSourceInThisExample, eventListener);
        }
        public void TwoDifferentSubjectsCanBeAttactedToSameListener()
        {
            TwoEventSource eventSource = new TwoEventSource();
            DualAttributedListener eventListener = new DualAttributedListener();

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

            eventSource.Raise();

            Assert.AreEqual(2, eventListener.count);
        }
        public void DerivedMethodWithOverridingAttributeIsUsedAsListenerMethod()
        {
            SingleEventSource eventSource = new SingleEventSource();
            DerivedListenerWithOverridingAttribute eventListener = new DerivedListenerWithOverridingAttribute();

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

            eventSource.Raise();
        }
        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);
        }
		private void BindSourceToListener(object createdObject, object listener)
		{
			ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
			binder.Bind(createdObject, listener);
		}
        public void AuthorizeFiresWmiEvent()
        {
            AzManAuthorizationProvider instrumentedAzman = new AzManAuthorizationProvider(data.StoreLocation, data.Application, data.AuditIdentifierPrefix, data.Scope);
            AuthorizationProviderInstrumentationListener listener = new AuthorizationProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(instrumentedAzman.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(1))
            {
                bool res = instrumentedAzman.Authorize(cryptographyProviderCollection, authorizedTask);

                eventWatcher.WaitForEvents();
				Thread.Sleep(500);

                Assert.AreEqual(1, eventWatcher.EventsReceived.Count);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(cryptographyProviderCollection.Identity.Name, eventWatcher.EventsReceived[0].Properties["UserName"].Value);
                Assert.AreEqual(authorizedTask, eventWatcher.EventsReceived[0].Properties["TaskName"].Value);
            }
        }
        public void CryptoFailureThrowsWithInstrumentationEnabled()
        {
            byte[] key = Guid.NewGuid().ToByteArray();

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(provider.GetInstrumentationEventProvider(), new SymmetricAlgorithmInstrumentationListener("foo", true, true, true));

            provider.Decrypt(new byte[] { 0, 1, 2, 3, 4 });
        }
Example #43
0
        private void BindSourceToListener(object createdObject, object listener)
        {
            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();

            binder.Bind(createdObject, listener);
        }
        public void EventsDefinedInBaseAreAttachedToListener()
        {
            DerivedEventSource eventSource = new DerivedEventSource();
            SingleEventListener eventListener = new SingleEventListener();

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

            eventSource.Raise();

            Assert.IsTrue(eventListener.eventWasRaised);
        }
        public void RetrieveCachedIdentityFiresWmiEvent()
        {
            SecurityCacheProvider securityCache = SecurityCacheFactory.GetSecurityCacheProvider() as SecurityCacheProvider;
            SecurityCacheProviderInstrumentationListener listener = new SecurityCacheProviderInstrumentationListener("foo", false, false, true);

            ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder();
            binder.Bind(securityCache.GetInstrumentationEventProvider(), listener);

            using (WmiEventWatcher eventWatcher = new WmiEventWatcher(1))
            {
                IToken token = new GuidToken();
                object profile = securityCache.GetIdentity(token);
                eventWatcher.WaitForEvents();

                Assert.AreEqual(1, eventWatcher.EventsReceived.Count);
                Assert.AreEqual("SecurityCacheReadPerformedEvent", eventWatcher.EventsReceived[0].ClassPath.ClassName);
                Assert.AreEqual(SecurityEntityType.Identity.ToString(), eventWatcher.EventsReceived[0].Properties["EntityType"].Value);
                Assert.AreEqual("foo", eventWatcher.EventsReceived[0].Properties["InstanceName"].Value);
                Assert.AreEqual(token.Value, eventWatcher.EventsReceived[0].Properties["TokenUsed"].Value);

            }
        }
        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);
        }