示例#1
0
        public void WhenNavigatingFromObservableFiresWhenViewModelLosesFocus()
        {
            var count  = 0;
            var screen = new TestScreen();
            var vm     = new RoutableViewModel(screen);
            var vm2    = new RoutableViewModel(screen);

            vm.WhenNavigatingFromObservable().Subscribe(_ => {
                count++;
            });

            screen.Router.Navigate.Execute(vm);
            screen.Router.Navigate.Execute(vm2);

            Assert.Equal(1, count);
        }
示例#2
0
        public void WhenNavigatingFromObservableCompletesWhenViewModelIsRemovedFromNavigationStack()
        {
            var count = 0;

            var screen = new TestScreen();
            var vm     = new RoutableViewModel(screen);

            vm.WhenNavigatingFromObservable().Subscribe(
                _ => {},
                () => { count++; });

            screen.Router.Navigate.Execute(vm);
            screen.Router.NavigateBack.Execute();

            Assert.Equal(1, count);
        }
示例#3
0
        public void WhenNavigatingFromObservableCompletesWhenNavigationStackIsReset()
        {
            var count = 0;

            var screen = new TestScreen();
            var vm1    = new RoutableViewModel(screen);
            var vm2    = new RoutableViewModel(screen);

            vm1.WhenNavigatingFromObservable().Subscribe(
                _ => { },
                () => { count++; });

            screen.Router.Navigate.Execute(vm1);
            screen.Router.NavigateAndReset.Execute(vm2);

            Assert.Equal(1, count);
        }