diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2017-08-03 15:03:12 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2017-08-03 15:03:12 +0300 |
commit | 24b4e73ddb55ab14f52d2143c9c523db64ff796b (patch) | |
tree | aa6fca2411be9a48811f0f636f371ad3875cb559 /main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers | |
parent | 929dd3afb834c7f0c1ac0b9dd29243e5e303c80a (diff) | |
parent | 48cc41491cf9ddfc5a650b6b901c5937eab4366c (diff) |
Merge branch 'master' into master-refactorings
Diffstat (limited to 'main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers')
6 files changed, 113 insertions, 20 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeMonoDevelopBuildIntegratedRestorer.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeMonoDevelopBuildIntegratedRestorer.cs new file mode 100644 index 0000000000..c60ab67a26 --- /dev/null +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeMonoDevelopBuildIntegratedRestorer.cs @@ -0,0 +1,58 @@ +// +// FakeMonoDevelopBuildIntegratedRestorer.cs +// +// Author: +// Matt Ward <matt.ward@xamarin.com> +// +// Copyright (c) 2017 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.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using NuGet.ProjectManagement.Projects; + +namespace MonoDevelop.PackageManagement.Tests.Helpers +{ + class FakeMonoDevelopBuildIntegratedRestorer : IMonoDevelopBuildIntegratedRestorer + { + public bool LockFileChanged { get; set; } + + public BuildIntegratedNuGetProject ProjectRestored; + + public Task RestorePackages ( + BuildIntegratedNuGetProject project, + CancellationToken cancellationToken) + { + ProjectRestored = project; + return Task.FromResult (0); + } + + public List<BuildIntegratedNuGetProject> ProjectsRestored = new List<BuildIntegratedNuGetProject> (); + + public Task RestorePackages ( + IEnumerable<BuildIntegratedNuGetProject> projects, + CancellationToken cancellationToken) + { + ProjectsRestored.AddRange (projects); + return Task.FromResult (0); + } + } +} diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProject.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProject.cs index d38c7516eb..42fefb7f77 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProject.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeNuGetProject.cs @@ -107,7 +107,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers return Task.FromResult (0); } - public void NotifyProjectReferencesChanged () + public void NotifyProjectReferencesChanged (bool includeTransitiveProjectReferences) { } 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 86d485ad5b..b95f9535d1 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 @@ -32,23 +32,13 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers { class FakeNuGetSettings : ISettings { - public string FileName { - get { - throw new NotImplementedException (); - } - } + public string FileName { get; set; } = "NuGet.Config"; public IEnumerable<ISettings> Priority { - get { - throw new NotImplementedException (); - } + get { yield return this; } } - public string Root { - get { - throw new NotImplementedException (); - } - } + public string Root { get; set; } = string.Empty; public event EventHandler SettingsChanged; @@ -69,16 +59,26 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers public IList<KeyValuePair<string, string>> GetNestedValues (string section, string subSection) { - throw new NotImplementedException (); + return new List<KeyValuePair<string, string>> (); } + public Dictionary<string, List<SettingValue>> SettingValues = new Dictionary<string, List<SettingValue>> (); + public IList<SettingValue> GetSettingValues (string section, bool isPath = false) { - throw new NotImplementedException (); + List<SettingValue> settings = null; + if (SettingValues.TryGetValue (section, out settings)) + return settings; + return new List<SettingValue> (); } + public Dictionary<string, string> Values = new Dictionary<string, string> (); + public string GetValue (string section, string key, bool isPath = false) { + string value = null; + if (Values.TryGetValue (GetKey (section, key), out value)) + return value; return null; } @@ -89,7 +89,12 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers public void SetValue (string section, string key, string value) { - throw new NotImplementedException (); + Values [GetKey (section, key)] = value; + } + + public void SetValues (string section, List<SettingValue> values) + { + SettingValues [section] = values; } public void SetValues (string section, IReadOnlyList<SettingValue> values) @@ -101,6 +106,11 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers { throw new NotImplementedException (); } + + static string GetKey (string section, string key) + { + return $"{section}-{key}"; + } } } diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeSolutionManager.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeSolutionManager.cs index cb6291da22..5f4c0a240f 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeSolutionManager.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/FakeSolutionManager.cs @@ -27,6 +27,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using MonoDevelop.Projects; using NuGet.Configuration; using NuGet.PackageManagement; using NuGet.ProjectManagement; @@ -113,14 +114,20 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers throw new NotImplementedException (); } - public Dictionary<IDotNetProject, FakeNuGetProject> NuGetProjects = new Dictionary<IDotNetProject, FakeNuGetProject> (); + public Dictionary<IDotNetProject, NuGetProject> NuGetProjects = new Dictionary<IDotNetProject, NuGetProject> (); + public Dictionary<DotNetProject, NuGetProject> NuGetProjectsUsingDotNetProjects = new Dictionary<DotNetProject, NuGetProject> (); public NuGetProject GetNuGetProject (IDotNetProject project) { - FakeNuGetProject nugetProject = null; + NuGetProject nugetProject = null; if (NuGetProjects.TryGetValue (project, out nugetProject)) return nugetProject; + if (project.DotNetProject != null) { + if (NuGetProjectsUsingDotNetProjects.TryGetValue (project.DotNetProject, out nugetProject)) + return nugetProject; + } + return new FakeNuGetProject (project); } diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableDotNetCoreNuGetProject.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableDotNetCoreNuGetProject.cs index 6380f38036..3ccbecf181 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableDotNetCoreNuGetProject.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableDotNetCoreNuGetProject.cs @@ -34,6 +34,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers public TestableDotNetCoreNuGetProject (DotNetProject project) : base (project, new [] { "netcoreapp1.0" }) { + BuildIntegratedRestorer = new FakeMonoDevelopBuildIntegratedRestorer (); } public bool IsSaved { get; set; } @@ -43,5 +44,14 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers IsSaved = true; return Task.FromResult (0); } + + public FakeMonoDevelopBuildIntegratedRestorer BuildIntegratedRestorer; + public Solution SolutionUsedToCreateBuildIntegratedRestorer; + + protected override IMonoDevelopBuildIntegratedRestorer CreateBuildIntegratedRestorer (Solution solution) + { + SolutionUsedToCreateBuildIntegratedRestorer = solution; + return BuildIntegratedRestorer; + } } } diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs index cd658a6425..35e7b56720 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableMonoDevelopProjectSystem.cs @@ -49,6 +49,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers public static Action<Action> GuiSyncDispatcher = handler => handler.Invoke ();
public static Func<Func<Task>,Task> GuiSyncDispatcherFunc = handler => handler.Invoke();
+ public static Func<Func<Task<bool>>,Task<bool>> GuiSyncDispatcherReturnBoolFunc = handler => handler.Invoke ();
public TestableMonoDevelopProjectSystem (IDotNetProject project)
: this (
@@ -64,7 +65,14 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers FakeNuGetProjectContext context,
IPackageManagementFileService fileService,
PackageManagementEvents packageManagementEvents)
- : base (project, context, fileService, packageManagementEvents, GuiSyncDispatcher, GuiSyncDispatcherFunc)
+ : base (
+ project,
+ context,
+ fileService,
+ packageManagementEvents,
+ GuiSyncDispatcher,
+ GuiSyncDispatcherFunc,
+ GuiSyncDispatcherReturnBoolFunc)
{
FakeNuGetProjectContext = context;
FakeFileService = (FakeFileService)fileService;
|