public async Task TestUdpEventSink() { int port = 11001; var udpclient = new UdpClient(port); var slabListener = new ObservableEventListener(); slabListener.Subscribe(new UdpEventSink(IPAddress.Loopback, port, new TestEventFormatter())); var source = TestEventSource.GetInstance(); slabListener.EnableEvents(source, EventLevel.LogAlways, Keywords.All); var t = udpclient.ReceiveAsync(); source.Message("Boris", "Meep"); var receivedText = Encoding.UTF8.GetString((await t).Buffer); Assert.Equal( "EventId=1 EventName=MessageInfo Level=Error \"FormattedMessage=Meep - Boris\" \"message=Boris\" \"caller=Meep\"\r\n", receivedText); udpclient.Close(); slabListener.Dispose(); }
public void ShouldResetThreadpoolThroughputQueueLengthWhenSampled() { using (var eventSource = new TestEventSource()) using (var threadEventListener = CreateThreadEventsListener()) { eventSource.DequeueThread(); eventSource.DequeueThread(); eventSource.DequeueThread(); eventSource.DequeueThread(); threadEventListener.Sample(); //This call should reset the accumulated stats eventSource.EnqueueThread(); eventSource.EnqueueThread(); eventSource.EnqueueThread(); eventSource.EnqueueThread(); eventSource.EnqueueThread(); var sample = threadEventListener.Sample(); NrAssert.Multiple( () => Assert.AreEqual(5, sample.CountThreadRequestsQueued), () => Assert.AreEqual(0, sample.CountThreadRequestsDequeued), () => Assert.AreEqual(5, sample.ThreadRequestQueueLength) //Would be 1 if the queueLength was not reset ); } }
public void EventHandlerCalled() { var called = false; var source = new TestEventSource(); source.TestEvent += (sender, args) => { called = true; }; source.FireTestEvent(); Assert.IsTrue(called); }
public void StaticHandlerShouldRun() { int beforeRun = s_count; var source = new TestEventSource(); source.TestEvent += Handler; source.FireTestEvent(); Assert.IsTrue(s_count > beforeRun); }
public void MultipleHandlersCalled() { var called1 = false; var called2 = false; var source = new TestEventSource(); source.TestEvent += (sender, args) => { called1 = true; }; source.TestEvent += (sender, args) => { called2 = true; }; source.FireTestEvent(); Assert.IsTrue(called1 && called2); }
public void CanRemoveStaticEventHandler() { int beforeRun = s_count; var source = new TestEventSource(); source.TestEvent += Handler; source.TestEvent -= Handler; source.FireTestEvent(); Assert.IsTrue(s_count == beforeRun); }
public void CanCreateMultipleEventSources() { EventSource GetEventSource(TestAssemblyLoadContext testAssemblyLoadContext) { return((EventSource)Activator.CreateInstance(testAssemblyLoadContext.Assemblies .Single() .GetType("Azure.Core.Tests.AzureEventSourceTests+TestEventSource"))); } void LogEvent(EventSource azureCoreEventSource) { azureCoreEventSource.GetType() .GetMethod("LogSomething", BindingFlags.Public | BindingFlags.Instance) .Invoke(azureCoreEventSource, Array.Empty <object>()); } var alc = new TestAssemblyLoadContext("Test 1"); var alc2 = new TestAssemblyLoadContext("Test 2"); try { List <EventWrittenEventArgs> events = new(); using var listener = new AzureEventSourceListener((args, s) => events.Add(args), EventLevel.Verbose); alc.LoadFromAssemblyPath(typeof(TestEventSource).Assembly.Location); alc2.LoadFromAssemblyPath(typeof(TestEventSource).Assembly.Location); using var es0 = new TestEventSource(); using var es1 = GetEventSource(alc); using var es2 = GetEventSource(alc2); LogEvent(es0); LogEvent(es1); LogEvent(es2); Assert.AreEqual("Azure-Corez", es0.Name); Assert.AreEqual("Azure-Corez-1", es1.Name); Assert.AreEqual("Azure-Corez-2", es2.Name); Assert.AreEqual(3, events.Count); Assert.AreEqual("Azure-Corez", events[0].EventSource.Name); Assert.AreEqual("Azure-Corez-1", events[1].EventSource.Name); Assert.AreEqual("Azure-Corez-2", events[2].EventSource.Name); } finally { alc.Unload(); alc2.Unload(); } }
public void RemoveHandlerWithMultipleSubscriptionsRemovesOne() { int beforeRun = s_count; var source = new TestEventSource(); source.TestEvent += Handler; source.TestEvent += Handler; source.TestEvent -= Handler; source.FireTestEvent(); Assert.AreEqual(beforeRun + 1, s_count); }
public void DoWork_should_detach_from_event_after_first_invocation() { //arrange var testSource = new TestEventSource(); var sut = new ClassToTest(); sut.DoWork(testSource); //act testSource.InvokeEvent(); testSource.InvokeEvent(); //call two times :) //assert testSource.InvokationCount.Should("have hooked the event").Be(1); testSource.IsEventDetached().Should("have unhooked the event").Be.True(); }
public void BaseEventListener() { // make sure this thing only deals with the BuildXL event source using (var listener = new TrackingEventListener(Events.Log)) { // this one should get through Events log = Events.Log; log.InfoEvent("Test 1"); XAssert.AreEqual(listener.InformationalCount, 1); // this one should not using (var log2 = new TestEventSource()) { log2.InfoEvent("Test 1"); XAssert.AreEqual(listener.InformationalCount, 1); } } }
public void ThreadpoolThroughputStatsShouldNotReportNegativeQueueLengths() { using (var eventSource = new TestEventSource()) using (var threadEventListener = CreateThreadEventsListener()) { eventSource.DequeueThread(); eventSource.DequeueThread(); eventSource.DequeueThread(); eventSource.DequeueThread(); var sample = threadEventListener.Sample(); NrAssert.Multiple( () => Assert.AreEqual(0, sample.CountThreadRequestsQueued), () => Assert.AreEqual(4, sample.CountThreadRequestsDequeued), () => Assert.AreEqual(0, sample.ThreadRequestQueueLength) ); } }
public void ShouldAccumulateThreadpoolThroughputStats() { using (var eventSource = new TestEventSource()) using (var threadEventListener = CreateThreadEventsListener()) { eventSource.EnqueueThread(); eventSource.EnqueueThread(); eventSource.EnqueueThread(); eventSource.DequeueThread(); eventSource.DequeueThread(); var sample = threadEventListener.Sample(); NrAssert.Multiple( () => Assert.AreEqual(3, sample.CountThreadRequestsQueued), () => Assert.AreEqual(2, sample.CountThreadRequestsDequeued), () => Assert.AreEqual(1, sample.ThreadRequestQueueLength) ); } }
public void VerifySubscriberCanBeCollected() { WeakReference wr = null; var source = new TestEventSource(); new Action(() => { var ts = new TestSubscriber(); wr = new WeakReference(ts); ts.Subscribe(source); })(); GC.Collect(); GC.WaitForPendingFinalizers(); Assert.IsNotNull(wr); Assert.IsFalse(wr.IsAlive); // The handler for this calls Assert.Fail, so if the subscriber has not been collected // the handler will be called and the test will fail source.FireTestEvent(); }
public void TestEventSourceLogLevelWhenEventSourceIsAlreadyCreated() { using (var testEventSource = new TestEventSource()) { var senderMock = new DiagnosticsSenderMock(); var senders = new List <IDiagnosticsSender> { senderMock }; using (var listener = new DiagnosticsListener(senders)) { const EventKeywords AllKeyword = (EventKeywords)(-1); // The default level is EventLevel.Error Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Error, AllKeyword)); // So Verbose should not be enabled Assert.IsFalse(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword)); listener.LogLevel = EventLevel.Verbose; Assert.IsTrue(testEventSource.IsEnabled(EventLevel.Verbose, AllKeyword)); } } }
public void FiringEventWithoutHandlerShouldNotThrow() { var source = new TestEventSource(); source.FireTestEvent(); }
public TestSource() { EventSource = new TestEventSource(); EventSource.TestEvent += EventSource_TestEvent; }
public void Subscribe(TestEventSource source) { source.TestEvent += SourceOnTestEvent; }
public EventDeal() { TestEventSource es = new TestEventSource(); TestEventListener el = new TestEventListener(); }
public void SetsTraits() { using var es = new TestEventSource(); Assert.AreEqual("true", es.GetTrait("AzureEventSource")); }
public void UnSubscribe(TestEventSource evenSource) { evenSource.TestEvent -= new TestEventSource.TestEventHandler(KeyPressed); }