public void ChangingSelectedDotColourRaisesPropertyChangedEvent()
        {
            var propertyName = string.Empty;

            _mainWindowViewModel.PropertyChanged  += (_, e) => propertyName = e.PropertyName;
            _mainWindowViewModel.SelectedDotColour = _mainWindowViewModel.DotColours[10];
            DispatcherTestHelper.ProcessWorkItems(DispatcherPriority.Background);
            Assert.That(propertyName, Is.EqualTo("SelectedDotColour"));
        }
        public void ExecutingTheClearCommandRaisesCanExecuteChangedOnTheSolveCommand()
        {
            var wasRaised = false;

            _mainWindowViewModel.SolveCommand.CanExecuteChanged += (_, __) => wasRaised = true;
            _mainWindowViewModel.ClearCommand.Execute(null);
            DispatcherTestHelper.ProcessWorkItems(DispatcherPriority.Background);
            Assert.That(wasRaised, Is.True, "Expected the mainWindowViewModel.SolveCommand.CanExecuteChanged event to have been raised");
            Assert.That(_mainWindowViewModel.SolveCommand.CanExecute(null), Is.False, "Expected mainWindowViewModel.SolveCommand.CanExecute() to return false");
        }
        public void ChangingStatusMessageRaisesPropertyChangedEvent()
        {
            const string expectedPropertyName = "StatusMessage";
            var          propertyName         = string.Empty;

            _mainWindowViewModel.PropertyChanged += (_, e) =>
            { if (e.PropertyName == expectedPropertyName)
              {
                  propertyName = e.PropertyName;
              }
            };
            _mainWindowViewModel.SelectedGridChangedCommand.Execute(null);
            DispatcherTestHelper.ProcessWorkItems(DispatcherPriority.Background);
            Assert.That(propertyName, Is.EqualTo(expectedPropertyName));
        }