public void ShouldFirePropertyChangedEventOnViewModelWhenNavigationPanelStateIsChanged()
        {
            // Given
            var    navigationPanelState = new NavigationPanelState();
            var    changeContentRegionCompositeCommand = new Mock <IChangeContentRegionCompositeCommand>();
            var    viewModel              = new NavigationPanelViewModel(navigationPanelState, changeContentRegionCompositeCommand.Object);
            var    timesEventFired        = 0;
            object sender                 = null;
            PropertyChangedEventArgs args = null;

            viewModel.PropertyChanged += (s, a) =>
            {
                timesEventFired++;
                sender = s;
                args   = a;
            };

            // When
            navigationPanelState.CurrentContentRegionView = ContentRegionView.ImageProcessingCustomizationView;

            // Then
            Assert.AreEqual(1, timesEventFired);
            Assert.AreEqual(viewModel, sender);
            Assert.AreEqual(args.PropertyName, nameof(NavigationPanelViewModel.CurrentContentRegionView));
        }
        public void ShouldReturnNavigationPanelStatesCurrentContentRegionView()
        {
            // Given
            var navigationPanelState = new Mock <INavigationPanelState>();
            var changeContentRegionCompositeCommand = new Mock <IChangeContentRegionCompositeCommand>();

            navigationPanelState.SetupGet(n => n.CurrentContentRegionView).Returns(ContentRegionView.ImageDisplayView);

            var viewModel = new NavigationPanelViewModel(navigationPanelState.Object, changeContentRegionCompositeCommand.Object);

            // When
            var currentContentRegionView = viewModel.CurrentContentRegionView;

            // Then
            Assert.AreEqual(ContentRegionView.ImageDisplayView, currentContentRegionView);
        }