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();
 }
Example #4
0
        public override void Dispose()
        {
            if (_disposed)
            {
                return;
            }

            _disposed = true;
            EventTestHarness.LogWriteLine("Disposing Listener");
            _listener.Dispose();
        }
Example #5
0
 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
        }
Example #7
0
        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());
        }
Example #10
0
 public void Dispose()
 {
     _webHost.Dispose(); _eventListener?.Dispose();
 }
 public void Dispose()
 {
     eventListener.Dispose();
 }
Example #12
0
 public void Flush()
 {
     _listener.Dispose();
     _listener = SqlDatabaseLog.CreateListener("DatabaseSemanticTracing", ConnectionString);
     _listener.EnableEvents(SemanticLoggingEventSource.Log, EventLevel.LogAlways, Keywords.All);
 }
Example #13
0
 public void Dispose()
 {
     _listener?.Dispose();
 }