diff options
author | Matt Wilkinson <matt@hirespace.com> | 2016-01-26 18:45:07 +0300 |
---|---|---|
committer | Matt Wilkinson <matthew.wilkinson@gmail.com> | 2016-02-07 22:58:12 +0300 |
commit | aea47c9acbca28b94f52d4333a44249a751302f1 (patch) | |
tree | ea25c734ce00902a36d89749b9940f3204f3622f | |
parent | 3d88f1058c26bdbbe82b9765921af21fb82493d7 (diff) |
A couple of tests to ensure all TaskItem's are getting NuGetIsFrameworkReference assigned and that all references are correctly tagged
3 files changed, 55 insertions, 2 deletions
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs index 44d848b..478d6ae 100644 --- a/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs +++ b/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs @@ -67,7 +67,7 @@ namespace Microsoft.NuGet.Build.Tasks.Tests var references = task.ResolvedReferences; var referencedPackages = task.ReferencedPackages; - return new ResolvePackagesResult(analyzers, copyLocalItems, references, referencedPackages); + return new ResolvePackagesResult(analyzers, copyLocalItems, references, referencedPackages, rootDirectory.Root); } } } diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ReferenceResolutionTests.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/ReferenceResolutionTests.cs index 86f6988..4c1cad4 100644 --- a/src/Microsoft.NuGet.Build.Tasks.Tests/ReferenceResolutionTests.cs +++ b/src/Microsoft.NuGet.Build.Tasks.Tests/ReferenceResolutionTests.cs @@ -233,6 +233,48 @@ namespace Microsoft.NuGet.Build.Tasks.Tests } [Fact] + public static void AllNuGetReferencesHaveValidIsFrameworkReferenceProperty() + { + var result = NuGetTestHelpers.ResolvePackagesWithJsonFileContents( + Default.GetString(Json.Json.FluentAssertions), + targetMoniker: ".NETFramework,Version=v4.5.2", + runtimeIdentifier: ""); + + var key = ResolveNuGetPackageAssets.NuGetIsFrameworkReference; + var values = result.References.Select(r => r.GetMetadata(key)); + + Assert.All(result.References, r => Assert.Contains(key, r.MetadataNames.Cast<string>())); + Assert.All(values, v => Assert.Contains(v, new [] { "true", "false" })); + } + + [Fact] + public static void AllReferencesHaveCorrectIsFrameworkReferenceProperty() + { + var result = NuGetTestHelpers.ResolvePackagesWithJsonFileContents( + Default.GetString(Json.Json.FluentAssertions), + targetMoniker: ".NETFramework,Version=v4.5.2", + runtimeIdentifier: ""); + + var references = result.References.ToDictionary( + r => r.ItemSpec, + r => r.GetMetadata(ResolveNuGetPackageAssets.NuGetIsFrameworkReference) + ); + + Assert.Equal(4, references.Count); + + var corePath = Path.Combine(result.ReferenceTemporaryPath, @"FluentAssertions\3.4.1\lib\net45\FluentAssertions.Core.dll"); + Assert.True(references.ContainsKey(corePath)); + Assert.Equal("false", references[corePath]); + + var mainPath = Path.Combine(result.ReferenceTemporaryPath, @"FluentAssertions\3.4.1\lib\net45\FluentAssertions.dll"); + Assert.True(references.ContainsKey(mainPath)); + Assert.Equal("false", references[mainPath]); + + Assert.Equal("true", references["System.Xml"]); + Assert.Equal("true", references["System.Xml.Linq"]); + } + + [Fact] public static void NativeWinMDSetsMetadata() { string imageRuntimeVersion = "WindowsRuntime 1.3"; diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ResolvePackagesResult.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/ResolvePackagesResult.cs index 45da404..f2e7844 100644 --- a/src/Microsoft.NuGet.Build.Tasks.Tests/ResolvePackagesResult.cs +++ b/src/Microsoft.NuGet.Build.Tasks.Tests/ResolvePackagesResult.cs @@ -21,17 +21,28 @@ namespace Microsoft.NuGet.Build.Tasks.Tests ITaskItem[] analyzers, ITaskItem[] copyLocalItems, ITaskItem[] references, - ITaskItem[] referencedPackages) + ITaskItem[] referencedPackages, + string referenceTemporaryPath) { Analyzers = analyzers ?? new ITaskItem[] { }; CopyLocalItems = copyLocalItems ?? new ITaskItem[] { }; References = references ?? new ITaskItem[] { }; ReferencedPackages = referencedPackages ?? new ITaskItem[] { }; + ReferenceTemporaryPath = referenceTemporaryPath; } public ITaskItem[] Analyzers { get; } public ITaskItem[] CopyLocalItems { get; } public ITaskItem[] References { get; } public ITaskItem[] ReferencedPackages { get; } + + + /// <summary> + /// Gets the temporary path created during testing process + /// </summary> + /// <remarks> + /// You must assume this path no longer exists on disk, and can only be used to form absolute paths that match items in this object from relative paths + /// </remarks> + public string ReferenceTemporaryPath { get; } } } |