Esempio n. 1
0
        public void DoesntThrowWhenHistoryHasMoreThan10Items()
        {
            var target = new NavigationViewModel();
            var pages  = new List <IPanePageViewModel>();

            for (var i = 0; i < 11; ++i)
            {
                var page = CreatePage();
                pages.Add(page);
                target.NavigateTo(page);
            }

            foreach (var page in pages)
            {
                page.ClearReceivedCalls();
            }

            target.Clear();

            pages.Last().Received().Deactivated();
            pages.Last().Received().Dispose();

            foreach (var page in pages.Take(pages.Count - 1))
            {
                page.DidNotReceive().Deactivated();
                page.Received().Dispose();
            }
        }
Esempio n. 2
0
        public void DisposesRegisteredResources()
        {
            var target   = new NavigationViewModel();
            var first    = CreatePage();
            var disposed = false;

            target.NavigateTo(first);
            target.RegisterDispose(first, Disposable.Create(() => disposed = true));
            target.Clear();

            Assert.True(disposed);
        }
Esempio n. 3
0
        public void DisposesPages()
        {
            var target   = new NavigationViewModel();
            var first    = CreatePage();
            var disposed = false;

            first.When(x => x.Dispose()).Do(_ => disposed = true);

            target.NavigateTo(first);
            target.Clear();

            Assert.True(disposed);
        }
Esempio n. 4
0
        public void CallsDeactivatedAndThenDisposedOnPages()
        {
            var target = new NavigationViewModel();
            var first  = CreatePage();

            target.NavigateTo(first);
            target.Clear();

            Received.InOrder(() =>
            {
                first.Deactivated();
                first.Dispose();
            });
        }
Esempio n. 5
0
        public void ClearsTheContentAndHistory()
        {
            var target = new NavigationViewModel();
            var first  = CreatePage();
            var second = CreatePage();

            target.NavigateTo(first);
            target.NavigateTo(second);
            target.Clear();

            Assert.Null(target.Content);
            Assert.False(target.NavigateBack.CanExecute(null));
            Assert.False(target.NavigateForward.CanExecute(null));
        }