public void WhenNavigatedToCallsOnNavigatedToWhenViewModelIsFirstAdded() { var count = 0; var screen = new TestScreen(); var vm = new RoutableViewModel(screen); vm.WhenNavigatedTo(() => { count++; return(Disposable.Empty); }); screen.Router.Navigate.Execute(vm); Assert.Equal(1, count); }
public void WhenNavigatedToCallsDisposeWhenViewModelLosesFocus() { var count = 0; var screen = new TestScreen(); var vm = new RoutableViewModel(screen); var vm2 = new RoutableViewModel(screen); vm.WhenNavigatedTo(() => { return(Disposable.Create(() => count++)); }); screen.Router.Navigate.Execute(vm); Assert.Equal(0, count); screen.Router.Navigate.Execute(vm2); Assert.Equal(1, count); }
public void WhenNavigatedToCallsDisposeWhenNavigationStackIsReset() { var count = 0; var screen = new TestScreen(); var vm1 = new RoutableViewModel(screen); var vm2 = new RoutableViewModel(screen); vm1.WhenNavigatedTo(() => { return(Disposable.Create(() => count++)); }); screen.Router.Navigate.Execute(vm1); Assert.Equal(0, count); screen.Router.NavigateAndReset.Execute(vm2); Assert.Equal(1, count); }
public void WhenNavigatedToCallsOnNavigatedToWhenViewModelReturnsToTopOfStack() { var count = 0; var screen = new TestScreen(); var vm = new RoutableViewModel(screen); var vm2 = new RoutableViewModel(screen); vm.WhenNavigatedTo(() => { count++; return Disposable.Empty; }); screen.Router.Navigate.Execute(vm); screen.Router.Navigate.Execute(vm2); screen.Router.Navigate.Execute(vm); Assert.Equal(2, count); }