예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }