Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }