public void IF_task_throws_exception_SHOULD_handle_and_reset_IsExecuting()
        {
            //Arrange
            _task = (a) => throw new Exception("gosh darn it");

            using (var isExecutingChanges = Sut.SubscribeToPropertyChanged(x => x.IsExecuting))
            {
                //Act
                Sut.Execute("hi");
                isExecutingChanges.WaitForChangeCount(2);

                //Assert
                MockErrorHandler.Verify_HandleExceptionMessage("gosh darn it");
                Assert.AreEqual(false, Sut.IsExecuting);
            }
        }
        public void IF_observer_throws_exception_SHOULD_handle_and_reset_IsExecuting()
        {
            //Arrange
            _observable = Observable.Create <int>(observer =>
            {
                observer.OnError(new Exception("oops"));
                return(Disposable.Empty);
            });

            using (var isExecutingChanges = Sut.SubscribeToPropertyChanged(x => x.IsExecuting))
            {
                //Act
                Sut.Execute(null);
                isExecutingChanges.WaitForChangeCount(2);

                //Assert
                MockErrorHandler.Verify_HandleExceptionMessage("oops");
                Assert.AreEqual(false, Sut.IsExecuting);
            }
        }