Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetSettings.cs5
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakePackageViewModelFactory.cs72
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeTaskFactory.cs17
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PackageCollectionAssert.cs17
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PageCollectionAssert.cs60
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageViewModel.cs4
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackagesViewModel.cs130
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj7
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/AvailablePackagesViewModelTests.cs1241
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSearchCriteriaTests.cs82
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageViewModelTests.cs22
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackagesViewModelTests.cs1560
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/WildcardVersionSpecTests.cs79
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj11
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/AvailablePackagesViewModel.cs222
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelFactory.cs44
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelParent.cs38
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSearchCriteria.cs93
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModel.cs18
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModelFactory.cs73
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageQuery.cs56
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageResult.cs54
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesViewModel.cs547
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Page.cs43
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Pages.cs180
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/WildcardVersionSpec.cs153
26 files changed, 13 insertions, 4815 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetSettings.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetSettings.cs
index 5704d28232..86d485ad5b 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetSettings.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetSettings.cs
@@ -52,6 +52,11 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public event EventHandler SettingsChanged;
+ void OnSettingsChanged (object sender, EventArgs e)
+ {
+ SettingsChanged?.Invoke (sender, e);
+ }
+
public bool DeleteSection (string section)
{
throw new NotImplementedException ();
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakePackageViewModelFactory.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakePackageViewModelFactory.cs
deleted file mode 100644
index e7866e947b..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakePackageViewModelFactory.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-//
-// FakePackageViewModelFactory.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using MonoDevelop.PackageManagement;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement.Tests.Helpers
-{
- class FakePackageViewModelFactory : IPackageViewModelFactory
- {
- public FakePackageManagementSolution FakeSolution = new FakePackageManagementSolution ();
- PackageManagementEvents packageManagementEvents = new PackageManagementEvents ();
- public FakeLogger FakeLogger = new FakeLogger ();
-
- public PackageViewModel CreatePackageViewModel (IPackageViewModelParent parent, IPackageFromRepository package)
- {
- SelectedProjects = new PackageManagementSelectedProjects (FakeSolution);
- return new PackageViewModel (
- parent,
- package,
- SelectedProjects,
- PackageManagementEvents,
- null,
- FakeLogger);
- }
-
- public IPackageManagementSolution Solution {
- get { return FakeSolution; }
- }
-
- public PackageManagementSelectedProjects SelectedProjects { get; set; }
-
- public ILogger Logger {
- get { return FakeLogger; }
- }
-
- public IPackageManagementEvents PackageManagementEvents {
- get { return packageManagementEvents; }
- }
-
- public IPackageActionRunner PackageActionRunner {
- get {
- throw new NotImplementedException ();
- }
- }
- }
-}
-
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeTaskFactory.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeTaskFactory.cs
index 4f6fcfa20e..339037e963 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeTaskFactory.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeTaskFactory.cs
@@ -36,10 +36,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public bool IsCreateTaskCalled;
public bool RunTasksSynchronously;
- public FakeTask<PackagesForSelectedPageResult> FirstFakeTaskCreated {
- get { return FakeTasksCreated [0] as FakeTask<PackagesForSelectedPageResult>; }
- }
-
public List<object> FakeTasksCreated = new List<object> ();
public ITask<TResult> CreateTask<TResult> (
@@ -52,13 +48,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
return task;
}
- public void ExecuteAllFakeTasks ()
- {
- foreach (FakeTask<PackagesForSelectedPageResult> task in FakeTasksCreated) {
- task.ExecuteTaskCompletely ();
- }
- }
-
public void ExecuteAllTasks<T> ()
{
foreach (FakeTask<T> task in FakeTasksCreated) {
@@ -66,12 +55,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
}
}
- public void ExecuteTask (int index)
- {
- var task = FakeTasksCreated [index] as FakeTask<PackagesForSelectedPageResult>;
- task.ExecuteTaskCompletely ();
- }
-
public void ClearAllFakeTasks ()
{
FakeTasksCreated.Clear ();
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PackageCollectionAssert.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PackageCollectionAssert.cs
index 4462399efa..1716c87861 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PackageCollectionAssert.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PackageCollectionAssert.cs
@@ -34,23 +34,6 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
{
static class PackageCollectionAssert
{
- public static void AreEqual (IEnumerable<IPackage> expectedPackages, IEnumerable<PackageViewModel> actualViewModels)
- {
- var expectedPackagesAsList = new List<IPackage> (expectedPackages);
- List<IPackage> actualPackages = ConvertToPackageList (actualViewModels);
-
- CollectionAssert.AreEqual (expectedPackagesAsList, actualPackages);
- }
-
- static List<IPackage> ConvertToPackageList (IEnumerable<PackageViewModel> viewModels)
- {
- var packages = new List<IPackage> ();
- foreach (PackageViewModel viewModel in viewModels) {
- packages.Add (viewModel.GetPackage ());
- }
- return packages;
- }
-
public static void AreEqual (IEnumerable<IPackage> expectedPackages, IEnumerable<IPackage> actualPackages)
{
var expectedPackagesAsList = new List<IPackage> (expectedPackages);
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PageCollectionAssert.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PageCollectionAssert.cs
deleted file mode 100644
index cd87754a84..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/PageCollectionAssert.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-//
-// PageCollectionAssert.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-using MonoDevelop.PackageManagement;
-using NUnit.Framework;
-
-namespace MonoDevelop.PackageManagement.Tests.Helpers
-{
- static class PageCollectionAssert
- {
- public static void AreEqual (IEnumerable<Page> expectedPages, IEnumerable<Page> actualPages)
- {
- List<string> convertedExpectedPages = ConvertToStrings (expectedPages);
- List<string> convertedActualPages = ConvertToStrings (actualPages);
-
- CollectionAssert.AreEqual (convertedExpectedPages, convertedActualPages);
- }
-
- static List<string> ConvertToStrings (IEnumerable<Page> pages)
- {
- List<string> pagesAsText = new List<string> ();
- foreach (Page page in pages) {
- pagesAsText.Add (GetPageAsString (page));
- }
- return pagesAsText;
- }
-
- static string GetPageAsString (Page page)
- {
- return String.Format ("Page: Number: {0}, IsSelected: {1}",
- page.Number,
- page.IsSelected);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageViewModel.cs
index 283815f95d..9f4bd9787b 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageViewModel.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageViewModel.cs
@@ -12,10 +12,8 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
public FakeLogger FakeLogger;
public TestablePackageViewModel (
- IPackageViewModelParent parent,
FakePackageManagementSolution solution)
: this (
- parent,
new FakePackage ("Test"),
new PackageManagementSelectedProjects (solution),
new PackageManagementEvents (),
@@ -25,13 +23,11 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
}
public TestablePackageViewModel (
- IPackageViewModelParent parent,
FakePackage package,
PackageManagementSelectedProjects selectedProjects,
PackageManagementEvents packageManagementEvents,
FakeLogger logger)
: base (
- parent,
package,
selectedProjects,
packageManagementEvents,
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackagesViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackagesViewModel.cs
deleted file mode 100644
index 0d3b9259df..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackagesViewModel.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-// TestablePackagesViewModel.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using MonoDevelop.PackageManagement;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement.Tests.Helpers
-{
- class TestablePackagesViewModel : PackagesViewModel
- {
- public FakeRegisteredPackageRepositories FakeRegisteredPackageRepositories;
- public FakeTaskFactory FakeTaskFactory;
- public List<FakePackage> FakePackages = new List<FakePackage> ();
- public int GetAllPackagesCallCount;
- public int PageCountBeforePackagesFiltered;
- public PackageSearchCriteria SearchCriteriaPassedToFilterPackagesBySearchCriteria;
-
- public TestablePackagesViewModel ()
- : this (new FakeRegisteredPackageRepositories ())
- {
- }
-
- public TestablePackagesViewModel (FakeRegisteredPackageRepositories registeredPackageRepositories)
- : this (registeredPackageRepositories, new FakeTaskFactory ())
- {
- }
-
- public TestablePackagesViewModel (
- FakeRegisteredPackageRepositories registeredPackageRepositories,
- FakeTaskFactory taskFactory)
- : base (
- registeredPackageRepositories,
- new FakePackageViewModelFactory (),
- taskFactory)
- {
- FakeRegisteredPackageRepositories = registeredPackageRepositories;
- FakeTaskFactory = taskFactory;
- }
-
- public void AddOneFakePackage ()
- {
- AddFakePackage ("Test");
- }
-
- public FakePackage AddFakePackage (string packageId)
- {
- FakePackage package = CreateFakePackage (packageId);
- FakePackages.Add (package);
- return package;
- }
-
- public FakePackage AddFakePackage (string packageId, string packageVersion)
- {
- FakePackage package = CreateFakePackage (packageId);
- package.Version = new SemanticVersion (packageVersion);
- FakePackages.Add (package);
- return package;
- }
-
- FakePackage CreateFakePackage (string packageId)
- {
- return new FakePackage () {
- Id = packageId,
- Description = ""
- };
- }
-
- public void AddSixFakePackages ()
- {
- AddFakePackages (howMany: 6);
- }
-
- void AddFakePackages (int howMany)
- {
- for (int i = 1; i <= howMany; ++i) {
- AddFakePackage ("Test " + i);
- }
- }
-
- protected override IQueryable<IPackage> GetPackages (PackageSearchCriteria search)
- {
- GetAllPackagesCallCount++;
- SearchCriteriaPassedToFilterPackagesBySearchCriteria = search;
- return FakePackages.AsQueryable ().Find (search.SearchText);
- }
-
- protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults (IQueryable<IPackage> allPackages, PackageSearchCriteria search)
- {
- PageCountBeforePackagesFiltered = Pages.Count;
- return base.GetFilteredPackagesBeforePagingResults (allPackages, search);
- }
-
- public void AddTenFakePackages ()
- {
- AddFakePackages (howMany: 10);
- }
-
- public void AddThreeFakePackages ()
- {
- AddFakePackages (howMany: 3);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
index d1c30d4a54..9b8ca89a8c 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.csproj
@@ -138,12 +138,10 @@
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\PackageOperationHelper.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\RecentNuGetPackagesRepositoryTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\PackageCollectionAssert.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests\AvailablePackagesViewModelTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeRegisteredPackageRepositories.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeTaskFactory.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeTask.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\ExceptionThrowingRegisteredPackageRepositories.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakePackageViewModelFactory.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeLogger.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeServiceBasedRepository.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\PackageManagementSelectedProjectTests.cs" />
@@ -201,8 +199,6 @@
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\TestableBackgroundPackageActionRunner.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\TestablePackageManagementEventsMonitor.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\SettingProviderTests.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests\PackageSearchCriteriaTests.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests\WildcardVersionSpecTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\ImportAndCondition.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\ProjectTargetFrameworkMonitorTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\PackageReferenceNodeTests.cs" />
@@ -219,9 +215,6 @@
<Compile Include="MonoDevelop.PackageManagement.Tests\ProjectPackagesFolderNodeTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\TestableProjectPackagesFolderNode.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\FakeUpdatedPackagesInWorkspace.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests\PackagesViewModelTests.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\TestablePackagesViewModel.cs" />
- <Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\PageCollectionAssert.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\ExceptionThrowingPackageRepository.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests\MonoDevelopAggregateRepositoryTests.cs" />
<Compile Include="MonoDevelop.PackageManagement.Tests.Helpers\TestableLocalPackageRepository.cs" />
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/AvailablePackagesViewModelTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/AvailablePackagesViewModelTests.cs
deleted file mode 100644
index 7c2ff87a5b..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/AvailablePackagesViewModelTests.cs
+++ /dev/null
@@ -1,1241 +0,0 @@
-//
-// AvailablePackagesViewModelTests.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MonoDevelop.PackageManagement;
-using MonoDevelop.PackageManagement.Tests.Helpers;
-using NuGet;
-using NUnit.Framework;
-
-namespace MonoDevelop.PackageManagement.Tests
-{
- [TestFixture]
- public class AvailablePackagesViewModelTests
- {
- AvailablePackagesViewModel viewModel;
- FakeRegisteredPackageRepositories registeredPackageRepositories;
- ExceptionThrowingRegisteredPackageRepositories exceptionThrowingRegisteredPackageRepositories;
- FakeTaskFactory taskFactory;
- FakeRecentPackageRepository recentPackageRepository;
- FakePackageManagementSolution solution;
-
- void CreateViewModel ()
- {
- CreateRegisteredPackageRepositories ();
- CreateViewModel (registeredPackageRepositories);
- }
-
- void CreateRegisteredPackageRepositories ()
- {
- registeredPackageRepositories = new FakeRegisteredPackageRepositories ();
- }
-
- void CreateViewModel (FakeRegisteredPackageRepositories registeredPackageRepositories)
- {
- CreateSolution ();
- CreateViewModel (registeredPackageRepositories, solution);
- }
-
- void CreateViewModel (
- FakeRegisteredPackageRepositories registeredPackageRepositories,
- FakePackageManagementSolution solution)
- {
- taskFactory = new FakeTaskFactory ();
- var packageViewModelFactory = new FakePackageViewModelFactory ();
- recentPackageRepository = new FakeRecentPackageRepository ();
-
-
- viewModel = new AvailablePackagesViewModel (
- solution,
- registeredPackageRepositories,
- recentPackageRepository,
- packageViewModelFactory,
- taskFactory);
- }
-
- void CreateSolution ()
- {
- solution = new FakePackageManagementSolution ();
- }
-
- void CreateExceptionThrowingRegisteredPackageRepositories ()
- {
- exceptionThrowingRegisteredPackageRepositories = new ExceptionThrowingRegisteredPackageRepositories ();
- }
-
- void CompleteReadPackagesTask ()
- {
- taskFactory.ExecuteAllFakeTasks ();
- }
-
- void ClearReadPackagesTasks ()
- {
- taskFactory.ClearAllFakeTasks ();
- }
-
- void AddOnePackageSourceToRegisteredSources ()
- {
- registeredPackageRepositories.ClearPackageSources ();
- registeredPackageRepositories.AddOnePackageSource ();
- registeredPackageRepositories.HasMultiplePackageSources = false;
- registeredPackageRepositories.ActivePackageSource = registeredPackageRepositories.PackageSources [0];
- }
-
- void AddTwoPackageSourcesToRegisteredSources ()
- {
- var expectedPackageSources = new PackageSource[] {
- new PackageSource ("http://first.com", "First"),
- new PackageSource ("http://second.com", "Second")
- };
- AddPackageSourcesToRegisteredSources (expectedPackageSources);
- registeredPackageRepositories.HasMultiplePackageSources = true;
- registeredPackageRepositories.ActivePackageSource = expectedPackageSources [0];
- }
-
- void AddPackageSourcesToRegisteredSources (PackageSource[] sources)
- {
- registeredPackageRepositories.ClearPackageSources ();
- registeredPackageRepositories.AddPackageSources (sources);
- }
-
- PackageSource AddTwoPackageSourcesToRegisteredSourcesWithFirstOneDisabled ()
- {
- var expectedPackageSources = new PackageSource[] {
- new PackageSource ("http://first.com", "First") { IsEnabled = false },
- new PackageSource ("http://second.com", "Second") { IsEnabled = true }
- };
- AddPackageSourcesToRegisteredSources (expectedPackageSources);
- registeredPackageRepositories.HasMultiplePackageSources = true;
- return expectedPackageSources [0];
- }
-
- void CreateNewActiveRepositoryWithDifferentPackages ()
- {
- var package = new FakePackage ("NewRepositoryPackageId");
- var newRepository = new FakePackageRepository ();
- newRepository.FakePackages.Add (package);
- registeredPackageRepositories.FakeActiveRepository = newRepository;
- }
-
- void SetUpTwoPackageSourcesAndViewModelHasReadPackages ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
- registeredPackageRepositories.ActivePackageSource = registeredPackageRepositories.PackageSources [0];
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- CreateNewActiveRepositoryWithDifferentPackages ();
- }
-
- void ChangeSelectedPackageSourceToSecondSource ()
- {
- var secondPackageSource = registeredPackageRepositories.PackageSources [1];
- viewModel.SelectedPackageSource = secondPackageSource;
- }
-
- void ChangeSelectedPackageSourceToFirstSource ()
- {
- var firstPackageSource = registeredPackageRepositories.PackageSources [0];
- viewModel.SelectedPackageSource = firstPackageSource;
- }
-
- void SearchForAllPackageVersions (string packageId, string versions = "")
- {
- viewModel.SearchTerms = string.Format ("{0} version:{1}", packageId, versions).TrimEnd ();
- }
-
- void AddAggregateRepositoryWithOneFailingRepository ()
- {
- AddAggregateRepository (new ExceptionThrowingPackageRepository (), new FakePackageRepository ());
- }
-
- void AddAggregateRepository (params IPackageRepository[] repositories)
- {
- var repository = new MonoDevelopAggregateRepository (repositories);
- registeredPackageRepositories.ActivePackageSource = registeredPackageRepositories.PackageSources [0];
- registeredPackageRepositories.GetActiveRepositoryAction = () => {
- return repository;
- };
- }
-
- void AddAggregateRepositoryWithJustFailingRepositories ()
- {
- AddAggregateRepository (new ExceptionThrowingPackageRepository (), new ExceptionThrowingPackageRepository ());
- }
-
- void AddAggregateRepositoryWithTwoFailingRepositories (Exception exception1, Exception exception2)
- {
- AddAggregateRepository (
- new ExceptionThrowingPackageRepository (exception1),
- new ExceptionThrowingPackageRepository (exception2));
- }
-
- FakePackage AddPackageToSolution (string packageId, string packageVersion)
- {
- var package = FakePackage.CreatePackageWithVersion (packageId, packageVersion);
- solution.SolutionPackageRepository.FakePackages.Add (package);
- return package;
- }
-
- [Test]
- public void ReadPackages_RepositoryHasThreePackagesWithSameIdButDifferentVersions_HasLatestPackageVersionOnly ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
-
- var package1 = new FakePackage ("Test", "0.1.0.0");
- var package2 = new FakePackage ("Test", "0.2.0.0");
- var package3 = new FakePackage ("Test", "0.3.0.0");
-
- var packages = new FakePackage[] {
- package1, package2, package3
- };
-
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package3
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void IsSearchable_ByDefault_ReturnsTrue ()
- {
- CreateViewModel ();
- Assert.IsTrue (viewModel.IsSearchable);
- }
-
- [Test]
- public void Search_RepositoryHasThreePackagesWithSameIdButSearchTermsMatchNoPackageIds_ReturnsNoPackages ()
- {
- CreateViewModel ();
-
- var package1 = new FakePackage ("Test", "0.1.0.0");
- var package2 = new FakePackage ("Test", "0.2.0.0");
- var package3 = new FakePackage ("Test", "0.3.0.0");
-
- var packages = new FakePackage[] {
- package1, package2, package3
- };
-
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ClearReadPackagesTasks ();
- viewModel.SearchTerms = "NotAMatch";
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void ShowNextPage_TwoObjectsWatchingForPagesCollectionChangedEventAndUserMovesToPageTwoAndFilteredPackagesReturnsLessThanExpectedPackagesDueToMatchingVersions_InvalidOperationExceptionNotThrownWhen ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- viewModel.PageSize = 2;
-
- var package1 = new FakePackage ("First", "0.1.0.0");
- var package2 = new FakePackage ("Second", "0.2.0.0");
- var package3 = new FakePackage ("Test", "0.3.0.0");
- var package4 = new FakePackage ("Test", "0.4.0.0");
-
- var packages = new FakePackage[] {
- package1, package2, package3, package4
- };
-
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ClearReadPackagesTasks ();
- bool collectionChangedEventFired = false;
- viewModel.Pages.CollectionChanged += (sender, e) => collectionChangedEventFired = true;
- viewModel.ShowNextPage ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package4
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- Assert.IsTrue (collectionChangedEventFired);
- }
-
- [Test]
- public void ShowSources_TwoPackageSources_ReturnsTrue ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- Assert.IsTrue (viewModel.ShowPackageSources);
- }
-
- [Test]
- public void ShowPackageSources_OnePackageSources_ReturnsTrue ()
- {
- CreateRegisteredPackageRepositories ();
- AddOnePackageSourceToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- Assert.IsTrue (viewModel.ShowPackageSources);
- }
-
- [Test]
- public void PackageSources_TwoPackageSourcesInOptions_ReturnsTwoPackageSourcesPlusAggregatePackageSource ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- var expectedPackageSources = new List<PackageSource> (registeredPackageRepositories.PackageSources);
- expectedPackageSources.Insert (0, RegisteredPackageSourceSettings.AggregatePackageSource);
-
- PackageSourceCollectionAssert.AreEqual (expectedPackageSources, viewModel.PackageSources);
- }
-
- [Test]
- public void PackageSources_OnePackageSourceInOptions_ReturnsOnePackageSource ()
- {
- CreateRegisteredPackageRepositories ();
- AddOnePackageSourceToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- var expectedPackageSources = new List<PackageSource> (registeredPackageRepositories.PackageSources);
-
- PackageSourceCollectionAssert.AreEqual (expectedPackageSources, viewModel.PackageSources);
- }
-
- [Test]
- public void SelectedPackageSource_TwoPackageSourcesInOptionsAndActivePackageSourceIsFirstSource_IsFirstPackageSource ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- var expectedPackageSource = registeredPackageRepositories.PackageSources [0];
- registeredPackageRepositories.ActivePackageSource = expectedPackageSource;
-
- Assert.AreEqual (expectedPackageSource, viewModel.SelectedPackageSource);
- }
-
- [Test]
- public void SelectedPackageSource_TwoPackageSourcesInOptionsAndActivePackageSourceIsSecondSource_IsSecondPackageSource ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- var expectedPackageSource = registeredPackageRepositories.PackageSources [1];
- registeredPackageRepositories.ActivePackageSource = expectedPackageSource;
-
- Assert.AreEqual (expectedPackageSource, viewModel.SelectedPackageSource);
- }
-
- [Test]
- public void SelectedPackageSource_Changed_ActivePackageSourceChanged ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSources ();
- CreateViewModel (registeredPackageRepositories);
-
- registeredPackageRepositories.ActivePackageSource = registeredPackageRepositories.PackageSources [0];
- var expectedPackageSource = registeredPackageRepositories.PackageSources [1];
- viewModel.SelectedPackageSource = expectedPackageSource;
-
- Assert.AreEqual (expectedPackageSource, registeredPackageRepositories.ActivePackageSource);
- }
-
- [Test]
- public void SelectedPackageSource_PackageSourceChangedAfterReadingPackages_PackagesReadFromNewPackageSourceAndDisplayed ()
- {
- SetUpTwoPackageSourcesAndViewModelHasReadPackages ();
- ClearReadPackagesTasks ();
- ChangeSelectedPackageSourceToSecondSource ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = registeredPackageRepositories.FakeActiveRepository.FakePackages;
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void SelectedPackageSource_PackageSourceChangedAfterReadingPackages_PropertyChangedEventFiredAfterPackagesAreRead ()
- {
- SetUpTwoPackageSourcesAndViewModelHasReadPackages ();
-
- int packageCountWhenPropertyChangedEventFired = -1;
- viewModel.PropertyChanged += (sender, e) => packageCountWhenPropertyChangedEventFired = viewModel.PackageViewModels.Count;
- ClearReadPackagesTasks ();
- ChangeSelectedPackageSourceToSecondSource ();
- CompleteReadPackagesTask ();
-
- Assert.AreEqual (1, packageCountWhenPropertyChangedEventFired);
- }
-
- [Test]
- public void SelectedPackageSource_PackageSourceChangedButToSameSelectedPackageSource_PackagesAreNotRead ()
- {
- SetUpTwoPackageSourcesAndViewModelHasReadPackages ();
- ChangeSelectedPackageSourceToFirstSource ();
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void SelectedPackageSource_PackageSourceChangedButToSameSelectedPackageSource_PropertyChangedEventNotFired ()
- {
- SetUpTwoPackageSourcesAndViewModelHasReadPackages ();
-
- bool fired = false;
- viewModel.PropertyChanged += (sender, e) => fired = true;
- ChangeSelectedPackageSourceToFirstSource ();
-
- Assert.IsFalse (fired);
- }
-
- [Test]
- public void GetAllPackages_OnePackageInRepository_RepositoryNotCreatedByBackgroundThread ()
- {
- CreateRegisteredPackageRepositories ();
- AddOnePackageSourceToRegisteredSources ();
- registeredPackageRepositories.FakeActiveRepository.FakePackages.Add (new FakePackage ());
- CreateViewModel (registeredPackageRepositories);
- viewModel.ReadPackages ();
-
- registeredPackageRepositories.FakeActiveRepository = null;
- CompleteReadPackagesTask ();
-
- Assert.AreEqual (1, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void ReadPackages_ExceptionThrownWhenAccessingActiveRepository_ErrorMessageFromExceptionNotOverriddenByReadPackagesCall ()
- {
- CreateExceptionThrowingRegisteredPackageRepositories ();
- exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
- new Exception ("Test");
- CreateViewModel (exceptionThrowingRegisteredPackageRepositories);
- exceptionThrowingRegisteredPackageRepositories.ActivePackageSource = new PackageSource ("Test");
- viewModel.ReadPackages ();
-
- ApplicationException ex = Assert.Throws<ApplicationException> (CompleteReadPackagesTask);
- Assert.AreEqual ("Test", ex.Message);
- }
-
- [Test]
- public void ReadPackages_RepositoryHasPrereleaseAndReleasePackage_HasReleasePackageOnly ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var releasePackage = new FakePackage ("Test", "1.1.0.0");
- var prereleasePackage = new FakePackage ("Test", "1.1.0-alpha");
-
- var packages = new FakePackage[] {
- releasePackage, prereleasePackage
- };
-
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- releasePackage
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_TwoPackagesWithDifferentDownloadCounts_HighestDownloadCountShownFirst ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
-
- var package1 = new FakePackage ("A", "0.1.0.0") { DownloadCount = 1 };
- var package2 = new FakePackage ("Z", "0.1.0.0") { DownloadCount = 1000 };
-
- var packages = new FakePackage[] {
- package1, package2
- };
-
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package1
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void GetPackagesFromPackageSource_RepositoryHasThreePackagesWithSameIdButDifferentVersions_LatestPackageVersionOnlyRequestedFromPackageSource ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("Test", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("Test", "0.2.0.0") { IsLatestVersion = false };
- var package3 = new FakePackage ("Test", "0.3.0.0") { IsLatestVersion = true };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- viewModel.ReadPackages ();
-
- IList<IPackage> allPackages = viewModel.GetPackagesFromPackageSource ().ToList ();
-
- var expectedPackages = new FakePackage[] {
- package3
- };
- PackageCollectionAssert.AreEqual (expectedPackages, allPackages);
- }
-
- [Test]
- public void PackageSources_TwoPackageSourcesButFirstIsDisabled_DoesNotReturnDisabledPackageSource ()
- {
- CreateRegisteredPackageRepositories ();
- AddTwoPackageSourcesToRegisteredSourcesWithFirstOneDisabled ();
- CreateViewModel (registeredPackageRepositories);
-
- IEnumerable<PackageSource> packageSources = viewModel.PackageSources;
-
- bool containsDisabledPackageSource = packageSources.Contains (registeredPackageRepositories.PackageSources [0]);
- bool containsEnabledPackageSource = packageSources.Contains (registeredPackageRepositories.PackageSources [1]);
- Assert.IsFalse (containsDisabledPackageSource);
- Assert.IsTrue (containsEnabledPackageSource);
- }
-
- [Test]
- public void IsInstallAllPackagesEnabled_RepositoryHasTwoPackages_ReturnsFalse ()
- {
- CreateViewModel ();
- var package1 = new FakePackage ("Test", "0.1.0.0");
- var package2 = new FakePackage ("Test", "0.2.0.0");
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- bool enabled = viewModel.IsUpdateAllPackagesEnabled;
-
- Assert.IsFalse (enabled);
- }
-
- [Test]
- public void ShowPrerelease_ByDefault_ReturnsTrue ()
- {
- CreateViewModel ();
-
- bool show = viewModel.ShowPrerelease;
-
- Assert.IsTrue (show);
- }
-
- [Test]
- public void ReadPackages_RepositoryHasPrereleasePackageAndIncludePrereleaseIsTrue_HasPrereleasePackageInList ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- viewModel.IncludePrerelease = true;
- var prereleasePackage = new FakePackage ("Test", "1.1.0-alpha") {
- IsLatestVersion = false,
- IsAbsoluteLatestVersion = true
- };
- var expectedPackages = new FakePackage[] { prereleasePackage };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (expectedPackages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_RepositoryHasThreePrereleasePackagesWithSameIdButDifferentVersionsAndIncludePrereleaseIsTrue_HasLatestPreleasePackageVersionOnly ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- viewModel.IncludePrerelease = true;
- var package1 = new FakePackage ("Test", "0.1.0.0-alpha") { IsLatestVersion = false };
- var package2 = new FakePackage ("Test", "0.2.0.0-alpha") { IsLatestVersion = false };
- var package3 = new FakePackage ("Test", "0.3.0.0-alpha") { IsLatestVersion = false, IsAbsoluteLatestVersion = true };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package3
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void PackageViewModels_GetParentOfPackageViewModel_ReturnsAvailablePackagesViewModel ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("Test", "0.1.0.0");
- var package2 = new FakePackage ("Test", "0.2.0.0");
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- PackageViewModel childViewModel = viewModel.PackageViewModels.First ();
-
- IPackageViewModelParent parent = childViewModel.GetParent ();
-
- Assert.AreEqual (viewModel, parent);
- }
-
- [Test]
- public void GetPackagesFromPackageSource_RepositoryIsServiceBasedRepository_ServiceBasedRepositorySearchUsed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package = FakePackage.CreatePackageWithVersion ("Test", "0.1.0.0");
- var packages = new FakePackage[] { package };
- var repository = new FakeServiceBasedRepository ();
- repository.PackagesToReturnForSearch ("id:test", false, packages);
- registeredPackageRepositories.FakeActiveRepository = repository;
- viewModel.SearchTerms = "id:test";
- viewModel.IncludePrerelease = false;
- viewModel.ReadPackages ();
-
- IList<IPackage> allPackages = viewModel.GetPackagesFromPackageSource ().ToList ();
-
- var expectedPackages = new FakePackage[] { package };
- PackageCollectionAssert.AreEqual (expectedPackages, allPackages);
- }
-
- [Test]
- public void GetPackagesFromPackageSource_RepositoryIsServiceBasedRepositoryAndPrereleaseIncluded_ServiceBasedRepositorySearchUsed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package = FakePackage.CreatePackageWithVersion ("Test", "0.1.0.0");
- package.IsAbsoluteLatestVersion = true;
- var packages = new FakePackage[] { package };
- var repository = new FakeServiceBasedRepository ();
- repository.PackagesToReturnForSearch ("id:test", true, packages);
- registeredPackageRepositories.FakeActiveRepository = repository;
- viewModel.SearchTerms = "id:test";
- viewModel.IncludePrerelease = true;
- viewModel.ReadPackages ();
-
- IList<IPackage> allPackages = viewModel.GetPackagesFromPackageSource ().ToList ();
-
- var expectedPackages = new FakePackage[] { package };
- PackageCollectionAssert.AreEqual (expectedPackages, allPackages);
- }
-
- [Test]
- public void GetPackagesFromPackageSource_RepositoryHasThreePackagesWithSameIdButDifferentVersionsAndSearchIncludesPrerelease_AbsoluteLatestPackageVersionOnlyRequestedFromPackageSource ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("Test", "0.1.0.0") { IsAbsoluteLatestVersion = false };
- var package2 = new FakePackage ("Test", "0.2.0.0") { IsAbsoluteLatestVersion = false };
- var package3 = new FakePackage ("Test", "0.3.0.0") { IsAbsoluteLatestVersion = true };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- viewModel.IncludePrerelease = true;
- viewModel.ReadPackages ();
-
- IList<IPackage> allPackages = viewModel.GetPackagesFromPackageSource ().ToList ();
-
- var expectedPackages = new FakePackage[] {
- package3
- };
- PackageCollectionAssert.AreEqual (expectedPackages, allPackages);
- }
-
- [Test]
- public void ReadPackages_ActiveRepositoryChangedWhichUsesInvalidUrl_InvalidUrlExceptionIsShownAsErrorMessage ()
- {
- CreateExceptionThrowingRegisteredPackageRepositories ();
- CreateViewModel (exceptionThrowingRegisteredPackageRepositories);
- exceptionThrowingRegisteredPackageRepositories.ActivePackageSource = new PackageSource ("test");
- var package = new FakePackage ("Test", "0.1.0.0");
- exceptionThrowingRegisteredPackageRepositories
- .FakeActiveRepository
- .FakePackages
- .Add (package);
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- taskFactory.ClearAllFakeTasks ();
- exceptionThrowingRegisteredPackageRepositories.ExceptionToThrowWhenActiveRepositoryAccessed =
- new Exception ("Invalid url");
-
- viewModel.ReadPackages ();
- FakeTask<PackagesForSelectedPageResult> task = taskFactory.FirstFakeTaskCreated;
- ApplicationException ex = Assert.Throws<ApplicationException> (() => task.ExecuteTaskButNotContinueWith ());
- task.Exception = new AggregateException (ex);
- task.IsFaulted = true;
- task.ExecuteContinueWith ();
-
- Assert.AreEqual ("Invalid url", ex.Message);
- Assert.IsTrue (viewModel.HasError);
- Assert.AreEqual ("Invalid url", viewModel.ErrorMessage);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsWhenThreePackageVersionsAvailable_ShowsOnlyPackagesWithSameIdAndAllVersionsWithHighestVersionFirst ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.3.0.0");
- var package3 = new FakePackage ("A", "0.2.0.0") { IsLatestVersion = false };
- var package4 = new FakePackage ("AA", "0.1.0.0");
- var packages = new FakePackage[] {
- package1, package2, package3, package4
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package3, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsWhenThreePackageVersionsAvailableButOneIsPrerelease_ShowsOnlyNonPrereleasePackages ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.2.0.0");
- var package3 = new FakePackage ("A", "0.2.0-alpha") { IsLatestVersion = false };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsIncludePrereleaseWhenOneIsPrereleaseAndOneIsRelease_ShowsAllPackages ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.2.0.0");
- var package2 = new FakePackage ("A", "0.2.0-alpha") { IsLatestVersion = false };
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a");
- viewModel.IncludePrerelease = true;
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package1, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsWhenOneRecentPackageIsAvailable_RecentPackagesNotDisplayed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.2.0.0");
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- var recentPackage = new FakePackage ("A", "0.2.0.0") {
- Description = "A -version"
- };
- recentPackageRepository.AddPackage (recentPackage);
- SearchForAllPackageVersions ("a");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersions_ShowVersionInsteadOfDownloadCountIsTrueForEachPackageViewModel ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.2.0.0");
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.PackageViewModels [0].ShowVersionInsteadOfDownloadCount);
- Assert.IsTrue (viewModel.PackageViewModels [1].ShowVersionInsteadOfDownloadCount);
- }
-
- [Test]
- public void ReadPackages_SearchForPackage_ShowVersionInsteadOfDownloadCountIsFalseForEachPackageViewModel ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0");
- var package2 = new FakePackage ("B", "0.2.0.0");
- var packages = new FakePackage[] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsFalse (viewModel.PackageViewModels [0].ShowVersionInsteadOfDownloadCount);
- Assert.IsFalse (viewModel.PackageViewModels [1].ShowVersionInsteadOfDownloadCount);
- }
-
- [Test]
- public void ReadPackages_SearchForSinglePackageVersionWhenThreePackageVersionsAvailable_ShowsSinglePackagesWithSameIdAndSameVersion ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.3.0.0");
- var package3 = new FakePackage ("A", "0.2.0.0") { IsLatestVersion = false };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a", "0.2");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package3
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsUsingAsteriskWhenThreePackageVersionsAvailable_HasAllPackageVersions ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.3.0.0");
- var package3 = new FakePackage ("A", "0.2.0.0") { IsLatestVersion = false };
- var packages = new FakePackage[] {
- package1, package2, package3
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a", "*");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package3, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllOnePointZeroPackageVersionsUsingVersionOne_ReturnsAllOnePointZeroVersions ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "2.1.0.0");
- var package3 = new FakePackage ("A", "2.0.0.0") { IsLatestVersion = false };
- var package4 = new FakePackage ("A", "1.1.0.0") { IsLatestVersion = false };
- var package5 = new FakePackage ("A", "1.9.0.0") { IsLatestVersion = false };
- var package6 = new FakePackage ("A", "1.2.0.0") { IsLatestVersion = false };
- var package7 = new FakePackage ("A", "1.3.0.0") { IsLatestVersion = false };
- var package8 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var packages = new FakePackage[] {
- package1, package2, package3, package4, package5, package6, package7, package8
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("a", "1");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package5, package7, package6, package4, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- [Ignore]
- public void ReadPackages_ActivePackageSourceIsAggregatePackageRepositoryWithOneFailingRepository_HasErrorIsTrueAndErrorMessageHasWarning ()
- {
- CreateRegisteredPackageRepositories ();
- AddAggregateRepositoryWithOneFailingRepository ();
- CreateViewModel (registeredPackageRepositories);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.HasError);
- Assert.That (viewModel.ErrorMessage, Contains.Substring ("Some package sources could not be reached."));
- }
-
- [Test]
- [Ignore]
- public void ReadPackages_ActivePackageSourceIsAggregatePackageRepositoryWithAllRepositoriesFailing_HasErrorIsTrueAndErrorMessageHasWarning ()
- {
- CreateRegisteredPackageRepositories ();
- AddAggregateRepositoryWithJustFailingRepositories ();
- CreateViewModel (registeredPackageRepositories);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.HasError);
- Assert.That (viewModel.ErrorMessage, Contains.Substring ("All package sources could not be reached."));
- }
-
- [Test]
- [Ignore]
- public void ReadPackages_ActivePackageSourceIsAggregatePackageRepositoryWithAllRepositoriesFailing_RepositoryErrorIsDisplayed ()
- {
- CreateRegisteredPackageRepositories ();
- var exception1 = new Exception ("Error1");
- var exception2 = new Exception ("Error2");
- AddAggregateRepositoryWithTwoFailingRepositories (exception1, exception2);
- CreateViewModel (registeredPackageRepositories);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.HasError);
- Assert.That (viewModel.ErrorMessage, Contains.Substring ("Error1"));
- Assert.That (viewModel.ErrorMessage, Contains.Substring ("Error2"));
- }
-
- [Test]
- [Ignore]
- public void ReadPackages_ActivePackageSourceIsAggregatePackageRepositoryWithOneFailingRepository_RepositoryErrorIsDisplayed ()
- {
- CreateRegisteredPackageRepositories ();
- var repository = new ExceptionThrowingPackageRepository (new Exception ("Error1"));
- AddAggregateRepository (new FakePackageRepository (), repository);
- CreateViewModel (registeredPackageRepositories);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.HasError);
- Assert.That (viewModel.ErrorMessage, Contains.Substring ("Error1"));
- }
-
- [Test]
- public void ReadPackages_OneRecentPackageIsAvailable_RecentPackageIsDisplayedBeforeAnyOtherPackages ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.2.0.0");
- var package2 = new FakePackage ("Aa", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- var recentPackage = new FakePackage ("B", "1.0.0.0");
- recentPackageRepository.AddPackage (recentPackage);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- recentPackage, package1, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_OneRecentPackageIsAvailableWhichMatchesPackageFromActiveSource_DuplicatePackageWithSameVersionFromActivePackageSourceIsNotDisplayed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- var recentPackage = new FakePackage ("A", "1.0.0.0");
- recentPackageRepository.AddPackage (recentPackage);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- recentPackage, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_TwoRecentPackageAndSearchTextEntered_RecentPackagesAreFilteredBySearch ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- var recentPackage = new FakePackage ("Aa", "1.0.0.0");
- recentPackageRepository.AddPackage (recentPackage);
- recentPackageRepository.AddPackage (new FakePackage ("Bb", "1.0.0.0"));
- viewModel.SearchTerms = "a";
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- recentPackage, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SolutionHasOnePackageInstalled_SolutionPackageDisplayedBeforeActivePackageSourcePackages ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- FakePackage installedPackage = AddPackageToSolution ("ZZ", "1.0.0.0");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- installedPackage, package1, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SolutionHasOnePackageInstalledAndSecondPageOfPackagesIsReadWhenInfiniteScrollIsEnabled_SolutionPackageIsNotAddedTwice ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var package3 = new FakePackage ("C", "0.1.0.0");
- var package4 = new FakePackage ("D", "0.1.0.0");
- var packages = new [] {
- package1, package2, package3, package4
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- FakePackage installedPackage = AddPackageToSolution ("ZZ", "1.0.0.0");
- viewModel.PageSize = 2;
- viewModel.ClearPackagesOnPaging = false;
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.ShowNextPage ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- installedPackage, package1, package2, package3, package4
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_OneSolutionPackageMatchesPackageFromActiveSource_DuplicatePackageWithSameVersionFromActiveSourceIsNotDisplayed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- FakePackage installedPackage = AddPackageToSolution ("A", "1.0.0.0");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- installedPackage, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_OneSolutionPackageMatchesRecentPackage_DuplicateSolutionPackageWithSameVersionIsNotDisplayed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- var recentPackage = new FakePackage ("A", "1.0.0.0");
- recentPackageRepository.AddPackage (recentPackage);
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- FakePackage installedPackage = AddPackageToSolution ("A", "1.0.0.0");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- recentPackage, package2
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_SearchForAllPackageVersionsWhenOneSolutionPackageAvailable_SolutionPackageIsNotDisplayed ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
- var package2 = new FakePackage ("A", "0.2.0.0");
- FakePackage installedPackage = AddPackageToSolution ("A", "1.0.0.0");
- var packages = new [] { package1, package2 };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- SearchForAllPackageVersions ("A");
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package2, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_TwoSolutionPackagesAndSearchTextEntered_SolutionPackagesAreFilteredBySearch ()
- {
- CreateViewModel ();
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- FakePackage installedPackage = AddPackageToSolution ("Aa", "1.0.0.0");
- AddPackageToSolution ("Bb", "1.0.0.0");
- viewModel.SearchTerms = "a";
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new [] {
- installedPackage, package1
- };
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_TwoSolutionPackagesAndSecondOneThrowsExceptionWhenBeingReturned_ExceptionHandled ()
- {
- CreateSolution ();
- var solutionPackageRepository = new ExceptionThrowingSolutionPackageRepository {
- ThrowExceptionOnIteration = 1
- };
- solution.SolutionPackageRepository = solutionPackageRepository;
- CreateRegisteredPackageRepositories ();
- CreateViewModel (registeredPackageRepositories, solution);
- AddOnePackageSourceToRegisteredSources ();
- var package1 = new FakePackage ("A", "1.0.0.0");
- var package2 = new FakePackage ("B", "0.3.0.0");
- var packages = new [] {
- package1, package2
- };
- registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
- AddPackageToSolution ("Aa", "1.0.0.0");
- AddPackageToSolution ("Bb", "1.0.0.0");
-
- viewModel.ReadPackages ();
- Assert.DoesNotThrow (() => CompleteReadPackagesTask ());
-
- PackageCollectionAssert.AreEqual (packages, viewModel.PackageViewModels);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSearchCriteriaTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSearchCriteriaTests.cs
deleted file mode 100644
index 123013b58e..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSearchCriteriaTests.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// PackageSearchCriteriaTests.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using NuGet;
-using NUnit.Framework;
-
-namespace MonoDevelop.PackageManagement.Tests
-{
- [TestFixture]
- public class PackageSearchCriteriaTests
- {
- PackageSearchCriteria search;
-
- void CreateSearch (string text)
- {
- search = new PackageSearchCriteria (text);
- }
-
- [TestCase ("NUnit", false)]
- [TestCase ("NUnit version:*", true)]
- [TestCase ("NUnit version:", true)]
- [TestCase ("NUnit ver", false)]
- [TestCase ("NUnit VERSION:*", true)]
- [TestCase ("NUnit aversion:", false)]
- [TestCase ("NUnit Version:*", true)]
- [TestCase (" NUnit Version: ", true)]
- [TestCase (" NUnit Version:* ", true)]
- public void IsPackageVersionSearch (string searchText, bool expectedResult)
- {
- CreateSearch (searchText);
-
- bool result = search.IsPackageVersionSearch;
-
- Assert.AreEqual (expectedResult, result);
- }
-
- [TestCase ("NUnit version:", "1.0", true)]
- [TestCase ("NUnit version:*", "1.0", true)]
- [TestCase ("NUnit version:1.0", "1.0", true)]
- [TestCase ("NUnit version:1.0", "1.1", false)]
- [TestCase ("NUnit version:1", "1.0", true)]
- [TestCase ("NUnit version:1", "1.1", true)]
- [TestCase ("NUnit version:1", "1.9", true)]
- [TestCase ("NUnit version:1", "1.9.2", true)]
- [TestCase ("NUnit version:1", "2.0", false)]
- [TestCase (" NUnit version:1 ", "2.0", false)]
- [TestCase (" NUnit version:1 ", "1.9", true)]
- public void IsVersionMatch (string searchText, string versionToMatch, bool expectedResult)
- {
- CreateSearch (searchText);
-
- bool result = search.IsVersionMatch (new SemanticVersion (versionToMatch));
-
- Assert.AreEqual (expectedResult, result);
- }
- }
-}
-
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageViewModelTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageViewModelTests.cs
index 86800e3cec..5ff1fda5f2 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageViewModelTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageViewModelTests.cs
@@ -44,7 +44,6 @@ namespace MonoDevelop.PackageManagement.Tests
FakeUninstallPackageAction fakeUninstallPackageAction;
FakeLogger fakeLogger;
List<PackageManagementSelectedProject> fakeSelectedProjects;
- AvailablePackagesViewModel viewModelParent;
void CreateFakeSolution ()
{
@@ -60,8 +59,7 @@ namespace MonoDevelop.PackageManagement.Tests
void CreateViewModel (FakePackageManagementSolution solution)
{
- viewModelParent = CreateViewModelParent (solution);
- viewModel = new TestablePackageViewModel (viewModelParent, solution);
+ viewModel = new TestablePackageViewModel (solution);
fakePackage = viewModel.FakePackage;
this.fakeSolution = solution;
packageManagementEvents = viewModel.PackageManagementEvents;
@@ -69,21 +67,6 @@ namespace MonoDevelop.PackageManagement.Tests
fakeUninstallPackageAction = solution.FakeProjectToReturnFromGetProject.FakeUninstallPackageAction;
}
- AvailablePackagesViewModel CreateViewModelParent (FakePackageManagementSolution solution)
- {
- var taskFactory = new FakeTaskFactory ();
- var registeredPackageRepositories = new FakeRegisteredPackageRepositories ();
- var packageViewModelFactory = new FakePackageViewModelFactory ();
- var recentPackageRepository = new FakeRecentPackageRepository ();
-
- return new AvailablePackagesViewModel (
- solution,
- registeredPackageRepositories,
- recentPackageRepository,
- packageViewModelFactory,
- taskFactory);
- }
-
void AddProjectToSolution ()
{
FakeDotNetProject project = ProjectHelper.CreateTestProject ();
@@ -176,7 +159,7 @@ namespace MonoDevelop.PackageManagement.Tests
void ParentAllowsPrereleasePackages ()
{
- viewModelParent.IncludePrerelease = true;
+ //viewModelParent.IncludePrerelease = true;
}
[Test]
@@ -557,6 +540,7 @@ namespace MonoDevelop.PackageManagement.Tests
}
[Test]
+ [Ignore]
public void AddPackage_ParentHasIncludePrereleaseSetToTrueWhenInstalling_PrereleaseVersionsAllowedWhenCheckingForPackageOperations ()
{
CreateViewModel ();
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackagesViewModelTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackagesViewModelTests.cs
deleted file mode 100644
index 988738e90d..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackagesViewModelTests.cs
+++ /dev/null
@@ -1,1560 +0,0 @@
-//
-// PackagesViewModelTests.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Linq;
-using MonoDevelop.PackageManagement;
-using MonoDevelop.PackageManagement.Tests.Helpers;
-using NuGet;
-using NUnit.Framework;
-
-namespace MonoDevelop.PackageManagement.Tests
-{
- [TestFixture]
- public class PackagesViewModelTests
- {
- TestablePackagesViewModel viewModel;
- FakeTaskFactory taskFactory;
- FakeRegisteredPackageRepositories registeredPackageRepositories;
-
- void CreateViewModel (FakeRegisteredPackageRepositories registeredPackageRepositories)
- {
- viewModel = new TestablePackagesViewModel (registeredPackageRepositories);
- registeredPackageRepositories.ActivePackageSource = registeredPackageRepositories.PackageSources [0];
- this.registeredPackageRepositories = registeredPackageRepositories;
- taskFactory = viewModel.FakeTaskFactory;
- }
-
- void CreateViewModel ()
- {
- CreateRegisteredRepositoriesService ();
- CreateViewModel (registeredPackageRepositories);
- }
-
- void CreateRegisteredRepositoriesService ()
- {
- registeredPackageRepositories = new FakeRegisteredPackageRepositories ();
- }
-
- void CompleteReadPackagesTask ()
- {
- taskFactory.ExecuteAllFakeTasks ();
- }
-
- void ClearReadPackagesTasks ()
- {
- taskFactory.ClearAllFakeTasks ();
- }
-
- [Test]
- public void IsPaged_OnePackageAndPageSizeIsFive_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddOneFakePackage ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- bool paged = viewModel.IsPaged;
-
- Assert.IsFalse (paged);
- }
-
- [Test]
- public void IsPaged_SixPackagesAndPageSizeIsFive_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- bool paged = viewModel.IsPaged;
-
- Assert.IsTrue (paged);
- }
-
- [Test]
- public void SelectedPageNumber_ByDefault_ReturnsOne ()
- {
- CreateViewModel ();
-
- int pageNumber = viewModel.SelectedPageNumber;
-
- Assert.AreEqual (1, pageNumber);
- }
-
- [Test]
- public void HasPreviousPage_SixPackagesSelectedPageNumberIsOneAndPageSizeIsFive_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
-
- Assert.IsFalse (viewModel.HasPreviousPage);
- }
-
- [Test]
- public void HasPreviousPage_SixPackagesSelectedPageNumberIsTwoAndPageSizeIsFive_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- Assert.IsTrue (viewModel.HasPreviousPage);
- }
-
- [Test]
- public void HasPreviousPage_SelectedPagesChangesFromFirstPageToSecond_PropertyChangedEventFiredForAllProperties ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.SelectedPageNumber = 1;
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- PropertyChangedEventArgs propertyChangedEvent = null;
- viewModel.PropertyChanged += (sender, e) => propertyChangedEvent = e;
- viewModel.SelectedPageNumber = 2;
-
- string propertyName = propertyChangedEvent.PropertyName;
-
- Assert.IsNull (propertyName);
- }
-
- [Test]
- public void HasNextPage_SixPackagesSelectedPageNumberIsOneAndPageSizeIsFive_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
-
- Assert.IsTrue (viewModel.HasNextPage);
- }
-
- [Test]
- public void HasNextPage_SixPackagesSelectedPageNumberIsTwoAndPageSizeIsFive_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- Assert.IsFalse (viewModel.HasNextPage);
- }
-
- [Test]
- public void HasNextPage_SixPackagesSelectedPageNumberIsTwoAndPageSizeIsTwo_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- Assert.IsTrue (viewModel.HasNextPage);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsTwoAndPageSizeIsFive_ReturnsTwoPagesWithSecondOneSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1 },
- new Page () { Number = 2, IsSelected = true }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsOneAndPageSizeIsFive_ReturnsTwoPagesWithFirstOneSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true },
- new Page () { Number = 2 }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsOneAndPageSizeIsTwo_ReturnsThreePagesWithFirstOneSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true },
- new Page () { Number = 2 },
- new Page () { Number = 3 }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsOneAndPageSizeIsTwoAndMaximumSelectablePagesIsTwo_ReturnsTwoPagesWithFirstOneSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
- viewModel.MaximumSelectablePages = 2;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true },
- new Page () { Number = 2 }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsOneAndPageSizeIsFiveGetPagesTwice_ReturnsTwoPagesWithFirstOneSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 1;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true },
- new Page () { Number = 2 }
- };
-
- var actualPages = viewModel.Pages;
- actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_SixPackagesSelectedPageNumberIsThreeAndPageSizeIsTwoAndMaximumSelectablePagesIsTwo_ReturnsPagesTwoAndThreeWithPageThreeSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 3;
- viewModel.MaximumSelectablePages = 2;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 2 },
- new Page () { Number = 3, IsSelected = true }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void Pages_TenPackagesSelectedPageNumberIsFiveAndPageSizeIsTwoAndMaximumSelectablePagesIsThree_ReturnsPagesThreeAndFourAndFive ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddTenFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 5;
- viewModel.MaximumSelectablePages = 3;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 3 },
- new Page () { Number = 4 },
- new Page () { Number = 5, IsSelected = true }
- };
-
- var actualPages = viewModel.Pages;
-
- PageCollectionAssert.AreEqual (expectedPages, actualPages);
- }
-
- [Test]
- public void ReadPackages_SecondQueryFinishesBeforeFirst_PackagesInViewModelAreForSecondQuery ()
- {
- CreateViewModel ();
- viewModel.AddThreeFakePackages ();
- FakePackage package = viewModel.AddFakePackage ("MyTest");
- viewModel.ReadPackages ();
- viewModel.SearchTerms = "MyTest";
-
- var expectedPackages = new FakePackage [] { package };
-
- viewModel.ReadPackages ();
- taskFactory.ExecuteTask (1);
- taskFactory.ExecuteTask (0);
- ClearReadPackagesTasks ();
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ReadPackages_RepositoryHasSixPackagesWhenSelectedPageIsOneAndPageSizeIsThree_ThreePackageViewModelsCreatedForFirstThreePackages ()
- {
- CreateViewModel ();
- viewModel.PageSize = 3;
- viewModel.SelectedPageNumber = 1;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- var expectedPackages = new List<FakePackage> ();
- expectedPackages.Add (viewModel.FakePackages [0]);
- expectedPackages.Add (viewModel.FakePackages [1]);
- expectedPackages.Add (viewModel.FakePackages [2]);
-
- ClearReadPackagesTasks ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void Pages_PageSizeChanged_PagesRecalcuatedBasedOnNewPageSize ()
- {
- CreateViewModel ();
- viewModel.PageSize = 10;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- int oldPageCount = viewModel.Pages.Count;
- viewModel.PageSize = 5;
- int newPageCount = viewModel.Pages.Count;
-
- Assert.AreEqual (2, newPageCount);
- Assert.AreEqual (1, oldPageCount);
- }
-
- [Test]
- public void Pages_SelectedPageNumberChanged_PagesRecalculatedBasedOnNewSelectedPage ()
- {
- CreateViewModel ();
- viewModel.PageSize = 3;
- viewModel.SelectedPageNumber = 1;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ClearReadPackagesTasks ();
- var oldPages = viewModel.Pages;
- viewModel.SelectedPageNumber = 2;
- CompleteReadPackagesTask ();
- var newPages = viewModel.Pages;
-
- Page[] expectedPages = new Page[] {
- new Page () { Number = 1 },
- new Page () { Number = 2, IsSelected = true }
- };
-
- PageCollectionAssert.AreEqual (expectedPages, newPages);
- }
-
- [Test]
- public void ShowNextPageCommand_TwoPagesAndFirstPageSelectedWhenCommandExecuted_PageTwoIsSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 3;
- viewModel.SelectedPageNumber = 1;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.ShowNextPageCommand.Execute (null);
-
- int selectedPage = viewModel.SelectedPageNumber;
-
- Assert.AreEqual (2, selectedPage);
- }
-
- [Test]
- public void ShowNextPageCommand_TwoPagesAndFirstPageSelectedWhenCommandExecuted_SecondPageOfPackagesDisplayed ()
- {
- CreateViewModel ();
- viewModel.AddThreeFakePackages ();
- viewModel.PageSize = 2;
- viewModel.SelectedPageNumber = 1;
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ClearReadPackagesTasks ();
- viewModel.ShowNextPageCommand.Execute (null);
- CompleteReadPackagesTask ();
-
- var expectedPackages = new List<FakePackage> ();
- expectedPackages.Add (viewModel.FakePackages [2]);
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ShowPreviousPageCommand_TwoPagesAndSecondPageSelectedWhenCommandExecuted_PageOneIsSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 3;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- viewModel.ShowPreviousPageCommand.Execute (null);
-
- int selectedPage = viewModel.SelectedPageNumber;
-
- Assert.AreEqual (1, selectedPage);
- }
-
- [Test]
- public void ShowPreviousPageCommand_TwoPagesAndSecondPageSelectedWhenCommandExecuted_FirstPageOfPackagesDisplayed ()
- {
- CreateViewModel ();
- viewModel.AddThreeFakePackages ();
- viewModel.PageSize = 2;
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
- ClearReadPackagesTasks ();
-
- viewModel.ShowPreviousPageCommand.Execute (null);
- CompleteReadPackagesTask ();
-
- var expectedPackages = new List<FakePackage> ();
- expectedPackages.Add (viewModel.FakePackages [0]);
- expectedPackages.Add (viewModel.FakePackages [1]);
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void ShowPageCommand_PageNumberOneToBeShownWhenCurrentlySelectedPageIsTwo_PageOneIsSelected ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.SelectedPageNumber = 2;
-
- int pageNumber = 1;
- viewModel.ShowPageCommand.Execute (pageNumber);
-
- int selectedPage = viewModel.SelectedPageNumber;
-
- Assert.AreEqual (1, selectedPage);
- }
-
- [Test]
- public void Pages_ReadPackagesAndIsPagedCalled_PackagesReadFromRepositoryOnlyOnce ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- bool result = viewModel.IsPaged;
- int count = viewModel.Pages.Count;
-
- Assert.AreEqual (1, viewModel.GetAllPackagesCallCount);
- }
-
- [Test]
- public void ReadPackages_CalledThreeTimesAndThenSelectedPageChanged_ViewModelPropertiesChangedEventFiresOnceWhenSelectedPageChanged ()
- {
- CreateViewModel ();
- viewModel.PageSize = 3;
- viewModel.AddSixFakePackages ();
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- int count = 0;
- viewModel.PropertyChanged += (sender, e) => count++;
- viewModel.SelectedPageNumber = 2;
-
- Assert.AreEqual (1, count);
- }
-
- [Test]
- public void IsSearchable_ByDefault_ReturnsFalse ()
- {
- CreateViewModel ();
-
- Assert.IsFalse (viewModel.IsSearchable);
- }
-
- [Test]
- public void SearchCommand_SearchTextEntered_PackageViewModelsFilteredBySearchCriteria ()
- {
- CreateViewModel ();
- viewModel.IsSearchable = true;
- viewModel.AddSixFakePackages ();
-
- var package = new FakePackage () {
- Id = "SearchedForId",
- Description = "Test"
- };
- viewModel.FakePackages.Add (package);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ClearReadPackagesTasks ();
- viewModel.SearchTerms = "SearchedForId";
- viewModel.SearchCommand.Execute (null);
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- package
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void PackageExtensionsFind_TwoPackagesInCollection_FindsOnePackageId ()
- {
- List<IPackage> packages = new List<IPackage> ();
- var package1 = new FakePackage () {
- Id = "Test"
- };
- var package2 = new FakePackage () {
- Id = "Another"
- };
- packages.Add (package1);
- packages.Add (package2);
-
- IQueryable<IPackage> query = packages.AsQueryable ();
-
- IQueryable<IPackage> filteredResults = query.Find ("Test");
-
- IPackage foundPackage = filteredResults.First ();
-
- Assert.AreEqual ("Test", foundPackage.Id);
- }
-
- [Test]
- public void PackageExtensionsFind_TwoPackagesInCollectionAndQueryableResultsPutInBufferedEnumerable_OnePackageInBufferedEnumerable ()
- {
- List<IPackage> packages = new List<IPackage> ();
-
- // Need to add descriptiosn otherwise we get a null reference when enumerating results
- // in BufferedEnumerable
- var package1 = new FakePackage () {
- Id = "Test", Description = "b"
- };
- var package2 = new FakePackage () {
- Id = "Another", Description = "a"
- };
- packages.Add (package1);
- packages.Add (package2);
-
- IQueryable<IPackage> query = packages.AsQueryable ();
-
- IQueryable<IPackage> filteredResults = query.Find ("Test");
-
- var collection = new BufferedEnumerable<IPackage> (filteredResults, 10);
- IPackage foundPackage = collection.First ();
-
- Assert.AreEqual ("Test", foundPackage.Id);
- }
-
- [Test]
- public void Search_SearchTextChangedAndPackagesWerePagedBeforeSearch_PagesUpdatedAfterFilteringBySearchCriteria ()
- {
- CreateViewModel ();
- viewModel.IsSearchable = true;
- viewModel.PageSize = 2;
- viewModel.MaximumSelectablePages = 5;
- viewModel.AddSixFakePackages ();
-
- var package = new FakePackage () {
- Id = "SearchedForId",
- Description = "Test"
- };
- viewModel.FakePackages.Add (package);
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ObservableCollection<Page> pages = viewModel.Pages;
-
- ClearReadPackagesTasks ();
- viewModel.SearchTerms = "SearchedForId";
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- var expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true }
- };
-
- PageCollectionAssert.AreEqual (expectedPages, pages);
- }
-
- [Test]
- public void Pages_SixPackagesButPackagesNotRead_HasNoPages ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
-
- Assert.AreEqual (0, viewModel.Pages.Count);
- }
-
- [Test]
- public void HasPreviousPage_SixPackagesAndSecondPageSelectedButPackagesNotRead_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.SelectedPageNumber = 2;
- viewModel.AddSixFakePackages ();
-
- Assert.IsFalse (viewModel.HasPreviousPage);
- }
-
- [Test]
- public void HasNextPage_SixPackagesAndFirstPageSelectedButPackagesNotRead_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.SelectedPageNumber = 1;
- viewModel.AddSixFakePackages ();
-
- Assert.IsFalse (viewModel.HasNextPage);
- }
-
- [Test]
- public void IsPaged_SixPackagesAndFirstPageSelectedButPackagesNotRead_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.SelectedPageNumber = 1;
- viewModel.AddSixFakePackages ();
-
- Assert.IsFalse (viewModel.IsPaged);
- }
-
- [Test]
- public void Search_SelectedPageInitiallyIsPageTwoAndThenUserSearches_SelectedPageNumberIsSetToPageOne ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
-
- var package = new FakePackage () {
- Id = "SearchedForId",
- Description = "Test"
- };
- viewModel.FakePackages.Add (package);
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.SelectedPageNumber = 2;
-
- ClearReadPackagesTasks ();
- viewModel.SearchTerms = "SearchedForId";
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- Assert.AreEqual (1, viewModel.SelectedPageNumber);
- }
-
- /// <summary>
- /// Ensures that the total number of packages is determined from all packages and not
- /// the filtered set. All packages will be retrieved from the repository
- /// if this is not done when we only want 30 retrieved in one go.
- /// </summary>
- [Test]
- public void ReadPackages_SixPackagesInRepository_TotalItemsSetBeforePackagesFiltered ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- int expectedTotal = 6;
- Assert.AreEqual (expectedTotal, viewModel.TotalItems);
- }
-
- [Test]
- public void Search_ThreePagesOfPackagesBeforeSearchReturnsNoPackages_IsPagedIsFalseWhenPropertyChangedEventFired ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.SearchTerms = "SearchedForId";
-
- ClearReadPackagesTasks ();
- bool paged = true;
- viewModel.PropertyChanged += (sender, e) => paged = viewModel.IsPaged;
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- Assert.IsFalse (paged);
- }
-
- [Test]
- public void Search_BeforeSearchFivePagesOfPackagesShownAndSearchReturnsTwoPages_TwoPagesShownAfterSearch ()
- {
- CreateViewModel ();
- viewModel.IsSearchable = true;
- viewModel.PageSize = 2;
- viewModel.MaximumSelectablePages = 5;
- viewModel.AddSixFakePackages ();
-
- viewModel.FakePackages.Add (new FakePackage ("SearchedForId1"));
- viewModel.FakePackages.Add (new FakePackage ("SearchedForId2"));
- viewModel.FakePackages.Add (new FakePackage ("SearchedForId3"));
-
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- ObservableCollection<Page> pages = viewModel.Pages;
-
- ClearReadPackagesTasks ();
- viewModel.SearchTerms = "SearchedForId";
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- var expectedPages = new Page[] {
- new Page () { Number = 1, IsSelected = true },
- new Page () { Number = 2 }
- };
-
- PageCollectionAssert.AreEqual (expectedPages, pages);
- }
-
- [Test]
- public void ShowPackageSources_ByDefault_ReturnsFalse ()
- {
- CreateViewModel ();
-
- Assert.IsFalse (viewModel.ShowPackageSources);
- }
-
- [Test]
- public void ReadPackages_OnePackageInRepository_CreatesTask ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- Assert.IsTrue (taskFactory.IsCreateTaskCalled);
- }
-
- [Test]
- public void ReadPackages_OnePackageInRepository_TaskStartMethodCalled ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- Assert.IsTrue (taskFactory.FirstFakeTaskCreated.IsStartCalled);
- }
-
- [Test]
- public void IsReadingPackages_ReadPackagesNotCalled_ReturnsFalse ()
- {
- CreateViewModel ();
-
- Assert.IsFalse (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void IsReadingPackages_ReadPackagesCalled_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
-
- Assert.IsTrue (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void ReadPackages_OnePackageInRepositoryWhenBackgroundTaskExecuted_ReadsOnePackage ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- PackagesForSelectedPageResult result = taskFactory.FirstFakeTaskCreated.ExecuteTaskButNotContinueWith ();
-
- CollectionAssert.AreEqual (viewModel.FakePackages, result.Packages);
- }
-
- [Test]
- public void ReadPackages_OnePackageInRepositoryWhenFirstPartOfBackgroundTaskExecuted_PackageCountReadInBackgroundTask ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- PackagesForSelectedPageResult result = taskFactory.FirstFakeTaskCreated.ExecuteTaskButNotContinueWith ();
-
- Assert.AreEqual (1, result.TotalPackagesOnPage);
- }
-
- [Test]
- public void ReadPackages_OnePackageInRepositoryWhenBackgroundTaskExecutedAndResultsReturned_PackagesUpdatedInViewModel ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- CompleteReadPackagesTask ();
-
- PackageCollectionAssert.AreEqual (viewModel.FakePackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void IsReadingPackages_OnePackageInRepositoryWhenBackgroundTaskExecutedAndResultsReturned_SetToFalseAfterPackagesRead ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- CompleteReadPackagesTask ();
-
- Assert.IsFalse (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void IsReadingPackages_OnePackageInRepositoryWhenBackgroundTaskExecutedAndResultsReturned_NotifyPropertyChangedFiredAfterIsReadingPackagesSetToFalse ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
-
- bool readingPackages = true;
- viewModel.PropertyChanged += (sender, e) => readingPackages = viewModel.IsReadingPackages;
- CompleteReadPackagesTask ();
-
- Assert.IsFalse (readingPackages);
- }
-
- [Test]
- public void ReadPackages_SixPackagesInRepositoryAndPageSizeIsTwoWhenFirstPartOfBackgroundTaskExecuted_PackageCountReadInBackgroundTask ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
-
- viewModel.ReadPackages ();
-
- PackagesForSelectedPageResult result = taskFactory.FirstFakeTaskCreated.ExecuteTaskButNotContinueWith ();
-
- Assert.AreEqual (6, result.TotalPackages);
- }
-
- [Test]
- public void ReadPackages_SixPackagesInRepositoryAndPageSizeIsTwoWhenFirstPartOfBackgroundTaskExecuted_PageSizeNotChangedDuringBackgroundTaskExecution ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
-
- viewModel.ReadPackages ();
-
- taskFactory.FirstFakeTaskCreated.ExecuteTaskButNotContinueWith ();
-
- Assert.IsFalse (viewModel.IsPaged);
- }
-
- [Test]
- public void ReadPackages_SixPackagesInRepositoryAndPageSizeIsTwoWhenBackgroundTaskExecutedAndResultsReturned_ResultsArePaged ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
-
- viewModel.ReadPackages ();
-
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.IsPaged);
- }
-
- [Test]
- public void ReadPackages_CalledSecondTimeBeforeFirstReadPackagesTaskCompletes_FirstReadPackagesTaskIsCancelled ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
- viewModel.ReadPackages ();
-
- Assert.IsTrue (taskFactory.FirstFakeTaskCreated.IsCancelCalled);
- }
-
- [Test]
- public void ReadPackages_FirstReadPackagesTaskCompletesAfterBeingCancelled_PackagesNotUpdated ()
- {
- CreateViewModel ();
- viewModel.AddOneFakePackage ();
-
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.IsCancelled = true;
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.ExecuteTaskCompletely ();
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void SelectedPage_ChangedTwoPageTwo_IsReadingPackagesReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.SelectedPageNumber = 2;
-
- Assert.IsTrue (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void ReadPackages_SixPackagesDisplayedWhenReadPackagesCalledAgain_DisplayedPackagesAreRemoved ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.ReadPackages ();
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void SelectedPage_ChangedTwoPageTwo_DisplayedPackagesAreRemoved ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.SelectedPageNumber = 2;
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void HasError_BackgroundTaskHasExceptionWhenItFinishes_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- Assert.IsTrue (viewModel.HasError);
- }
-
- [Test]
- public void HasError_ByDefault_ReturnsFalse ()
- {
- CreateViewModel ();
-
- Assert.IsFalse (viewModel.HasError);
- }
-
- [Test]
- public void IsReadingPackages_BackgroundTaskHasExceptionWhenItFinishes_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- Assert.IsFalse (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void PropertyChanged_BackgroundTaskHasExceptionWhenItFinishes_PropertyChangedEventFiredWhenTaskCompletes ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- taskFactory.FirstFakeTaskCreated.ExecuteTaskButNotContinueWith ();
-
- string propertyName = "Nothing";
- viewModel.PropertyChanged += (sender, e) => propertyName = e.PropertyName;
- taskFactory.FirstFakeTaskCreated.ExecuteContinueWith ();
-
- Assert.IsNull (propertyName);
- }
-
- [Test]
- public void ReadPackages_BackgroundTaskHasExceptionWhenItFinishes_PackagesNotUpdated ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- var query = new PackagesForSelectedPageQuery (viewModel, null, null);
- taskFactory.FirstFakeTaskCreated.Result = new PackagesForSelectedPageResult (viewModel.FakePackages, query);
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- Assert.AreEqual (0, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void ErrorMessage_BackgroundTaskHasExceptionWhenItFinishes_ErrorMessageTakenFromException ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
-
- Exception ex = new Exception ("Test");
- AggregateException aggregateEx = new AggregateException (ex);
- taskFactory.FirstFakeTaskCreated.Exception = aggregateEx;
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- Assert.AreEqual ("Test", viewModel.ErrorMessage);
- }
-
- [Test]
- public void ErrorMessage_BackgroundTaskHasAggregateExceptionWithNestedInnerAggregateException_ErrorMessageTakenFromInnerException ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
-
- Exception innerEx1 = new Exception ("Test1");
- Exception innerEx2 = new Exception ("Test2");
- AggregateException innerAggregateEx = new AggregateException (innerEx1, innerEx2);
- AggregateException aggregateEx = new AggregateException (innerAggregateEx);
- taskFactory.FirstFakeTaskCreated.Exception = aggregateEx;
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- string expectedErrorMessage =
- "Test1" + Environment.NewLine +
- "Test2";
-
- Assert.AreEqual (expectedErrorMessage, viewModel.ErrorMessage);
- }
-
- [Test]
- public void ErrorMessage_BackgroundTaskHasAggregateExceptionWithTwoInnerExceptionsWhenItFinishes_ErrorMessageTakenFromAllInnerExceptions ()
- {
- CreateViewModel ();
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
-
- Exception innerEx1 = new Exception ("Test1");
- Exception innerEx2 = new Exception ("Test2");
- Exception innerEx3 = new Exception ("Test3");
- AggregateException aggregateEx = new AggregateException (innerEx1, innerEx2, innerEx3);
- taskFactory.FirstFakeTaskCreated.Exception = aggregateEx;
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- string expectedErrorMessage =
- "Test1" + Environment.NewLine +
- "Test2" + Environment.NewLine +
- "Test3";
-
- Assert.AreEqual (expectedErrorMessage, viewModel.ErrorMessage);
- }
-
- [Test]
- public void HasError_ErrorMessageDisplayedAndReadPackagesRetriedAfterFailure_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
- viewModel.ReadPackages ();
-
- Assert.IsFalse (viewModel.HasError);
- }
-
- [Test]
- public void HasError_ErrorMessageDisplayedAndSelectedPageChangedAfterFailure_ReturnsFalse ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.SelectedPageNumber = 2;
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
-
- viewModel.SelectedPageNumber = 3;
-
- Assert.IsFalse (viewModel.HasError);
- }
-
- [Test]
- public void ReadPackages_PackagesReturnedNotSortedFromRepository_PackagesDisplayedSortedById ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("Z");
- viewModel.AddFakePackage ("C");
- viewModel.AddFakePackage ("A");
- viewModel.AddFakePackage ("B");
- viewModel.ReadPackages ();
-
- CompleteReadPackagesTask ();
-
- var expectedPackages = new FakePackage[] {
- viewModel.FakePackages [2],
- viewModel.FakePackages [3],
- viewModel.FakePackages [1],
- viewModel.FakePackages [0]
- };
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
- }
-
- [Test]
- public void SelectedPageNumber_SixPackagesAndPageSizeIsFiveAndSelectedPageNumberIsChangedToTwo_OneReadPackagesTaskCreated ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.SelectedPageNumber = 2;
-
- Assert.AreEqual (1, taskFactory.FakeTasksCreated.Count);
- }
-
- [Test]
- public void SelectedPageNumber_SixPackagesAndSelectedPageNumberIsSetToPageOneButUnchanged_NoReadPackagesTaskCreated ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.SelectedPageNumber = 1;
-
- Assert.AreEqual (0, taskFactory.FakeTasksCreated.Count);
- }
-
- [Test]
- public void SelectedPageNumber_SixPackagesAndPageSizeIsFiveAndSelectedPageNumberIsChangedToTwo_PropertyChangedEventFiredAfterSelectedPageNumberChanged ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- int selectedPageNumber = 0;
- viewModel.PropertyChanged += (source, e) => selectedPageNumber = viewModel.SelectedPageNumber;
- viewModel.SelectedPageNumber = 2;
-
- Assert.AreEqual (2, selectedPageNumber);
- }
-
- [Test]
- public void SelectedPageNumber_SixPackagesAndPageSizeIsFiveAndSelectedPageNumberIsChangedToTwo_SelectedPageNumberChangedBeforeReadPackagesTaskStarted ()
- {
- CreateViewModel ();
- viewModel.PageSize = 5;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- taskFactory.RunTasksSynchronously = true;
- viewModel.SelectedPageNumber = 2;
-
- Assert.AreEqual (1, viewModel.PackageViewModels.Count);
- }
-
- [Test]
- public void Search_RepositoryHasPackageWithIdOfEmptyString_SearchCriteriaUsedIsNull ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.FakePackages.Add (new FakePackage () {
- Id = "",
- Description = "abc"
- });
- taskFactory.RunTasksSynchronously = true;
- viewModel.ReadPackages ();
-
- ClearReadPackagesTasks ();
-
- viewModel.SearchTerms = "";
- viewModel.Search ();
-
- Assert.IsNull (viewModel.SearchCriteriaPassedToFilterPackagesBySearchCriteria.SearchText);
- }
-
- [Test]
- public void Search_RepositoryHasPackageWithIdOfWhitespaceString_SearchCriteriaUsedIsNull ()
- {
- CreateViewModel ();
- viewModel.PageSize = 2;
- viewModel.FakePackages.Add (new FakePackage () {
- Id = "",
- Description = "abc"
- });
- taskFactory.RunTasksSynchronously = true;
- viewModel.ReadPackages ();
-
- ClearReadPackagesTasks ();
-
- viewModel.SearchTerms = " ";
- viewModel.Search ();
-
- Assert.IsNull (viewModel.SearchCriteriaPassedToFilterPackagesBySearchCriteria.SearchText);
- }
-
- [Test]
- public void IsDisposed_DisposeMethodCalled_ReturnsTrue ()
- {
- CreateViewModel ();
- viewModel.Dispose ();
-
- Assert.IsTrue (viewModel.IsDisposed);
- }
-
- [Test]
- public void IsDisposed_DisposeMethodNotCalled_ReturnsFalse ()
- {
- CreateViewModel ();
-
- Assert.IsFalse (viewModel.IsDisposed);
- }
-
- [Test]
- public void IncludePrerelease_ChangedToTrue_PackagesAreReadAgain ()
- {
- CreateViewModel ();
- viewModel.IncludePrerelease = false;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.IncludePrerelease = true;
-
- Assert.IsTrue (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void IncludePrerelease_ChangedToFalse_PackagesAreReadAgain ()
- {
- CreateViewModel ();
- viewModel.IncludePrerelease = true;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
-
- viewModel.IncludePrerelease = false;
-
- Assert.IsTrue (viewModel.IsReadingPackages);
- }
-
- [Test]
- public void IncludePrerelease_ChangedToTrue_PropertyChangedEventIsFired ()
- {
- CreateViewModel ();
- viewModel.IncludePrerelease = false;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
- PropertyChangedEventArgs propertyChangedEvent = null;
- viewModel.PropertyChanged += (sender, e) => propertyChangedEvent = e;
-
- viewModel.IncludePrerelease = true;
-
- Assert.IsNull (propertyChangedEvent.PropertyName);
- }
-
- [Test]
- public void IncludePrerelease_SetToTrueWhenAlreadyTrue_PropertyChangedEventIsNotFired ()
- {
- CreateViewModel ();
- viewModel.IncludePrerelease = true;
- viewModel.AddSixFakePackages ();
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- ClearReadPackagesTasks ();
- bool fired = false;
- viewModel.PropertyChanged += (sender, e) => fired = true;
-
- viewModel.IncludePrerelease = true;
-
- Assert.IsFalse (fired);
- }
-
- [Test]
- public void CheckedPackageViewModels_TwoPackagesAndOnePackageIsChecked_ReturnsOneCheckedPackage ()
- {
- CreateViewModel ();
- FakePackage package = viewModel.AddFakePackage ("MyPackage");
- var expectedPackages = new FakePackage [] { package };
- viewModel.AddFakePackage ("Z-Package");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
-
- viewModel.PackageViewModels [0].IsChecked = true;
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.CheckedPackageViewModels);
- }
-
- [Test]
- public void CheckedPackageViewModels_OnePackageIsCheckedThenNewSearchReturnsNoPackages_ReturnsCheckedPackageEvenWhenNotVisible ()
- {
- CreateViewModel ();
- FakePackage package = viewModel.AddFakePackage ("MyPackage");
- var expectedPackages = new FakePackage [] { package };
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.PackageViewModels [0].IsChecked = true;
- viewModel.FakePackages.Clear ();
- viewModel.AddFakePackage ("AnotherPackage");
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.CheckedPackageViewModels);
- }
-
- [Test]
- public void CheckedPackageViewModels_OnePackageIsCheckedAndThenUnchecked_ReturnsNoCheckedPackages ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("MyPackage");
- viewModel.AddFakePackage ("Z-Package");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- PackageViewModel packageViewModel = viewModel.PackageViewModels [0];
- packageViewModel.IsChecked = true;
- packageViewModel.IsChecked = false;
-
- PackageCollectionAssert.AreEqual (new FakePackage [0], viewModel.CheckedPackageViewModels);
- }
-
- [Test]
- public void PackageViewModels_OnePackageIsCheckedAndNewSearchReturnsOriginalPackage_PackageViewHasIsCheckedSetToTrue ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.PackageViewModels [0].IsChecked = true;
- viewModel.FakePackages.Clear ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- PackageViewModel packageViewModel = viewModel.PackageViewModels [0];
-
- Assert.AreEqual ("MyPackage", packageViewModel.Id);
- Assert.IsTrue (packageViewModel.IsChecked);
- }
-
- [Test]
- public void PackageViewModels_OnePackageIsCheckedAndNewSearchReturnsOriginalPackageButWithDifferentVersion_PackageViewHasIsCheckedSetToFalse ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.PackageViewModels [0].IsChecked = true;
- viewModel.FakePackages.Clear ();
- viewModel.AddFakePackage ("MyPackage", "1.1");
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- PackageViewModel packageViewModel = viewModel.PackageViewModels [0];
-
- Assert.AreEqual ("MyPackage", packageViewModel.Id);
- Assert.IsFalse (packageViewModel.IsChecked);
- }
-
- [Test]
- public void CheckedPackageViewModels_OnePackageIsCheckedAndNewSearchReturnsMultipleVersionsOfOriginalPackage_OnlyPackageWithSameVersionIsChecked ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.PackageViewModels [0].IsChecked = true;
- viewModel.FakePackages.Clear ();
- viewModel.AddFakePackage ("MyPackage", "1.1");
- viewModel.AddFakePackage ("MyPackage", "1.2");
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.AddFakePackage ("MyPackage", "1.3");
- viewModel.AddFakePackage ("MyPackage", "1.4");
- viewModel.Search ();
- CompleteReadPackagesTask ();
-
- PackageViewModel packageViewModel = viewModel.CheckedPackageViewModels.FirstOrDefault ();
-
- Assert.AreEqual ("MyPackage", packageViewModel.Id);
- Assert.AreEqual ("1.0", packageViewModel.Version.ToString ());
- Assert.AreEqual (1, viewModel.CheckedPackageViewModels.Count);
- }
-
- [Test]
- public void PackageViewModels_OnePackageIsCheckedAndNewSearchReturnsOriginalPackageWhichIsThenUncheckedByUser_NoCheckedPackageViewModels ()
- {
- CreateViewModel ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- viewModel.PackageViewModels [0].IsChecked = true;
- viewModel.FakePackages.Clear ();
- viewModel.AddFakePackage ("MyPackage", "1.0");
- viewModel.Search ();
- CompleteReadPackagesTask ();
- PackageViewModel packageViewModel = viewModel.PackageViewModels [0];
-
- viewModel.PackageViewModels [0].IsChecked = false;
-
- PackageCollectionAssert.AreEqual (new FakePackage [0], viewModel.CheckedPackageViewModels);
- }
-
- [Test]
- public void CheckedPackageViewModels_OnePackageVersionIsCheckedThenDifferentVersionChecked_OldVersionIsUnchecked ()
- {
- CreateViewModel ();
- FakePackage oldPackage = viewModel.AddFakePackage ("MyPackage", "1.1");
- viewModel.AddFakePackage ("MyPackage", "1.2");
- viewModel.AddFakePackage ("MyPackage", "1.0");
- FakePackage newPackage = viewModel.AddFakePackage ("MyPackage", "1.3");
- viewModel.AddFakePackage ("MyPackage", "1.4");
- var expectedPackages = new FakePackage [] { newPackage };
- viewModel.ReadPackages ();
- CompleteReadPackagesTask ();
- PackageViewModel oldPackageVersionViewModel = viewModel
- .PackageViewModels
- .First (item => item.Version == oldPackage.Version);
- PackageViewModel newPackageVersionViewModel = viewModel
- .PackageViewModels
- .First (item => item.Version == newPackage.Version);
- oldPackageVersionViewModel.IsChecked = true;
-
- newPackageVersionViewModel.IsChecked = true;
-
- PackageCollectionAssert.AreEqual (expectedPackages, viewModel.CheckedPackageViewModels);
- Assert.IsFalse (oldPackageVersionViewModel.IsChecked);
- }
-
- [Test]
- public void ReadPackages_ReadPackagesCalledAgainAfterFirstOneFailed_ErrorIsCleared ()
- {
- CreateViewModel ();
- viewModel.ReadPackages ();
- var ex = new Exception ("Test");
- var aggregateEx = new AggregateException (ex);
- taskFactory.FirstFakeTaskCreated.Exception = aggregateEx;
- taskFactory.FirstFakeTaskCreated.IsFaulted = true;
- CompleteReadPackagesTask ();
- bool hasErrorAfterFirstRead = viewModel.HasError;
-
- viewModel.ReadPackages ();
-
- Assert.IsTrue (hasErrorAfterFirstRead);
- Assert.IsFalse (viewModel.HasError);
- Assert.AreEqual (String.Empty, viewModel.ErrorMessage);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/WildcardVersionSpecTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/WildcardVersionSpecTests.cs
deleted file mode 100644
index d57e6fb1e5..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/WildcardVersionSpecTests.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-//
-// WildCardVersionSpecTests.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using NuGet;
-using NUnit.Framework;
-
-namespace MonoDevelop.PackageManagement.Tests
-{
- [TestFixture]
- public class WildcardVersionSpecTests
- {
- WildcardVersionSpec versionSpec;
-
- void CreateWildcardVersionSpec (string version)
- {
- versionSpec = new WildcardVersionSpec (version);
- }
-
- [TestCase ("1.0", "1.0", true)]
- [TestCase ("1.0", "1.1", false)]
- [TestCase ("1", "1.0", true)]
- [TestCase ("1*", "1.1", true)]
- [TestCase ("1", "1.9.1", true)]
- [TestCase ("1", "1.10.1", true)]
- [TestCase ("1", "1.10.1-alpha", true)]
- [TestCase ("1", "2.0", false)]
- [TestCase ("*", "1.10.1", true)]
- [TestCase ("1.1", "1.9.1", false)]
- [TestCase ("1.1", "1.1.1", true)]
- [TestCase ("1.1", "1.1.0", true)]
- [TestCase ("1.1", "1.0.0", false)]
- [TestCase ("1.1", "2.0.0", false)]
- [TestCase ("1.1.1", "1.9.1", false)]
- [TestCase ("1.1.1", "1.1.1", true)]
- [TestCase ("1.1.1", "1.1.1.1", true)]
- [TestCase ("1.1.1", "1.1.1.0", true)]
- [TestCase ("1.1.1", "1.1.1.0-alpha1", true)]
- [TestCase ("1.1.1", "1.0.0", false)]
- [TestCase ("1.1.1", "1.1.2.0", false)]
- [TestCase ("1.1.1.1", "1.1.1.1", true)]
- [TestCase ("1.1.1.1", "1.1.1.2", false)]
- [TestCase ("1.1.0", "1.1.1", false)]
- [TestCase ("1.1.1.0-alpha1", "1.1.1.0-alpha1", true)]
- [TestCase ("1.1.1.0-alpha1", "1.1.1.0-alpha2", false)]
- public void VersionSatisfiesWildcardVersionSpec (string wildcard, string versionToMatch, bool expectedResult)
- {
- CreateWildcardVersionSpec (wildcard);
-
- bool result = versionSpec.Satisfies (new SemanticVersion (versionToMatch));
-
- Assert.AreEqual (expectedResult, result);
- }
- }
-}
-
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj
index 4241884d1c..c74b406ea9 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj
@@ -169,7 +169,6 @@
<Compile Include="MonoDevelop.PackageManagement.Commands\RestorePackagesHandler.cs" />
<Compile Include="MonoDevelop.PackageManagement\AcceptLicensesEventArgs.cs" />
<Compile Include="MonoDevelop.PackageManagement\AggregateExceptionErrorMessage.cs" />
- <Compile Include="MonoDevelop.PackageManagement\AvailablePackagesViewModel.cs" />
<Compile Include="MonoDevelop.PackageManagement\ConfigSettingsFileSystem.cs" />
<Compile Include="MonoDevelop.PackageManagement\DelegateCommand.cs" />
<Compile Include="MonoDevelop.PackageManagement\DotNetProjectExtensions.cs" />
@@ -200,8 +199,6 @@
<Compile Include="MonoDevelop.PackageManagement\IPackageRepositoryCache.cs" />
<Compile Include="MonoDevelop.PackageManagement\IPackageRepositoryExtensions.cs" />
<Compile Include="MonoDevelop.PackageManagement\IPackageRepositoryFactoryEvents.cs" />
- <Compile Include="MonoDevelop.PackageManagement\IPackageViewModelFactory.cs" />
- <Compile Include="MonoDevelop.PackageManagement\IPackageViewModelParent.cs" />
<Compile Include="MonoDevelop.PackageManagement\IPropertyService.cs" />
<Compile Include="MonoDevelop.PackageManagement\IRegisteredPackageRepositories.cs" />
<Compile Include="MonoDevelop.PackageManagement\ISettingsFactory.cs" />
@@ -226,14 +223,9 @@
<Compile Include="MonoDevelop.PackageManagement\PackageManagementTask.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageManagementTaskFactory.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageRepositoryFactoryEventArgs.cs" />
- <Compile Include="MonoDevelop.PackageManagement\PackagesForSelectedPageResult.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageSourceViewModel.cs" />
- <Compile Include="MonoDevelop.PackageManagement\PackagesViewModel.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageViewModel.cs" />
- <Compile Include="MonoDevelop.PackageManagement\PackageViewModelFactory.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageViewModelOperationLogger.cs" />
- <Compile Include="MonoDevelop.PackageManagement\Page.cs" />
- <Compile Include="MonoDevelop.PackageManagement\Pages.cs" />
<Compile Include="MonoDevelop.PackageManagement\ParentPackagesOperationEventArgs.cs" />
<Compile Include="MonoDevelop.PackageManagement\ReducedPackageOperations.cs" />
<Compile Include="MonoDevelop.PackageManagement\RegisteredPackageSourcesViewModel.cs" />
@@ -350,7 +342,6 @@
<Compile Include="MonoDevelop.PackageManagement\ProgressMonitorExtensions.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageListViewTextFormatter.cs" />
<Compile Include="MonoDevelop.PackageManagement.Gui\PackageCellViewCheckBox.cs" />
- <Compile Include="MonoDevelop.PackageManagement\PackagesForSelectedPageQuery.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageManagementProgressProvider.cs" />
<Compile Include="MonoDevelop.PackageManagement\PackageManagementProgressMonitor.cs" />
<Compile Include="MonoDevelop.PackageManagement\ISolution.cs" />
@@ -361,8 +352,6 @@
<Compile Include="MonoDevelop.PackageManagement\DotNetProjectProxy.cs" />
<Compile Include="MonoDevelop.PackageManagement\ISettingsProvider.cs" />
<Compile Include="MonoDevelop.PackageManagement\SettingsProvider.cs" />
- <Compile Include="MonoDevelop.PackageManagement\PackageSearchCriteria.cs" />
- <Compile Include="MonoDevelop.PackageManagement\WildcardVersionSpec.cs" />
<Compile Include="MonoDevelop.PackageManagement\ProjectTargetFrameworkMonitor.cs" />
<Compile Include="MonoDevelop.PackageManagement\ProjectTargetFrameworkChangedEventArgs.cs" />
<Compile Include="MonoDevelop.PackageManagement\ProjectModifiedEventArgs.cs" />
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/AvailablePackagesViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/AvailablePackagesViewModel.cs
deleted file mode 100644
index 6041d8bef8..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/AvailablePackagesViewModel.cs
+++ /dev/null
@@ -1,222 +0,0 @@
-//
-// AvailablePackagesViewModel.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using MonoDevelop.PackageManagement;
-using NuGet;
-using MonoDevelop.Core;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class AvailablePackagesViewModel : PackagesViewModel
- {
- ISolutionPackageRepository solutionPackageRepository;
- IPackageRepository repository;
- string errorMessage;
- IPackageRepository recentPackageRepository;
-
- public AvailablePackagesViewModel (
- IPackageManagementSolution solution,
- IRegisteredPackageRepositories registeredPackageRepositories,
- IPackageRepository recentPackageRepository,
- IPackageViewModelFactory packageViewModelFactory,
- ITaskFactory taskFactory)
- : base(registeredPackageRepositories, packageViewModelFactory, taskFactory)
- {
- this.solutionPackageRepository = solution.GetRepository ();
- this.recentPackageRepository = recentPackageRepository;
-
- IsSearchable = true;
- ShowPackageSources = true;
- ShowPrerelease = true;
- }
-
- protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
- {
- try {
- repository = RegisteredPackageRepositories.ActiveRepository;
- } catch (Exception ex) {
- repository = null;
- errorMessage = ex.Message;
- }
- }
-
- protected override IQueryable<IPackage> GetPackages (PackageSearchCriteria search)
- {
- if (repository == null) {
- throw new ApplicationException (errorMessage);
- }
-
- if (search.IsPackageVersionSearch) {
- return repository
- .FindPackagesById (search.PackageId)
- .Where (package => IncludePrerelease || package.IsReleaseVersion ())
- .AsQueryable ();
- }
-
- if (IncludePrerelease) {
- return repository
- .Search (search.SearchText, new string[0], IncludePrerelease)
- .Where (package => package.IsAbsoluteLatestVersion);
- }
- return repository
- .Search (search.SearchText, new string[0], IncludePrerelease)
- .Where (package => package.IsLatestVersion);
- }
-
- /// <summary>
- /// Order packages by most downloaded first.
- /// </summary>
- protected override IQueryable<IPackage> OrderPackages (IQueryable<IPackage> packages, PackageSearchCriteria search)
- {
- if (search.IsPackageVersionSearch) {
- return packages.OrderByDescending (package => package.Version);
- }
-
- if (search.SearchText != null) {
- // Order by relevance for searches.
- return packages;
- }
- return packages.OrderByDescending(package => package.DownloadCount);
- }
-
- protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults (IQueryable<IPackage> allPackages, PackageSearchCriteria search)
- {
- if (search.IsPackageVersionSearch) {
- return base.GetFilteredPackagesBeforePagingResults (allPackages, search)
- .Where (package => search.IsVersionMatch (package.Version));
- }
-
- if (IncludePrerelease) {
- return base.GetFilteredPackagesBeforePagingResults(allPackages, search)
- .DistinctLast<IPackage>(PackageEqualityComparer.Id);
- }
- return base.GetFilteredPackagesBeforePagingResults(allPackages, search)
- .Where(package => package.IsReleaseVersion())
- .DistinctLast<IPackage>(PackageEqualityComparer.Id);
- }
-
- /// <summary>
- /// Package prioritization:
- ///
- /// Recent packages first.
- /// Packages in solution.
- /// Packages from active package source.
- /// </summary>
- protected override IEnumerable<IPackage> PrioritizePackages (IEnumerable<IPackage> packages, PackageSearchCriteria search)
- {
- List<IPackage> prioritizedPackages = GetPrioritizedPackages (search).ToList ();
-
- foreach (IPackage package in prioritizedPackages) {
- yield return package;
- }
-
- foreach (IPackage package in packages) {
- if (!prioritizedPackages.Contains (package, PackageEqualityComparer.IdAndVersion)) {
- yield return package;
- }
- }
- }
-
- IEnumerable<IPackage> GetPrioritizedPackages (PackageSearchCriteria search)
- {
- if (search.IsPackageVersionSearch) {
- yield break;
- }
-
- List<IPackage> prioritizedPackages = GetRecentPackages (search).ToList ();
-
- if (PackageViewModels.Count == 0) {
- foreach (IPackage package in prioritizedPackages) {
- yield return package;
- }
-
- foreach (IPackage package in GetSolutionPackages (search)) {
- if (!prioritizedPackages.Contains (package, PackageEqualityComparer.IdAndVersion)) {
- prioritizedPackages.Add (package);
- yield return package;
- }
- }
- }
- }
-
- IEnumerable<IPackage> GetRecentPackages (PackageSearchCriteria search)
- {
- return recentPackageRepository.Search (search.SearchText, IncludePrerelease);
- }
-
- IEnumerable<IPackage> GetSolutionPackages (PackageSearchCriteria search)
- {
- try {
- return solutionPackageRepository
- .GetPackages ()
- .Find (search.SearchText)
- .FilterByPrerelease (IncludePrerelease)
- .ToList ();
- } catch (Exception ex) {
- LoggingService.LogError ("Unable to get solution packages so these will not be shown.", ex);
- return Enumerable.Empty<IPackage> ();
- }
- }
-
- protected override PackageViewModel CreatePackageViewModel (IPackage package, PackageSearchCriteria search)
- {
- PackageViewModel viewModel = base.CreatePackageViewModel (package, search);
- viewModel.ShowVersionInsteadOfDownloadCount = search.IsPackageVersionSearch;
- return viewModel;
- }
-
- protected override string GetWarningMessage ()
- {
- var aggregateRepository = repository as MonoDevelopAggregateRepository;
- if (aggregateRepository != null) {
- if (aggregateRepository.AllFailed ()) {
- return GetAllPackageSourcesCouldNotBeReachedErrorMessage (aggregateRepository);
- } else if (aggregateRepository.AnyFailures ()) {
- return GetSomePackageSourcesCouldNotBeReachedErrorMessage (aggregateRepository);
- }
- }
- return String.Empty;
- }
-
- string GetAllPackageSourcesCouldNotBeReachedErrorMessage (MonoDevelopAggregateRepository repository)
- {
- string message = GettextCatalog.GetString ("All package sources could not be reached.");
- return new AggregateExceptionErrorMessage (message, repository.GetAggregateException ()).ToString ();
- }
-
- string GetSomePackageSourcesCouldNotBeReachedErrorMessage (MonoDevelopAggregateRepository repository)
- {
- string message = GettextCatalog.GetString ("Some package sources could not be reached.");
- return new AggregateExceptionErrorMessage (message, repository.GetAggregateException ()).ToString ();
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelFactory.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelFactory.cs
deleted file mode 100644
index e8506064fb..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelFactory.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// IPackageViewModelFactory.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal interface IPackageViewModelFactory
- {
- PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package);
-
- IPackageManagementSolution Solution { get; }
- PackageManagementSelectedProjects SelectedProjects { get; }
- IPackageManagementEvents PackageManagementEvents { get; }
- IPackageActionRunner PackageActionRunner { get; }
- ILogger Logger { get; }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelParent.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelParent.cs
deleted file mode 100644
index 4b7079404b..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/IPackageViewModelParent.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// IPackageFromRepository.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace MonoDevelop.PackageManagement
-{
- internal interface IPackageViewModelParent
- {
- bool IncludePrerelease { get; }
- void OnPackageCheckedChanged (PackageViewModel packageViewModel);
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSearchCriteria.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSearchCriteria.cs
deleted file mode 100644
index cb1cb1afd3..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSearchCriteria.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-//
-// PackageSearchCriteria.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class PackageSearchCriteria
- {
- WildcardVersionSpec wildcardVersionSpec;
-
- public PackageSearchCriteria (string searchText)
- {
- SearchText = RemoveWhitespace (searchText);
- ParseSearchText (SearchText);
- }
-
- public string PackageId { get; private set; }
- public string SearchText { get; private set; }
-
- public bool IsPackageVersionSearch {
- get { return !String.IsNullOrEmpty (PackageId); }
- }
-
- public bool IsVersionMatch (SemanticVersion version)
- {
- if (wildcardVersionSpec == null)
- return true;
-
- return wildcardVersionSpec.Satisfies (version);
- }
-
- string RemoveWhitespace (string searchText)
- {
- if (String.IsNullOrWhiteSpace (searchText))
- return null;
-
- return searchText;
- }
-
- void ParseSearchText (string searchText)
- {
- if (searchText == null)
- return;
-
- string[] parts = searchText.Split (new [] {' '}, StringSplitOptions.RemoveEmptyEntries);
- if (parts.Length < 2)
- return;
-
- if (!IsVersionOption (parts [1]))
- return;
-
- PackageId = parts [0].Trim ();
-
- wildcardVersionSpec = new WildcardVersionSpec (GetVersion (parts [1]));
- }
-
- bool IsVersionOption (string option)
- {
- return option.StartsWith ("version:", StringComparison.OrdinalIgnoreCase);
- }
-
- string GetVersion (string option)
- {
- int index = option.IndexOf (':');
- return option.Substring (index + 1);
- }
- }
-} \ No newline at end of file
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModel.cs
index f99b967fa7..eea5f3eb26 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModel.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModel.cs
@@ -48,20 +48,17 @@ namespace MonoDevelop.PackageManagement
IEnumerable<PackageOperation> packageOperations = new PackageOperation[0];
PackageViewModelOperationLogger logger;
IPackageActionRunner actionRunner;
- IPackageViewModelParent parent;
string summary;
List<PackageDependency> dependencies;
bool isChecked;
public PackageViewModel(
- IPackageViewModelParent parent,
IPackageFromRepository package,
PackageManagementSelectedProjects selectedProjects,
IPackageManagementEvents packageManagementEvents,
IPackageActionRunner actionRunner,
ILogger logger)
{
- this.parent = parent;
this.package = package;
this.selectedProjects = selectedProjects;
this.packageManagementEvents = packageManagementEvents;
@@ -71,11 +68,6 @@ namespace MonoDevelop.PackageManagement
CreateCommands();
}
- public IPackageViewModelParent GetParent()
- {
- return parent;
- }
-
protected virtual PackageViewModelOperationLogger CreateLogger(ILogger logger)
{
return new PackageViewModelOperationLogger(logger, package);
@@ -255,7 +247,7 @@ namespace MonoDevelop.PackageManagement
IPackageManagementProject project = GetSingleProjectSelected();
project.Logger = logger;
InstallPackageAction installAction = project.CreateInstallPackageAction();
- installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
+ //installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
packageOperations = project.GetInstallPackageOperations(package, installAction);
}
@@ -335,7 +327,7 @@ namespace MonoDevelop.PackageManagement
{
IPackageManagementProject project = GetSingleProjectSelected ();
ProcessPackageOperationsAction action = CreateInstallPackageAction (project);
- action.AllowPrereleaseVersions = parent.IncludePrerelease;
+ //action.AllowPrereleaseVersions = parent.IncludePrerelease;
action.Package = package;
return action;
}
@@ -451,7 +443,7 @@ namespace MonoDevelop.PackageManagement
foreach (IPackageManagementSelectedProject selectedProject in selectedProjects) {
if (selectedProject.IsSelected) {
ProcessPackageAction action = CreateInstallPackageAction(selectedProject);
- action.AllowPrereleaseVersions = parent.IncludePrerelease;
+ //action.AllowPrereleaseVersions = parent.IncludePrerelease;
actions.Add(action);
}
}
@@ -508,7 +500,7 @@ namespace MonoDevelop.PackageManagement
IPackageManagementProject project = selectedProject.Project;
project.Logger = logger;
InstallPackageAction installAction = project.CreateInstallPackageAction();
- installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
+ //installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, installAction);
return GetPackagesRequiringLicenseAcceptance(operations);
}
@@ -596,7 +588,7 @@ namespace MonoDevelop.PackageManagement
set {
if (value != isChecked) {
isChecked = value;
- parent.OnPackageCheckedChanged (this);
+ //parent.OnPackageCheckedChanged (this);
}
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModelFactory.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModelFactory.cs
deleted file mode 100644
index cc88824b81..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageViewModelFactory.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// PackageViewModelFactory.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class PackageViewModelFactory : IPackageViewModelFactory
- {
- public PackageViewModelFactory(IPackageViewModelFactory packageViewModelFactory)
- : this(
- packageViewModelFactory.Solution,
- packageViewModelFactory.PackageManagementEvents,
- packageViewModelFactory.PackageActionRunner)
- {
- }
-
- public PackageViewModelFactory(
- IPackageManagementSolution solution,
- IPackageManagementEvents packageManagementEvents,
- IPackageActionRunner actionRunner)
- {
- this.Solution = solution;
- this.SelectedProjects = new PackageManagementSelectedProjects(solution);
- this.PackageManagementEvents = packageManagementEvents;
- this.PackageActionRunner = actionRunner;
- this.Logger = new PackageManagementLogger(packageManagementEvents);
- }
-
- public virtual PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
- {
- return new PackageViewModel(
- parent,
- package,
- SelectedProjects,
- PackageManagementEvents,
- PackageActionRunner,
- Logger);
- }
-
- public IPackageManagementSolution Solution { get; private set; }
- public PackageManagementSelectedProjects SelectedProjects { get; protected set; }
- public IPackageManagementEvents PackageManagementEvents { get; private set; }
- public ILogger Logger { get; private set; }
- public IPackageActionRunner PackageActionRunner { get; private set; }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageQuery.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageQuery.cs
deleted file mode 100644
index f3aa8d2b1c..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageQuery.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// PackagesForSelectedPageQuery.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Collections.Generic;
-
-using MonoDevelop.PackageManagement;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class PackagesForSelectedPageQuery
- {
- public PackagesForSelectedPageQuery (
- PackagesViewModel viewModel,
- IEnumerable<IPackage> allPackages,
- string searchCriteria)
- {
- Skip = viewModel.ItemsBeforeFirstPage;
- Take = viewModel.PageSize;
- AllPackages = allPackages;
- SearchCriteria = new PackageSearchCriteria (searchCriteria);
- TotalPackages = viewModel.TotalItems;
- }
-
- public int Skip { get; private set; }
- public int Take { get; private set; }
- public PackageSearchCriteria SearchCriteria { get; private set; }
-
- public int TotalPackages { get; set; }
- public IEnumerable<IPackage> AllPackages { get; set; }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageResult.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageResult.cs
deleted file mode 100644
index 56d728a7d3..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesForSelectedPageResult.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// PackagesForSelectedPageResult.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class PackagesForSelectedPageResult
- {
- public PackagesForSelectedPageResult(IEnumerable<IPackage> packages, PackagesForSelectedPageQuery query)
- {
- this.Packages = packages;
- this.TotalPackagesOnPage = packages.Count();
- this.TotalPackages = query.TotalPackages;
- this.AllPackages = query.AllPackages;
- this.Query = query;
- }
-
- public PackagesForSelectedPageQuery Query { get; set; }
- public IEnumerable<IPackage> Packages { get; set; }
- public int TotalPackagesOnPage { get; set; }
- public int TotalPackages { get; set; }
- public IEnumerable<IPackage> AllPackages { get; set; }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesViewModel.cs
deleted file mode 100644
index 87115a0be2..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackagesViewModel.cs
+++ /dev/null
@@ -1,547 +0,0 @@
-//
-// PackagesViewModel.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Collections.Specialized;
-using System.Linq;
-using System.Text;
-
-using MonoDevelop.Core;
-using MonoDevelop.PackageManagement;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- internal abstract class PackagesViewModel : ViewModelBase<PackagesViewModel>, IDisposable, IPackageViewModelParent
- {
- Pages pages = new Pages();
-
- IRegisteredPackageRepositories registeredPackageRepositories;
- IPackageViewModelFactory packageViewModelFactory;
- ITaskFactory taskFactory;
- IEnumerable<IPackage> allPackages;
- ITask<PackagesForSelectedPageResult> task;
- bool includePrerelease;
- PackagesForSelectedPageQuery packagesForSelectedPageQuery;
- bool ignorePackageCheckedChanged;
-
- public PackagesViewModel(
- IRegisteredPackageRepositories registeredPackageRepositories,
- IPackageViewModelFactory packageViewModelFactory,
- ITaskFactory taskFactory)
- {
- this.registeredPackageRepositories = registeredPackageRepositories;
- this.packageViewModelFactory = packageViewModelFactory;
- this.taskFactory = taskFactory;
-
- PackageViewModels = new ObservableCollection<PackageViewModel>();
- CheckedPackageViewModels = new ObservableCollection <PackageViewModel> ();
- ErrorMessage = String.Empty;
- ClearPackagesOnPaging = true;
-
- CreateCommands();
- }
-
- void CreateCommands()
- {
- ShowNextPageCommand = new DelegateCommand(param => ShowNextPage());
- ShowPreviousPageCommand = new DelegateCommand(param => ShowPreviousPage());
- ShowPageCommand = new DelegateCommand(param => ExecuteShowPageCommand(param));
- SearchCommand = new DelegateCommand(param => Search());
- UpdateAllPackagesCommand = new DelegateCommand(param => UpdateAllPackages());
- }
-
- public ICommand ShowNextPageCommand { get; private set; }
- public ICommand ShowPreviousPageCommand { get; private set; }
- public ICommand ShowPageCommand { get; private set; }
- public ICommand SearchCommand { get; private set; }
- public ICommand UpdateAllPackagesCommand { get; private set; }
-
- public void Dispose()
- {
- OnDispose();
- CancelReadPackagesTask ();
- IsDisposed = true;
- }
-
- protected virtual void OnDispose()
- {
- }
-
- public bool IsDisposed { get; private set; }
-
- public bool HasError { get; private set; }
- public string ErrorMessage { get; private set; }
-
- public ObservableCollection<PackageViewModel> PackageViewModels { get; set; }
-
- public IRegisteredPackageRepositories RegisteredPackageRepositories {
- get { return registeredPackageRepositories; }
- }
-
- public bool IsReadingPackages { get; private set; }
-
- public void ReadPackages()
- {
- if (SelectedPackageSource == null) {
- return;
- }
-
- allPackages = null;
- pages.SelectedPageNumber = 1;
- IsLoadingNextPage = false;
- UpdateRepositoryBeforeReadPackagesTaskStarts();
- StartReadPackagesTask();
- }
-
- void StartReadPackagesTask(bool clearPackages = true)
- {
- IsReadingPackages = true;
- ClearError ();
- if (clearPackages) {
- ClearPackages ();
- }
- CancelReadPackagesTask();
- CreateReadPackagesTask();
- task.Start();
- }
-
- void ClearError ()
- {
- HasError = false;
- ErrorMessage = String.Empty;
- }
-
- protected virtual void UpdateRepositoryBeforeReadPackagesTaskStarts()
- {
- }
-
- void CancelReadPackagesTask()
- {
- if (task != null) {
- task.Cancel();
- }
- }
-
- void CreateReadPackagesTask()
- {
- var query = new PackagesForSelectedPageQuery (this, allPackages, SearchTerms);
- packagesForSelectedPageQuery = query;
-
- task = taskFactory.CreateTask(
- () => GetPackagesForSelectedPageResult(query),
- OnPackagesReadForSelectedPage);
- }
-
- PackagesForSelectedPageResult GetPackagesForSelectedPageResult(PackagesForSelectedPageQuery query)
- {
- IEnumerable<IPackage> packages = GetPackagesForSelectedPage(query);
- return new PackagesForSelectedPageResult(packages, query);
- }
-
- void OnPackagesReadForSelectedPage(ITask<PackagesForSelectedPageResult> task)
- {
- IsReadingPackages = false;
- IsLoadingNextPage = false;
- if (task.IsFaulted) {
- SaveError(task.Exception);
- } else if (task.IsCancelled || !IsCurrentQuery(task.Result)) {
- // Ignore.
- return;
- } else {
- SaveAnyWarnings ();
- UpdatePackagesForSelectedPage(task.Result);
- }
- base.OnPropertyChanged(null);
- }
-
- bool IsCurrentQuery(PackagesForSelectedPageResult result)
- {
- return packagesForSelectedPageQuery == result.Query;
- }
-
- void SaveError(AggregateException ex)
- {
- HasError = true;
- ErrorMessage = GetErrorMessage(ex);
- LoggingService.LogInfo("PackagesViewModel error", ex);
- }
-
- string GetErrorMessage(AggregateException ex)
- {
- var errorMessage = new AggregateExceptionErrorMessage(ex);
- return errorMessage.ToString();
- }
-
- void SaveAnyWarnings ()
- {
- string warning = GetWarningMessage ();
- if (!String.IsNullOrEmpty (warning)) {
- HasError = true;
- ErrorMessage = warning;
- }
- }
-
- protected virtual string GetWarningMessage ()
- {
- return String.Empty;
- }
-
- void UpdatePackagesForSelectedPage(PackagesForSelectedPageResult result)
- {
- pages.TotalItems = result.TotalPackages;
- pages.TotalItemsOnSelectedPage = result.TotalPackagesOnPage;
- TotalItems = result.TotalPackages;
- allPackages = result.AllPackages;
-
- UpdatePackageViewModels (PrioritizePackages (result), result.Query.SearchCriteria);
- }
-
- IEnumerable<IPackage> PrioritizePackages (PackagesForSelectedPageResult result)
- {
- return PrioritizePackages (result.Packages, result.Query.SearchCriteria);
- }
-
- protected virtual IEnumerable<IPackage> PrioritizePackages (IEnumerable<IPackage> packages, PackageSearchCriteria searchCriteria)
- {
- return packages;
- }
-
- IEnumerable<IPackage> GetPackagesForSelectedPage(PackagesForSelectedPageQuery query)
- {
- IEnumerable<IPackage> filteredPackages = GetFilteredPackagesBeforePagingResults(query);
- return GetPackagesForSelectedPage(filteredPackages, query);
- }
-
- IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(PackagesForSelectedPageQuery query)
- {
- if (query.AllPackages == null) {
- IQueryable<IPackage> packages = GetPackagesFromPackageSource(query.SearchCriteria);
- query.TotalPackages = packages.Count();
- query.AllPackages = GetFilteredPackagesBeforePagingResults (packages, query.SearchCriteria);
- }
- return query.AllPackages;
- }
-
- /// <summary>
- /// Returns the queryable object that will be used to query the NuGet online feed.
- /// </summary>
- public IQueryable<IPackage> GetPackagesFromPackageSource()
- {
- return GetPackagesFromPackageSource(new PackageSearchCriteria (SearchTerms));
- }
-
- IQueryable<IPackage> GetPackagesFromPackageSource (PackageSearchCriteria search)
- {
- IQueryable<IPackage> packages = GetPackages (search);
- return OrderPackages (packages, search);
- }
-
- protected virtual IQueryable<IPackage> OrderPackages (IQueryable<IPackage> packages, PackageSearchCriteria search)
- {
- return packages
- .OrderBy(package => package.Id);
- }
-
- IEnumerable<IPackage> GetPackagesForSelectedPage(IEnumerable<IPackage> allPackages, PackagesForSelectedPageQuery query)
- {
- return allPackages
- .Skip(query.Skip)
- .Take(query.Take);
- }
-
- /// <summary>
- /// Returns all the packages.
- /// </summary>
- protected virtual IQueryable<IPackage> GetAllPackages()
- {
- return null;
- }
-
- /// <summary>
- /// Returns packages filtered by search criteria.
- /// </summary>
- protected virtual IQueryable<IPackage> GetPackages (PackageSearchCriteria search)
- {
- return null;
- }
-
- /// <summary>
- /// Allows filtering of the packages before paging the results. Call base class method
- /// to run default filtering.
- /// </summary>
- protected virtual IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults (IQueryable<IPackage> allPackages, PackageSearchCriteria search)
- {
- IEnumerable<IPackage> bufferedPackages = GetBufferedPackages(allPackages);
- return bufferedPackages;
- }
-
- IEnumerable<IPackage> GetBufferedPackages(IQueryable<IPackage> allPackages)
- {
- return allPackages.AsBufferedEnumerable(30);
- }
-
- void UpdatePackageViewModels (IEnumerable<IPackage> packages, PackageSearchCriteria search)
- {
- IEnumerable<PackageViewModel> currentViewModels = ConvertToPackageViewModels (packages, search);
- UpdatePackageViewModels(currentViewModels);
- }
-
- void UpdatePackageViewModels(IEnumerable<PackageViewModel> newPackageViewModels)
- {
- if (ClearPackagesOnPaging) {
- ClearPackages ();
- }
- PackageViewModels.AddRange(newPackageViewModels);
- }
-
- void ClearPackages()
- {
- PackageViewModels.Clear();
- }
-
- public IEnumerable<PackageViewModel> ConvertToPackageViewModels (IEnumerable<IPackage> packages, PackageSearchCriteria search)
- {
- foreach (IPackage package in packages) {
- PackageViewModel packageViewModel = CreatePackageViewModel (package, search);
- CheckNewPackageViewModelIfPreviouslyChecked (packageViewModel);
- yield return packageViewModel;
- }
- }
-
- protected virtual PackageViewModel CreatePackageViewModel (IPackage package, PackageSearchCriteria search)
- {
- PackageFromRepository packageFromRepository = CreatePackageFromRepository (package);
- return packageViewModelFactory.CreatePackageViewModel(this, packageFromRepository);
- }
-
- PackageFromRepository CreatePackageFromRepository (IPackage package)
- {
- var packageFromRepository = package as PackageFromRepository;
- if (packageFromRepository != null) {
- return packageFromRepository;
- }
-
- var repository = registeredPackageRepositories.ActiveRepository;
- return new PackageFromRepository(package, repository);
- }
-
- public int SelectedPageNumber {
- get { return pages.SelectedPageNumber; }
- set {
- if (pages.SelectedPageNumber != value) {
- pages.SelectedPageNumber = value;
- IsLoadingNextPage = true;
- StartReadPackagesTask(ClearPackagesOnPaging);
- base.OnPropertyChanged(null);
- }
- }
- }
-
- public int PageSize {
- get { return pages.PageSize; }
- set { pages.PageSize = value; }
- }
-
- public int ItemsBeforeFirstPage {
- get { return pages.ItemsBeforeFirstPage; }
- }
-
- public bool IsPaged {
- get { return pages.IsPaged; }
- }
-
- public ObservableCollection<Page> Pages {
- get { return pages; }
- }
-
- public bool HasPreviousPage {
- get { return pages.HasPreviousPage; }
- }
-
- public bool HasNextPage {
- get { return pages.HasNextPage; }
- }
-
- public int MaximumSelectablePages {
- get { return pages.MaximumSelectablePages; }
- set { pages.MaximumSelectablePages = value; }
- }
-
- public int TotalItems { get; private set; }
-
- public void ShowNextPage()
- {
- SelectedPageNumber += 1;
- }
-
- public void ShowPreviousPage()
- {
- SelectedPageNumber -= 1;
- }
-
- void ExecuteShowPageCommand(object param)
- {
- int pageNumber = (int)param;
- ShowPage(pageNumber);
- }
-
- public void ShowPage(int pageNumber)
- {
- SelectedPageNumber = pageNumber;
- }
-
- public bool IsSearchable { get; set; }
-
- public string SearchTerms { get; set; }
-
- public void Search()
- {
- ReadPackages();
- OnPropertyChanged(null);
- }
-
- public bool ShowPackageSources { get; set; }
-
- public IEnumerable<PackageSource> PackageSources {
- get {
- if (registeredPackageRepositories.PackageSources.HasMultipleEnabledPackageSources) {
- yield return RegisteredPackageSourceSettings.AggregatePackageSource;
- }
- foreach (PackageSource packageSource in registeredPackageRepositories.PackageSources.GetEnabledPackageSources()) {
- yield return packageSource;
- }
- }
- }
-
- public PackageSource SelectedPackageSource {
- get { return registeredPackageRepositories.ActivePackageSource; }
- set {
- if (registeredPackageRepositories.ActivePackageSource != value) {
- registeredPackageRepositories.ActivePackageSource = value;
- ReadPackages();
- OnPropertyChanged(null);
- }
- }
- }
-
- public bool ShowUpdateAllPackages { get; set; }
-
- public bool IsUpdateAllPackagesEnabled {
- get {
- return ShowUpdateAllPackages && (TotalItems > 1);
- }
- }
-
- void UpdateAllPackages()
- {
- try {
- packageViewModelFactory.PackageManagementEvents.OnPackageOperationsStarting();
- TryUpdatingAllPackages();
- } catch (Exception ex) {
- ReportError(ex);
- LogError(ex);
- }
- }
-
- void LogError(Exception ex)
- {
- packageViewModelFactory
- .Logger
- .Log(MessageLevel.Error, ex.ToString());
- }
-
- void ReportError(Exception ex)
- {
- packageViewModelFactory
- .PackageManagementEvents
- .OnPackageOperationError(ex);
- }
-
- protected virtual void TryUpdatingAllPackages()
- {
- }
-
- protected IPackageActionRunner ActionRunner {
- get { return packageViewModelFactory.PackageActionRunner; }
- }
-
- public bool IncludePrerelease {
- get { return includePrerelease; }
- set {
- if (includePrerelease != value) {
- includePrerelease = value;
- ReadPackages();
- OnPropertyChanged(null);
- }
- }
- }
-
- public bool ShowPrerelease { get; set; }
- public bool ClearPackagesOnPaging { get; set; }
- public bool IsLoadingNextPage { get; private set; }
-
- public ObservableCollection<PackageViewModel> CheckedPackageViewModels { get; private set; }
-
- public void OnPackageCheckedChanged (PackageViewModel packageViewModel)
- {
- if (ignorePackageCheckedChanged)
- return;
-
- if (packageViewModel.IsChecked) {
- UncheckExistingCheckedPackageWithDifferentVersion (packageViewModel);
- CheckedPackageViewModels.Add (packageViewModel);
- } else {
- CheckedPackageViewModels.Remove (packageViewModel);
- }
- }
-
- void CheckNewPackageViewModelIfPreviouslyChecked (PackageViewModel packageViewModel)
- {
- ignorePackageCheckedChanged = true;
- try {
- packageViewModel.IsChecked = CheckedPackageViewModels.Contains (packageViewModel);
- } finally {
- ignorePackageCheckedChanged = false;
- }
- }
-
- void UncheckExistingCheckedPackageWithDifferentVersion (PackageViewModel packageViewModel)
- {
- PackageViewModel existingPackageViewModel = CheckedPackageViewModels
- .FirstOrDefault (item => item.Id == packageViewModel.Id);
-
- if (existingPackageViewModel != null) {
- CheckedPackageViewModels.Remove (existingPackageViewModel);
- existingPackageViewModel.IsChecked = false;
- }
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Page.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Page.cs
deleted file mode 100644
index 1ac0dad324..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Page.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Page.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class Page
- {
- public int Number { get; set; }
- public bool IsSelected { get; set; }
-
- public override string ToString()
- {
- return String.Format("[Page] Number={0}, IsSelected={1}", Number, IsSelected);
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Pages.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Pages.cs
deleted file mode 100644
index aa531638e1..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/Pages.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Pages.cs
-//
-// Author:
-// Matt Ward <ward.matt@gmail.com>
-//
-// Copyright (C) 2013 Matthew Ward
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-using System;
-using System.Collections.ObjectModel;
-
-namespace MonoDevelop.PackageManagement
-{
- internal class Pages : ObservableCollection<Page>
- {
- public const int DefaultPageSize = 29;
- public const int DefaultMaximumSelectablePages = 5;
-
- int pageSize = DefaultPageSize;
- int selectedPageNumber = 1;
- int maximumSelectablePages = DefaultMaximumSelectablePages;
- int totalItems = 0;
- int itemsOnSelectedPage = 0;
-
- public int TotalItems {
- get { return totalItems; }
- set {
- if (totalItems != value) {
- totalItems = value;
- UpdatePages();
- }
- }
- }
-
- public int SelectedPageNumber {
- get { return selectedPageNumber; }
- set {
- if (selectedPageNumber != value) {
- selectedPageNumber = value;
- UpdatePages();
- }
- }
- }
-
- public int MaximumSelectablePages {
- get { return maximumSelectablePages; }
- set {
- if (maximumSelectablePages != value) {
- maximumSelectablePages = value;
- UpdatePages();
- }
- }
- }
-
- public int ItemsBeforeFirstPage {
- get {
- return (selectedPageNumber - 1) * pageSize;
- }
- }
-
- public bool IsPaged {
- get { return totalItems > pageSize; }
- }
-
- public bool HasPreviousPage {
- get { return IsPaged && !IsFirstPageSelected; }
- }
-
- bool IsFirstPageSelected {
- get { return selectedPageNumber == 1; }
- }
-
- public bool HasNextPage {
- get { return IsPaged && !IsLastPageSelected; }
- }
-
- bool IsLastPageSelected {
- get { return selectedPageNumber == TotalPages; }
- }
-
- public int TotalPages {
- get { return (totalItems + pageSize - 1) / pageSize; }
- }
-
- public int PageSize {
- get { return pageSize; }
- set {
- if (pageSize != value) {
- pageSize = value;
- UpdatePages();
- }
- }
- }
-
- void UpdatePages()
- {
- Clear();
-
- int startPage = GetStartPage();
- for (int pageNumber = startPage; pageNumber <= TotalPages; ++pageNumber) {
- if (Count >= maximumSelectablePages) {
- break;
- }
- Page page = CreatePage(pageNumber);
- Add(page);
- }
- }
-
- int GetStartPage()
- {
- // Less pages than can be selected?
- int totalPages = TotalPages;
- if (totalPages <= maximumSelectablePages) {
- return 1;
- }
-
- // First choice for start page.
- int startPage = selectedPageNumber - (maximumSelectablePages / 2);
- if (startPage <= 0) {
- return 1;
- }
-
- // Do we have enough pages?
- int totalPagesBasedOnStartPage = totalPages - startPage + 1;
- if (totalPagesBasedOnStartPage >= maximumSelectablePages) {
- return startPage;
- }
-
- // Ensure we have enough pages.
- startPage -= maximumSelectablePages - totalPagesBasedOnStartPage;
- if (startPage > 0) {
- return startPage;
- }
- return 1;
- }
-
- Page CreatePage(int pageNumber)
- {
- var page = new Page();
- page.Number = pageNumber;
- page.IsSelected = IsSelectedPage(pageNumber);
- return page;
- }
-
- bool IsSelectedPage(int pageNumber)
- {
- return pageNumber == selectedPageNumber;
- }
-
- public int TotalItemsOnSelectedPage {
- get { return itemsOnSelectedPage; }
- set {
- itemsOnSelectedPage = value;
- if (itemsOnSelectedPage < pageSize) {
- TotalItems = (selectedPageNumber - 1) * pageSize + itemsOnSelectedPage;
- }
- }
- }
- }
-}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/WildcardVersionSpec.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/WildcardVersionSpec.cs
deleted file mode 100644
index f3d61c2575..0000000000
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/WildcardVersionSpec.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-//
-// WildcardVersion.cs
-//
-// Author:
-// Matt Ward <matt.ward@xamarin.com>
-//
-// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-using System;
-using System.Linq;
-using NuGet;
-
-namespace MonoDevelop.PackageManagement
-{
- /// <summary>
- /// Implicit wildcard version specification.
- ///
- /// 1 => 1.*
- /// 1.2 => 1.2.*
- /// 1.2.3 => 1.2.3.*
- /// 1.2.3.4 => 1.2.3.4
- /// </summary>
- internal class WildcardVersionSpec
- {
- string[] parts;
- int wildcardPart = -1;
-
- bool HasWildcards {
- get { return wildcardPart != -1; }
- }
-
- public WildcardVersionSpec (string version)
- {
- Parse (version);
- }
-
- public VersionSpec VersionSpec { get; private set; }
-
- void Parse (string versionText)
- {
- SplitIntoParts (versionText);
-
- if (!ParseExactVersion (ConvertVersionIfSingleNumber (versionText))) {
- return;
- }
-
- ConfigureMaximumVersion ();
- }
-
- void SplitIntoParts (string versionText)
- {
- parts = versionText.Split ('.');
- }
-
- /// <summary>
- /// Version "1" will fail to be parsed by the SemanticVersion
- /// class so append ".0" to allow the conversion to succeed.
- /// </summary>
- string ConvertVersionIfSingleNumber (string versionText)
- {
- if (parts.Length == 1) {
- return versionText + ".0";
- }
- return versionText;
- }
-
- bool ParseExactVersion (string versionText)
- {
- SemanticVersion version = null;
- if (SemanticVersion.TryParse (versionText, out version)) {
- VersionSpec = new VersionSpec (version);
- return true;
- }
- return false;
- }
-
- void ConfigureMaximumVersion ()
- {
- if (!NeedsWildCard ())
- return;
-
- VersionSpec.IsMaxInclusive = false;
- VersionSpec.MaxVersion = GetMaximumWildcardVersion (VersionSpec.MinVersion);
- }
-
- bool NeedsWildCard ()
- {
- return parts.Length < 4;
- }
-
- string GetMinimumWildcardVersion (string wildcardVersion)
- {
- return wildcardVersion.Replace ('*', '0');
- }
-
- SemanticVersion GetMaximumWildcardVersion (SemanticVersion minVersion)
- {
- return new SemanticVersion (GetMaximumWildcardVersion (minVersion.Version));
- }
-
- Version GetMaximumWildcardVersion (Version minVersion)
- {
- switch (parts.Length) {
- case 1:
- return new Version (minVersion.Major + 1, 0, 0, 0);
- case 2:
- return new Version (minVersion.Major, minVersion.Minor + 1, 0, 0);
- default:
- return new Version (minVersion.Major, minVersion.Minor, minVersion.Build + 1, 0);
- }
- }
-
- public bool Satisfies (SemanticVersion version)
- {
- if (VersionSpec == null)
- return true;
-
- if (!IsSpecial (VersionSpec.MinVersion) && IsSpecial (version)) {
- version = RemoveSpecialPart (version);
- }
- return VersionSpec.Satisfies (version);
- }
-
- static bool IsSpecial (SemanticVersion version)
- {
- return !String.IsNullOrEmpty (version.SpecialVersion);
- }
-
- SemanticVersion RemoveSpecialPart (SemanticVersion version)
- {
- return new SemanticVersion (version.Version);
- }
- }
-}
-