public void Stop_WhenSubscriptionHasNotBeenStarted_Throws(
     [Frozen] Mock <INotificationListener> listenerMock,
     NotificationListenerSubscription subscription,
     INotification notification)
 {
     Assert.Throws <InvalidOperationException>(() => subscription.Stop());
 }
        public void Stop_NotifyListener(
            [Frozen] Mock <INotificationListener> listenerMock,
            IEventStoreConnection connection,
            NotificationListenerSubscription subscription,
            INotification notification)
        {
            subscription.Start(connection);
            subscription.Stop();

            listenerMock.Verify(self => self.OnSubscriptionStopped(), Times.Once());
        }
        public async Task HandleNotificationAsync__WhenSubscriptionStoped_PropagateNotificationToTheListener(
            [Frozen] Mock <INotificationListener> listenerMock,
            IEventStoreConnection connection,
            NotificationListenerSubscription subscription,
            EventStreamUpdated notification)
        {
            subscription.Start(connection);
            await subscription.HandleNotificationAsync(notification);

            subscription.Stop();
            await subscription.HandleNotificationAsync(notification);

            listenerMock.Verify(
                self => self.On(notification),
                Times.Once());
        }