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(); } }
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); }
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); }
public void CallsDeactivatedAndThenDisposedOnPages() { var target = new NavigationViewModel(); var first = CreatePage(); target.NavigateTo(first); target.Clear(); Received.InOrder(() => { first.Deactivated(); first.Dispose(); }); }
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)); }