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); }
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); }
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); }
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); }
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); }
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 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(); }
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 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); } }
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); } }
private void BindSourceToListener(object createdObject, object listener) { ReflectionInstrumentationBinder binder = new ReflectionInstrumentationBinder(); binder.Bind(createdObject, listener); }
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); } }