public async Task DisposeAsync() { var eventName = "onMyCustomEvent"; var throttleInterval = 20; var projectionName = "mynamspace.something.somethingelse"; Func <Object, Task> callback = (x) => Task.Delay(10); var expectedProperties = new[] { "detail", "screenX", "screenY", "clientX", "clientY", "offsetX", "offsetY", "button", "buttons", "ctrlKey", "shiftKey", "altKey", "metaKey", "type" }; for (var i = 0; i < 10; i++) { var elementId = $"my-customer-dom-element-{i}"; _runtimeMock.Setup(x => x.InvokeAsync <Object>("mudThrottledEventManager.subscribe", It.Is <object[]>(z => z.Length == 7 && (string)z[0] == eventName && (string)z[1] == elementId && (string)z[2] == projectionName && (int)z[3] == throttleInterval && (Guid)z[4] != Guid.Empty && ContainsEqual((IEnumerable <string>)z[5], expectedProperties) == true && z[6] is DotNetObjectReference <EventListener> ))).ReturnsAsync(true); var result = await _service.Subscribe <MouseEventArgs>(eventName, elementId, projectionName, throttleInterval, callback); var flow = _runtimeMock.Setup(x => x.InvokeAsync <Object>("mudThrottledEventManager.unsubscribe", It.Is <object[]>(z => z.Length == 1 && (Guid)z[0] == result ))); if (i % 2 == 0) { flow.Throws(new InvalidOperationException("something went wrong! :(")); } else { flow.ReturnsAsync(true); } } await _service.DisposeAsync(); // a second time shouldn't change something await _service.DisposeAsync(); // a normal dispose shouldnt' change something _service.Dispose(); _runtimeMock.Verify(x => x.InvokeAsync <Object>("mudThrottledEventManager.subscribe", It.Is <object[]>(z => true )), Times.Exactly(10)); }
public async Task MessageWillNotBeReceivedAfterDispose() { var dispatcherMock = new Mock <IEventDispatcher>(MockBehavior.Strict); dispatcherMock.Setup(d => d.Dispatch(It.IsAny <EventMessage>())); var dispatchers = new Dictionary <string, IEventDispatcher>(); dispatchers.Add("My.#", dispatcherMock.Object); IBusContext <MessageBroker> context = new InMemoryContext(); var target = new EventListener <MessageBroker>(context, dispatchers); target.StartListening("My.Test.Queue"); // Act target.Dispose(); //Assert var message = new EventMessage { Topic = "My.Topic" }; var sender = context.CreateMessageSender(); await sender.SendMessageAsync(message); dispatcherMock.Verify(d => d.Dispatch(message), Times.Never); }
public void Dispose() { foreach (TestClient C in Clients) { C.Stop(); } L.Stop(); L.Dispose(); }
public override void Dispose() { if (_disposed) { return; } _disposed = true; EventTestHarness.LogWriteLine("Disposing Listener"); _listener.Dispose(); }
private void DisposeEventTracing() { if (_dbListener != null) { _dbListener.DisableEvents(BlueprintEventSource.Log); _dbListener.DisableEvents(CLogEventSource.Log); _dbListener.DisableEvents(StandardLogEventSource.Log); _dbListener.DisableEvents(PerformanceLogEventSource.Log); _dbListener.DisableEvents(SQLTraceLogEventSource.Log); _dbListener.Dispose(); } }
public void EventListenerDisposesWithoudBeingStarted() { var receiverMock = new Mock <IMessageReceiver>(MockBehavior.Strict); var contextMock = new Mock <IBusContext <string> >(MockBehavior.Strict); contextMock.Setup(bc => bc.CreateMessageReceiver("My.Test.Queue", It.IsAny <IEnumerable <string> >())) .Returns(receiverMock.Object); var dispatchers = new Dictionary <string, IEventDispatcher>(); var target = new EventListener <string>(contextMock.Object, dispatchers); // Act target.Dispose(); // OK }
static void SimpleEventSourceAlternativeApproach() { // Set up and enable the event listener - typically done when the application starts EventListener listener = ConsoleLog.CreateListener(); listener.EnableEvents(MyCompanyEventSource.Log, EventLevel.LogAlways, Keywords.All); // Log some messages MyCompanyEventSource.Log.Startup(); MyCompanyEventSource.Log.Failure("Couldn't connect to server."); Console.WriteLine("Written two log messages.\nUsing a basic console listener to capture them."); Console.WriteLine("The color is determined by the severity level.\n"); // Disable and dispose the event listener - typically done when the application terminates listener.DisableEvents(MyCompanyEventSource.Log); listener.Dispose(); }
public void CannotStartListeningAfterBeingDisposed() { var receiverMock = new Mock <IMessageReceiver>(MockBehavior.Strict); var contextMock = new Mock <IBusContext <string> >(MockBehavior.Strict); contextMock.Setup(bc => bc.CreateMessageReceiver("My.Test.Queue", It.IsAny <IEnumerable <string> >())) .Returns(receiverMock.Object); var dispatchers = new Dictionary <string, IEventDispatcher>(); var target = new EventListener <string>(contextMock.Object, dispatchers); // Act target.Dispose(); Action act = () => { target.StartListening("My.Test.Queue"); }; // Assert var ex = Assert.ThrowsException <ObjectDisposedException>(act); Assert.AreEqual("Cannot access a disposed object.\r\nObject name: 'EventListener'.", ex.Message); }
public void EventListenerDisposesReceiver() { var receiverMock = new Mock <IMessageReceiver>(MockBehavior.Strict); receiverMock.Setup(r => r.StartReceivingMessages()); receiverMock.Setup(r => r.StartHandlingMessages(It.IsAny <EventMessageReceivedCallback>())); receiverMock.Setup(r => r.Dispose()); var contextMock = new Mock <IBusContext <string> >(MockBehavior.Strict); contextMock.Setup(bc => bc.CreateMessageReceiver("My.Test.Queue", It.IsAny <IEnumerable <string> >())) .Returns(receiverMock.Object); var dispatchers = new Dictionary <string, IEventDispatcher>(); var target = new EventListener <string>(contextMock.Object, dispatchers); target.StartListening("My.Test.Queue"); // Act target.Dispose(); // Assert receiverMock.Verify(r => r.Dispose()); }
public void Dispose() { _webHost.Dispose(); _eventListener?.Dispose(); }
public void Dispose() { eventListener.Dispose(); }
public void Flush() { _listener.Dispose(); _listener = SqlDatabaseLog.CreateListener("DatabaseSemanticTracing", ConnectionString); _listener.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.LogAlways, Keywords.All); }
public void Dispose() { _listener?.Dispose(); }