From 53ee8d65d40ab0d4b0af8852101af911a214e59b Mon Sep 17 00:00:00 2001 From: mrward Date: Sun, 23 Jan 2011 17:45:27 +0000 Subject: [PATCH] Hide page numbers when package search returns a single page of results. --- .../Project/Src/PackagesViewModel.cs | 3 +- .../Test/Src/PackagesViewModelTests.cs | 28 +++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs index f68a2444ec..0b29932877 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs @@ -94,6 +94,7 @@ namespace ICSharpCode.PackageManagement { allPackages = null; pages.CollectionChanged -= PagesChanged; + SelectedPageNumber = 1; UpdatePackageViewModels(); pages.CollectionChanged += PagesChanged; } @@ -246,8 +247,8 @@ namespace ICSharpCode.PackageManagement public void Search() { - SelectedPageNumber = 1; ReadPackages(); + OnPropertyChanged(null); } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/PackagesViewModelTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/PackagesViewModelTests.cs index 3b1525559d..07eb3eac2a 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/PackagesViewModelTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/PackagesViewModelTests.cs @@ -391,9 +391,9 @@ namespace PackageManagement.Tests { CreateViewModel(); viewModel.PageSize = 3; - viewModel.SelectedPageNumber = 2; viewModel.AddSixFakePackages(); viewModel.ReadPackages(); + viewModel.SelectedPageNumber = 2; viewModel.ShowPreviousPageCommand.Execute(null); @@ -408,8 +408,8 @@ namespace PackageManagement.Tests CreateViewModel(); viewModel.AddThreeFakePackages(); viewModel.PageSize = 2; - viewModel.SelectedPageNumber = 2; viewModel.ReadPackages(); + viewModel.SelectedPageNumber = 2; viewModel.ShowPreviousPageCommand.Execute(null); @@ -425,9 +425,9 @@ namespace PackageManagement.Tests { CreateViewModel(); viewModel.PageSize = 2; - viewModel.SelectedPageNumber = 2; viewModel.AddSixFakePackages(); viewModel.ReadPackages(); + viewModel.SelectedPageNumber = 2; int pageNumber = 1; viewModel.ShowPageCommand.Execute(pageNumber); @@ -454,7 +454,6 @@ namespace PackageManagement.Tests { CreateViewModel(); viewModel.PageSize = 3; - viewModel.SelectedPageNumber = 1; viewModel.AddSixFakePackages(); viewModel.ReadPackages(); viewModel.ReadPackages(); @@ -634,7 +633,6 @@ namespace PackageManagement.Tests { CreateViewModel(); viewModel.PageSize = 2; - viewModel.SelectedPageNumber = 2; viewModel.AddSixFakePackages(); var package = new FakePackage() { @@ -643,6 +641,8 @@ namespace PackageManagement.Tests }; viewModel.FakePackages.Add(package); viewModel.ReadPackages(); + + viewModel.SelectedPageNumber = 2; viewModel.SearchTerms = "SearchedForId"; viewModel.Search(); @@ -660,12 +660,28 @@ namespace PackageManagement.Tests { CreateViewModel(); viewModel.PageSize = 2; - viewModel.SelectedPageNumber = 1; viewModel.AddSixFakePackages(); viewModel.ReadPackages(); int expectedPages = 3; Assert.AreEqual(expectedPages, viewModel.PageCountBeforePackagesFiltered); } + + [Test] + public void Search_ThreePagesOfPackagesBeforeSearchReturnsNoPackages_IsPagedIsFalseWhenPropertyChangedEventFired() + { + CreateViewModel(); + viewModel.PageSize = 2; + viewModel.AddSixFakePackages(); + viewModel.ReadPackages(); + + viewModel.SearchTerms = "SearchedForId"; + + bool paged = true; + viewModel.PropertyChanged += (sender, e) => paged = viewModel.IsPaged; + viewModel.Search(); + + Assert.IsFalse(paged); + } } }