diff --git a/src/BuildPrediction/Predictors/GeneratePackageOnBuildPredictor.cs b/src/BuildPrediction/Predictors/GeneratePackageOnBuildPredictor.cs
index 1f4f043..5ffd319 100644
--- a/src/BuildPrediction/Predictors/GeneratePackageOnBuildPredictor.cs
+++ b/src/BuildPrediction/Predictors/GeneratePackageOnBuildPredictor.cs
@@ -3,98 +3,106 @@
using System;
using System.IO;
-using Microsoft.Build.Execution;
-
-namespace Microsoft.Build.Prediction.Predictors
-{
- ///
- /// Predicts inputs and outputs when using the built-in feature of the Sdk to create a NuGet package during the build.
- ///
- public sealed class GeneratePackageOnBuildPredictor : IProjectPredictor
- {
- internal const string GeneratePackageOnBuildPropertyName = "GeneratePackageOnBuild";
-
- internal const string PackageIdPropertyName = "PackageId";
-
- internal const string PackageVersionPropertyName = "PackageVersion";
-
- internal const string PackageOutputPathPropertyName = "PackageOutputPath";
-
+using Microsoft.Build.Execution;
+
+namespace Microsoft.Build.Prediction.Predictors
+{
+ ///
+ /// Predicts inputs and outputs when using the built-in feature of the Sdk to create a NuGet package during the build.
+ ///
+ public sealed class GeneratePackageOnBuildPredictor : IProjectPredictor
+ {
+ internal const string GeneratePackageOnBuildPropertyName = "GeneratePackageOnBuild";
+
+ internal const string IsPackablePropertyName = "IsPackable";
+
+ internal const string PackageIdPropertyName = "PackageId";
+
+ internal const string PackageVersionPropertyName = "PackageVersion";
+
+ internal const string PackageOutputPathPropertyName = "PackageOutputPath";
+
internal const string OutputPathPropertyName = "OutputPath";
- internal const string OutputFileNamesWithoutVersionPropertyName = "OutputFileNamesWithoutVersion";
-
- internal const string NuspecOutputPathPropertyName = "NuspecOutputPath";
-
- internal const string IncludeSourcePropertyName = "IncludeSource";
-
- internal const string IncludeSymbolsPropertyName = "IncludeSymbols";
-
- internal const string SymbolPackageFormatPropertyName = "SymbolPackageFormat";
-
- internal const string NuspecFilePropertyName = "NuspecFile";
-
- ///
- public void PredictInputsAndOutputs(
- ProjectInstance projectInstance,
- ProjectPredictionReporter predictionReporter)
- {
- // This is based on NuGet.Build.Tasks.Pack.targets and GetPackOutputItemsTask
- // See: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.targets
- // See: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/GetPackOutputItemsTask.cs
- var generatePackageOnBuild = projectInstance.GetPropertyValue(GeneratePackageOnBuildPropertyName);
- if (!generatePackageOnBuild.Equals("true", StringComparison.OrdinalIgnoreCase))
- {
- return;
- }
-
- var packageId = projectInstance.GetPropertyValue(PackageIdPropertyName);
- var packageVersion = projectInstance.GetPropertyValue(PackageVersionPropertyName);
- var packageOutputPath = projectInstance.GetPropertyValue(PackageOutputPathPropertyName);
- var nuspecOutputPath = projectInstance.GetPropertyValue(NuspecOutputPathPropertyName);
- var includeSource = projectInstance.GetPropertyValue(IncludeSourcePropertyName).Equals("true", StringComparison.OrdinalIgnoreCase);
+ internal const string OutputFileNamesWithoutVersionPropertyName = "OutputFileNamesWithoutVersion";
+
+ internal const string NuspecOutputPathPropertyName = "NuspecOutputPath";
+
+ internal const string IncludeSourcePropertyName = "IncludeSource";
+
+ internal const string IncludeSymbolsPropertyName = "IncludeSymbols";
+
+ internal const string SymbolPackageFormatPropertyName = "SymbolPackageFormat";
+
+ internal const string NuspecFilePropertyName = "NuspecFile";
+
+ ///
+ public void PredictInputsAndOutputs(
+ ProjectInstance projectInstance,
+ ProjectPredictionReporter predictionReporter)
+ {
+ // This is based on NuGet.Build.Tasks.Pack.targets and GetPackOutputItemsTask
+ // See: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.targets
+ // See: https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Core/NuGet.Build.Tasks.Pack/GetPackOutputItemsTask.cs
+ var generatePackageOnBuild = projectInstance.GetPropertyValue(GeneratePackageOnBuildPropertyName);
+ if (!generatePackageOnBuild.Equals("true", StringComparison.OrdinalIgnoreCase))
+ {
+ return;
+ }
+
+ var isPackable = projectInstance.GetPropertyValue(IsPackablePropertyName);
+ if (!isPackable.Equals("true", StringComparison.OrdinalIgnoreCase))
+ {
+ return;
+ }
+
+ var packageId = projectInstance.GetPropertyValue(PackageIdPropertyName);
+ var packageVersion = projectInstance.GetPropertyValue(PackageVersionPropertyName);
+ var packageOutputPath = projectInstance.GetPropertyValue(PackageOutputPathPropertyName);
+ var nuspecOutputPath = projectInstance.GetPropertyValue(NuspecOutputPathPropertyName);
+ var includeSource = projectInstance.GetPropertyValue(IncludeSourcePropertyName).Equals("true", StringComparison.OrdinalIgnoreCase);
var includeSymbols = projectInstance.GetPropertyValue(IncludeSymbolsPropertyName).Equals("true", StringComparison.OrdinalIgnoreCase);
- var outputFileNamesWithoutVersion = projectInstance.GetPropertyValue(OutputFileNamesWithoutVersionPropertyName).Equals("true", StringComparison.OrdinalIgnoreCase);
-
- var symbolPackageFormat = projectInstance.GetPropertyValue(SymbolPackageFormatPropertyName);
-
- // PackageOutputPath defaults to OutputPath in the _CalculateInputsOutputsForPack target, not statically.
- if (string.IsNullOrEmpty(packageOutputPath))
- {
- packageOutputPath = projectInstance.GetPropertyValue(OutputPathPropertyName);
- }
-
- // All params are effectively required
- if (!string.IsNullOrEmpty(packageId)
- && !string.IsNullOrEmpty(packageVersion)
- && !string.IsNullOrEmpty(packageOutputPath)
- && !string.IsNullOrEmpty(nuspecOutputPath)
- && !string.IsNullOrEmpty(symbolPackageFormat))
- {
- var fileBaseName = outputFileNamesWithoutVersion ? packageId : $"{packageId}.{packageVersion}";
-
- // Nuspec files can also be provided instead of generated, in which case we should treat it like an input, not an output.
- var nuspecFile = projectInstance.GetPropertyValue(NuspecFilePropertyName);
-
- predictionReporter.ReportOutputFile(Path.Combine(packageOutputPath, fileBaseName + ".nupkg"));
- if (string.IsNullOrEmpty(nuspecFile))
- {
- predictionReporter.ReportOutputFile(Path.Combine(nuspecOutputPath, fileBaseName + ".nuspec"));
- }
- else
- {
- predictionReporter.ReportInputFile(nuspecFile);
- }
-
- if (includeSource || includeSymbols)
- {
- predictionReporter.ReportOutputFile(Path.Combine(packageOutputPath, fileBaseName + (symbolPackageFormat.Equals("snupkg", StringComparison.OrdinalIgnoreCase) ? ".snupkg" : ".symbols.nupkg")));
- if (string.IsNullOrEmpty(nuspecFile))
- {
- predictionReporter.ReportOutputFile(Path.Combine(nuspecOutputPath, fileBaseName + ".symbols.nuspec"));
- }
- }
- }
- }
- }
+ var outputFileNamesWithoutVersion = projectInstance.GetPropertyValue(OutputFileNamesWithoutVersionPropertyName).Equals("true", StringComparison.OrdinalIgnoreCase);
+
+ var symbolPackageFormat = projectInstance.GetPropertyValue(SymbolPackageFormatPropertyName);
+
+ // PackageOutputPath defaults to OutputPath in the _CalculateInputsOutputsForPack target, not statically.
+ if (string.IsNullOrEmpty(packageOutputPath))
+ {
+ packageOutputPath = projectInstance.GetPropertyValue(OutputPathPropertyName);
+ }
+
+ // All params are effectively required
+ if (!string.IsNullOrEmpty(packageId)
+ && !string.IsNullOrEmpty(packageVersion)
+ && !string.IsNullOrEmpty(packageOutputPath)
+ && !string.IsNullOrEmpty(nuspecOutputPath)
+ && !string.IsNullOrEmpty(symbolPackageFormat))
+ {
+ var fileBaseName = outputFileNamesWithoutVersion ? packageId : $"{packageId}.{packageVersion}";
+
+ // Nuspec files can also be provided instead of generated, in which case we should treat it like an input, not an output.
+ var nuspecFile = projectInstance.GetPropertyValue(NuspecFilePropertyName);
+
+ predictionReporter.ReportOutputFile(Path.Combine(packageOutputPath, fileBaseName + ".nupkg"));
+ if (string.IsNullOrEmpty(nuspecFile))
+ {
+ predictionReporter.ReportOutputFile(Path.Combine(nuspecOutputPath, fileBaseName + ".nuspec"));
+ }
+ else
+ {
+ predictionReporter.ReportInputFile(nuspecFile);
+ }
+
+ if (includeSource || includeSymbols)
+ {
+ predictionReporter.ReportOutputFile(Path.Combine(packageOutputPath, fileBaseName + (symbolPackageFormat.Equals("snupkg", StringComparison.OrdinalIgnoreCase) ? ".snupkg" : ".symbols.nupkg")));
+ if (string.IsNullOrEmpty(nuspecFile))
+ {
+ predictionReporter.ReportOutputFile(Path.Combine(nuspecOutputPath, fileBaseName + ".symbols.nuspec"));
+ }
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/BuildPredictionTests/Predictors/GeneratePackageOnBuildPredictorTests.cs b/src/BuildPredictionTests/Predictors/GeneratePackageOnBuildPredictorTests.cs
index e000637..761f63d 100644
--- a/src/BuildPredictionTests/Predictors/GeneratePackageOnBuildPredictorTests.cs
+++ b/src/BuildPredictionTests/Predictors/GeneratePackageOnBuildPredictorTests.cs
@@ -4,229 +4,255 @@
using Microsoft.Build.Construction;
using Microsoft.Build.Execution;
using Microsoft.Build.Prediction.Predictors;
-using Xunit;
-
-namespace Microsoft.Build.Prediction.Tests.Predictors
-{
- public class GeneratePackageOnBuildPredictorTests
- {
- [Fact]
- public void Disabled()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertNoPredictions();
- }
-
- [Fact]
- public void OutputFileNamesWithoutVersion()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+using Xunit;
+
+namespace Microsoft.Build.Prediction.Tests.Predictors
+{
+ public class GeneratePackageOnBuildPredictorTests
+ {
+ [Fact]
+ public void Disabled()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertNoPredictions();
+ }
+
+ [Fact]
+ public void NotPackable()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "false");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertNoPredictions();
+ }
+
+ [Fact]
+ public void OutputFileNamesWithoutVersion()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputFileNamesWithoutVersionPropertyName, "true");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void GeneratedNuspecDefaultNuspecOutputPath()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void GeneratedNuspecCustomNuspecOutputPath()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputFileNamesWithoutVersionPropertyName, "true");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void GeneratedNuspecDefaultNuspecOutputPath()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.OutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void GeneratedNuspecCustomNuspecOutputPath()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void ProvidedNuspec()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecFilePropertyName, "SomePackage.nuspec");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedInputFiles = new[]
- {
- new PredictedItem(@"SomePackage.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- };
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- expectedInputFiles,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void IncludeSource()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSourcePropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.symbols.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void IncludeSymbols()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSymbolsPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.symbols.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
-
- [Fact]
- public void Snupkg()
- {
- ProjectRootElement projectRootElement = ProjectRootElement.Create();
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSymbolsPropertyName, "true");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
- projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "snupkg");
- ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
-
- var expectedOutputFiles = new[]
- {
- new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
- new PredictedItem(@"bin\SomePackage.1.2.3.snupkg", nameof(GeneratePackageOnBuildPredictor)),
- };
- new GeneratePackageOnBuildPredictor()
- .GetProjectPredictions(projectInstance)
- .AssertPredictions(
- projectInstance,
- null,
- null,
- expectedOutputFiles,
- null);
- }
- }
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void ProvidedNuspec()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecFilePropertyName, "SomePackage.nuspec");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedInputFiles = new[]
+ {
+ new PredictedItem(@"SomePackage.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ expectedInputFiles,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void IncludeSource()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSourcePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.symbols.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void IncludeSymbols()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSymbolsPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "symbols.nupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.symbols.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+
+ [Fact]
+ public void Snupkg()
+ {
+ ProjectRootElement projectRootElement = ProjectRootElement.Create();
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.GeneratePackageOnBuildPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IsPackablePropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.IncludeSymbolsPropertyName, "true");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageIdPropertyName, "SomePackage");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageVersionPropertyName, "1.2.3");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.PackageOutputPathPropertyName, "bin");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.NuspecOutputPathPropertyName, "obj");
+ projectRootElement.AddProperty(GeneratePackageOnBuildPredictor.SymbolPackageFormatPropertyName, "snupkg");
+ ProjectInstance projectInstance = TestHelpers.CreateProjectInstanceFromRootElement(projectRootElement);
+
+ var expectedOutputFiles = new[]
+ {
+ new PredictedItem(@"obj\SomePackage.1.2.3.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"obj\SomePackage.1.2.3.symbols.nuspec", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.nupkg", nameof(GeneratePackageOnBuildPredictor)),
+ new PredictedItem(@"bin\SomePackage.1.2.3.snupkg", nameof(GeneratePackageOnBuildPredictor)),
+ };
+ new GeneratePackageOnBuildPredictor()
+ .GetProjectPredictions(projectInstance)
+ .AssertPredictions(
+ projectInstance,
+ null,
+ null,
+ expectedOutputFiles,
+ null);
+ }
+ }
}
\ No newline at end of file