public NavigationViewModel(IServiceLocator serviceLocator, IRouterSolver routerSolver)
 {
     _ServiceLocator      = serviceLocator;
     _RouterSolver        = routerSolver;
     AfterResolveCommand  = new RelaySimpleCommand <string>(AfterResolve);
     BeforeResolveCommand = RelayResultCommand.Create <string, BeforeRouterResult>(BeforeResolve);
 }
 public NavigationViewModelTests()
 {
     _ExpectedNewViewModel      = new FakeClass();
     _ExpectedRedirectViewModel = new SecondFakeClass();
     _ServiceLocator            = Substitute.For <IServiceLocator>();
     _ServiceLocator.GetInstance(_FakeType).Returns(_ExpectedNewViewModel);
     _ServiceLocator.GetInstance <FakeClass>().Returns(_ExpectedNewViewModel);
     _ServiceLocator.GetInstance(_FakeTypeRedirect).Returns(_ExpectedRedirectViewModel);
     _ServiceLocator.GetInstance(null).Throws(new ArgumentNullException("serviceType"));
     _RouterSolver = Substitute.For <IRouterSolver>();
     _RouterSolver.SolveType(null).Throws <Exception>();
     _RouterSolver.SolveRoute(Arg.Any <object>()).Returns(default(string));
     _NavigationViewModel = new NavigationViewModel(new Lazy <IServiceLocator>(() => _ServiceLocator),
                                                    _RouterSolver, _OriginalRoute);
 }
 public static NavigationViewModel Create(IServiceLocator serviceLocator, IRouterSolver routerSolver)
 {
     return(new NavigationViewModel(serviceLocator, routerSolver));
 }