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.cs30
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSpecCreatorTests.cs93
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSpecCreator.cs16
3 files changed, 122 insertions, 17 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 725ea709ef..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,12 +59,17 @@ 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> ();
@@ -97,6 +92,11 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
Values [GetKey (section, key)] = value;
}
+ public void SetValues (string section, List<SettingValue> values)
+ {
+ SettingValues [section] = values;
+ }
+
public void SetValues (string section, IReadOnlyList<SettingValue> values)
{
throw new NotImplementedException ();
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSpecCreatorTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSpecCreatorTests.cs
index bd2e4c9fe1..e3a178a874 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSpecCreatorTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageSpecCreatorTests.cs
@@ -24,6 +24,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using System.Collections.Generic;
using System.Linq;
using MonoDevelop.Core.Assemblies;
using MonoDevelop.PackageManagement.Tests.Helpers;
@@ -99,6 +100,12 @@ namespace MonoDevelop.PackageManagement.Tests
settings.SetValue (SettingsUtility.ConfigSection, "globalPackagesFolder", path);
}
+ void AddFallbackFolder (params string[] folders)
+ {
+ var values = folders.Select (folder => new SettingValue (folder, folder, false)).ToList ();
+ settings.SetValues (ConfigurationConstants.FallbackPackageFolders, values);
+ }
+
[Test]
public void CreatePackageSpec_NewProject_BaseIntermediatePathUsedForProjectAssetsJsonFile ()
{
@@ -308,7 +315,7 @@ namespace MonoDevelop.PackageManagement.Tests
}
[Test]
- public void CreatePackageSpec_NewProject_RestoreMetadataHasPackagesPathTakenFromSettings ()
+ public void CreatePackageSpec_PackagesPath_RestoreMetadataHasPackagesPathTakenFromSettings ()
{
CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
@@ -320,5 +327,89 @@ namespace MonoDevelop.PackageManagement.Tests
Assert.AreEqual (packagesPath, spec.RestoreMetadata.PackagesPath);
}
+
+ [Test]
+ public void CreatePackageSpec_ConfigFilePaths_RestoreMetadataHasConfigFilesTakenFromSettings ()
+ {
+ CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
+ project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
+ AddTargetFramework ("netcoreapp1.0");
+ string configFilePath = @"c:\users\test\.nuget\NuGet\NuGet.Config".ToNativePath ();
+ settings.FileName = configFilePath;
+
+ CreatePackageSpec ();
+
+ Assert.AreEqual (1, spec.RestoreMetadata.ConfigFilePaths.Count);
+ Assert.AreEqual (configFilePath, spec.RestoreMetadata.ConfigFilePaths[0]);
+ }
+
+ [Test]
+ public void CreatePackageSpec_PackageSources_RestoreMetadataHasSourcesTakenFromSettings ()
+ {
+ CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
+ project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
+ AddTargetFramework ("netcoreapp1.0");
+ var packageSource = new PackageSource ("https://nuget.org", "NuGet source");
+ var sources = new List<SettingValue> ();
+ sources.Add (new SettingValue (packageSource.Name, packageSource.Source, false));
+ settings.SetValues (ConfigurationConstants.PackageSources, sources);
+
+ CreatePackageSpec ();
+
+ Assert.AreEqual (1, spec.RestoreMetadata.Sources.Count);
+ Assert.AreEqual (packageSource.Name, spec.RestoreMetadata.Sources[0].Name);
+ Assert.AreEqual (packageSource.Source, spec.RestoreMetadata.Sources[0].Source);
+ }
+
+ [Test]
+ public void CreatePackageSpec_FallbackFolders_RestoreMetadataHasFallbackFoldersTakenFromSettings ()
+ {
+ CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
+ project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
+ AddTargetFramework ("netcoreapp1.0");
+ string folderPath = @"c:\users\test\packages".ToNativePath ();
+ AddFallbackFolder (folderPath);
+
+ CreatePackageSpec ();
+
+ Assert.AreEqual (1, spec.RestoreMetadata.FallbackFolders.Count);
+ Assert.AreEqual (folderPath, spec.RestoreMetadata.FallbackFolders[0]);
+ }
+
+ [Test]
+ public void CreatePackageSpec_ProjectWideWarningProperties_RestoreMetadataHasProjectWideWarningProperties ()
+ {
+ CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
+ project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
+ AddTargetFramework ("netcoreapp1.0");
+
+ project.AddProperty ("TreatWarningsAsErrors", bool.TrueString);
+ project.AddProperty ("WarningsAsErrors", "NU1801");
+ project.AddProperty ("NoWarn", "NU1701");
+
+ CreatePackageSpec ();
+
+ Assert.IsTrue (spec.RestoreMetadata.ProjectWideWarningProperties.AllWarningsAsErrors);
+ Assert.IsTrue (spec.RestoreMetadata.ProjectWideWarningProperties.WarningsAsErrors.Contains (NuGet.Common.NuGetLogCode.NU1801));
+ Assert.IsTrue (spec.RestoreMetadata.ProjectWideWarningProperties.NoWarn.Contains (NuGet.Common.NuGetLogCode.NU1701));
+ }
+
+ [Test]
+ public void CreatePackageSpec_TreatWarningsAsErrorsIsFalse_RestoreMetadataHasTreatWarningsAsErrorsSetToFalse ()
+ {
+ CreateProject ("MyProject", @"d:\projects\MyProject\MyProject.csproj");
+ project.BaseIntermediateOutputPath = @"d:\projects\MyProject\obj".ToNativePath ();
+ AddTargetFramework ("netcoreapp1.0");
+
+ project.AddProperty ("TreatWarningsAsErrors", bool.FalseString);
+ project.AddProperty ("WarningsAsErrors", "NU1801");
+ project.AddProperty ("NoWarn", "NU1701");
+
+ CreatePackageSpec ();
+
+ Assert.IsFalse (spec.RestoreMetadata.ProjectWideWarningProperties.AllWarningsAsErrors);
+ Assert.IsTrue (spec.RestoreMetadata.ProjectWideWarningProperties.WarningsAsErrors.Contains (NuGet.Common.NuGetLogCode.NU1801));
+ Assert.IsTrue (spec.RestoreMetadata.ProjectWideWarningProperties.NoWarn.Contains (NuGet.Common.NuGetLogCode.NU1701));
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSpecCreator.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSpecCreator.cs
index 2b23939bee..cd236ff54a 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSpecCreator.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageSpecCreator.cs
@@ -20,6 +20,7 @@
// limitations under the License.
//
// Based on parts of src/NuGet.Core/NuGet.Commands/RestoreCommand/Utility/MSBuildRestoreUtility.cs
+// and src/NuGet.Clients/NuGet.PackageManagement.VisualStudio/Projects/LegacyPackageReferenceProject.cs
using System;
using System.Collections.Generic;
@@ -95,13 +96,17 @@ namespace MonoDevelop.PackageManagement
static ProjectRestoreMetadata CreateRestoreMetadata (PackageSpec packageSpec, IDotNetProject project, ISettings settings)
{
return new ProjectRestoreMetadata {
+ ConfigFilePaths = SettingsUtility.GetConfigFilePaths (settings).ToList (),
+ FallbackFolders = SettingsUtility.GetFallbackPackageFolders (settings).ToList (),
PackagesPath = SettingsUtility.GetGlobalPackagesFolder (settings),
ProjectStyle = ProjectStyle.PackageReference,
ProjectPath = project.FileName,
ProjectName = packageSpec.Name,
ProjectUniqueName = project.FileName,
+ ProjectWideWarningProperties = GetWarningProperties (project),
OutputPath = project.BaseIntermediateOutputPath,
- OriginalTargetFrameworks = GetOriginalTargetFrameworks (project).ToList ()
+ OriginalTargetFrameworks = GetOriginalTargetFrameworks (project).ToList (),
+ Sources = SettingsUtility.GetEnabledSources (settings).ToList ()
};
}
@@ -367,5 +372,14 @@ namespace MonoDevelop.PackageManagement
return new RuntimeGraph (runtimes, supports);
}
+
+ static WarningProperties GetWarningProperties (IDotNetProject project)
+ {
+ return MSBuildRestoreUtility.GetWarningProperties (
+ project.EvaluatedProperties.GetValue ("TreatWarningsAsErrors"),
+ project.EvaluatedProperties.GetValue ("WarningsAsErrors"),
+ project.EvaluatedProperties.GetValue ("NoWarn")
+ );
+ }
}
}