public void NavigateToEmptyUrlShouldThrow(string emptyUri)
        {
            var regionManagerMock = new Mock <IRegionManager>();

            var sut = new NavigableViewModelBase(regionManagerMock.Object);

            var thrown = Assert.Throws <ArgumentException>(() => sut.NavigateCommand.Execute(emptyUri));

            Assert.AreEqual("uri", thrown.ParamName);
        }
        public void NavigateToUriShouldNavigateContentRegionViaManager()
        {
            const string expectedUri = "Test Uri";

            var regionManagerMock = new Mock <IRegionManager>();

            var sut = new NavigableViewModelBase(regionManagerMock.Object);

            sut.NavigateCommand.Execute(expectedUri);

            regionManagerMock.Verify(rm => rm.RequestNavigate(ContentRegions.MainContentRegion, expectedUri));
        }
        protected override void OnAttached()
        {
            base.OnAttached();

            // Enable navigation on the new frame
            Frame frame = this.AssociatedObject;
            NavigableViewModelBase newNavigableViewModel = frame.DataContext as NavigableViewModelBase;

            if (newNavigableViewModel == null)
            {
                throw new InvalidOperationException("Set NavigableViewModel-based class ad DataContext for the associated frame.");
            }

            NavigationServiceFrame navigationService = new NavigationServiceFrame(newNavigableViewModel, frame);

            newNavigableViewModel.EnableNavigation(navigationService);
        }