diff --git a/Source/Cake.Paket.Addin/Pack/PaketPackSettings.cs b/Source/Cake.Paket.Addin/Pack/PaketPackSettings.cs
index 4206e05..47a7025 100644
--- a/Source/Cake.Paket.Addin/Pack/PaketPackSettings.cs
+++ b/Source/Cake.Paket.Addin/Pack/PaketPackSettings.cs
@@ -4,36 +4,73 @@ namespace Cake.Paket.Addin.Pack
{
///
/// Contains settings used by .
+ /// See Paket Pack for more details.
///
public sealed class PaketPackSettings : ToolSettings
{
///
- /// Gets or sets version of the package.
+ /// Gets or sets buildconfig.
///
- public string Version { get; set; }
-
public string BuildConfig { get; set; }
+ ///
+ /// Gets or sets buildplatform.
+ ///
public string BuildPlatform { get; set; }
+ ///
+ /// Gets or sets version.
+ ///
+ public string Version { get; set; }
+
+ ///
+ /// Gets or sets templatefile.
+ ///
public string TemplateFile { get; set; }
+ ///
+ /// Gets or sets exclude.
+ ///
public string Exclude { get; set; }
+ ///
+ /// Gets or sets specific-version.
+ ///
public string SpecificVersion { get; set; }
+ ///
+ /// Gets or sets releaseNotes.
+ ///
public string ReleaseNotes { get; set; }
+ ///
+ /// Gets or sets a value indicating whether to enable lock-dependencies.
+ ///
public bool LockDependencies { get; set; }
+ ///
+ /// Gets or sets a value indicating whether to enable minimum-from-lock-file.
+ ///
public bool MinimumFromLockFile { get; set; }
+ ///
+ /// Gets or sets a value indicating whether to enable pin-project-references.
+ ///
public bool PinProjectReferences { get; set; }
+ ///
+ /// Gets or sets a value indicating whether to enable symbols.
+ ///
public bool Symbols { get; set; }
+ ///
+ /// Gets or sets a value indicating whether to enable include-referenced-projects.
+ ///
public bool IncludeReferencedProjects { get; set; }
+ ///
+ /// Gets or sets project-url.
+ ///
public string ProjectUrl { get; set; }
}
}
diff --git a/Source/Cake.Paket.Addin/Pack/PaketPacker.cs b/Source/Cake.Paket.Addin/Pack/PaketPacker.cs
index 17dcf66..e75772b 100644
--- a/Source/Cake.Paket.Addin/Pack/PaketPacker.cs
+++ b/Source/Cake.Paket.Addin/Pack/PaketPacker.cs
@@ -52,7 +52,7 @@ private ProcessArgumentBuilder GetArguments(DirectoryPath output, PaketPackSetti
var builder = new ProcessArgumentBuilder();
builder.Append("pack");
- // Output directory
+ // output
builder.Append("output");
var outputDirectory = output.MakeAbsolute(Environment).FullPath;
if (!string.IsNullOrWhiteSpace(outputDirectory))
@@ -60,28 +60,35 @@ private ProcessArgumentBuilder GetArguments(DirectoryPath output, PaketPackSetti
builder.AppendQuoted(output.MakeAbsolute(Environment).FullPath);
}
- // Version
- if (!string.IsNullOrWhiteSpace(settings.Version))
- {
- builder.Append("version");
- builder.AppendQuoted(settings.Version);
- }
-
- // BuildConfig
+ // buildconfig
if (!string.IsNullOrWhiteSpace(settings.BuildConfig))
{
- builder.Append("buildConfig");
+ builder.Append("buildconfig");
builder.AppendQuoted(settings.BuildConfig);
}
- // BuildPlatform
+ // buildplatform
if (!string.IsNullOrWhiteSpace(settings.BuildPlatform))
{
builder.Append("buildplatform");
builder.AppendQuoted(settings.BuildPlatform);
}
- // Exclude
+ // templatefile
+ if (!string.IsNullOrWhiteSpace(settings.TemplateFile))
+ {
+ builder.Append("templatefile");
+ builder.AppendQuoted(settings.TemplateFile);
+ }
+
+ // version
+ if (!string.IsNullOrWhiteSpace(settings.Version))
+ {
+ builder.Append("version");
+ builder.AppendQuoted(settings.Version);
+ }
+
+ // exclude
if (!string.IsNullOrWhiteSpace(settings.Exclude))
{
builder.Append("exclude");
@@ -102,7 +109,7 @@ private ProcessArgumentBuilder GetArguments(DirectoryPath output, PaketPackSetti
builder.AppendQuoted(settings.ReleaseNotes);
}
- // LockDependencies
+ // lock-dependencies
if (settings.LockDependencies)
{
builder.Append("lock-dependencies");
@@ -132,7 +139,7 @@ private ProcessArgumentBuilder GetArguments(DirectoryPath output, PaketPackSetti
builder.Append("include-referenced-projects");
}
- // ProjectUrl
+ // project-url
if (!string.IsNullOrWhiteSpace(settings.ProjectUrl))
{
builder.Append("project-url");
diff --git a/Source/Cake.Paket.Addin/PaketAliases.cs b/Source/Cake.Paket.Addin/PaketAliases.cs
index ce2c19e..fdd42fb 100644
--- a/Source/Cake.Paket.Addin/PaketAliases.cs
+++ b/Source/Cake.Paket.Addin/PaketAliases.cs
@@ -32,12 +32,7 @@ public static class PaketAliases
[CakeNamespaceImport("Cake.Paket.Addin.Pack")]
public static void PaketPack(this ICakeContext context, DirectoryPath output, PaketPackSettings settings)
{
- if (context == null)
- {
- throw new ArgumentNullException(nameof(context));
- }
-
- var resolver = new PaketToolResolver(context.FileSystem, context.Environment, context.Tools, context.ProcessRunner, context.Arguments, context.Log);
+ var resolver = GetPaketToolResolver(context);
var packer = new PaketPacker(context.FileSystem, context.Environment, context.Tools, context.ProcessRunner, resolver);
packer.Pack(output, settings);
}
@@ -80,12 +75,7 @@ public static void PaketPush(this ICakeContext context, FilePath filePath, Paket
[CakeNamespaceImport("Cake.Paket.Addin.Push")]
public static void PaketPush(this ICakeContext context, IEnumerable filePaths, PaketPushSettings settings)
{
- if (context == null)
- {
- throw new ArgumentNullException(nameof(context));
- }
-
- var resolver = new PaketToolResolver(context.FileSystem, context.Environment, context.Tools, context.ProcessRunner, context.Arguments, context.Log);
+ var resolver = GetPaketToolResolver(context);
var packer = new PaketPusher(context.FileSystem, context.Environment, context.Tools, context.ProcessRunner, resolver);
foreach (var filePath in filePaths)
@@ -93,5 +83,15 @@ public static void PaketPush(this ICakeContext context, IEnumerable fi
packer.Push(filePath, settings);
}
}
+
+ private static PaketToolResolver GetPaketToolResolver(ICakeContext context)
+ {
+ if (context == null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
+ return new PaketToolResolver(context.FileSystem, context.Environment, context.Tools, context.ProcessRunner, context.Arguments, context.Log);
+ }
}
}
diff --git a/Source/Cake.Paket.Addin/Push/PaketPushSettings.cs b/Source/Cake.Paket.Addin/Push/PaketPushSettings.cs
index b72f207..d32aa91 100644
--- a/Source/Cake.Paket.Addin/Push/PaketPushSettings.cs
+++ b/Source/Cake.Paket.Addin/Push/PaketPushSettings.cs
@@ -2,12 +2,25 @@
namespace Cake.Paket.Addin.Push
{
+ ///
+ /// Contains settings used by .
+ /// See Paket Push for more details.
+ ///
public sealed class PaketPushSettings : ToolSettings
{
+ ///
+ /// Gets or sets url.
+ ///
public string Url { get; set; }
+ ///
+ /// Gets or sets apikey.
+ ///
public string ApiKey { get; set; }
+ ///
+ /// Gets or sets endpoint.
+ ///
public string EndPoint { get; set; }
}
}
diff --git a/Source/Cake.Paket.Addin/Push/PaketPusher.cs b/Source/Cake.Paket.Addin/Push/PaketPusher.cs
index d2b91ab..11e873b 100644
--- a/Source/Cake.Paket.Addin/Push/PaketPusher.cs
+++ b/Source/Cake.Paket.Addin/Push/PaketPusher.cs
@@ -6,8 +6,19 @@
namespace Cake.Paket.Addin.Push
{
+ ///
+ /// The paket pusher.
+ ///
internal sealed class PaketPusher : PaketTool
{
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The file system.
+ /// The enviornment.
+ /// The tool locator.
+ /// The process runner.
+ /// The paket tool resolver.
public PaketPusher(IFileSystem fileSystem, ICakeEnvironment environment, IToolLocator tools, IProcessRunner processRunner, IPaketToolResolver resolver)
: base(fileSystem, environment, processRunner, tools, resolver)
{
@@ -19,7 +30,7 @@ public PaketPusher(IFileSystem fileSystem, ICakeEnvironment environment, IToolLo
///
/// Pushes NuGet package defined by the file path for the given settings.
///
- /// The NuGet package file path
+ /// The NuGet package file path.
/// The settings.
internal void Push(FilePath filePath, PaketPushSettings settings)
{
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Pack/PaketPackerTests.cs b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Pack/PaketPackerTests.cs
index 5744241..f0ae545 100644
--- a/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Pack/PaketPackerTests.cs
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Pack/PaketPackerTests.cs
@@ -7,7 +7,7 @@
namespace Cake.Paket.UnitTests.Cake.Paket.Addin.Pack
{
///
- /// PaketRunner unit tests
+ /// PaketPacker unit tests
///
public sealed class PaketPackerTests
{
@@ -148,7 +148,39 @@ public void ShouldSetOutput()
}
///
- /// Should set Version.
+ /// Should set buildconfig.
+ ///
+ [Fact]
+ public void ShouldSetBuildConfig()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { BuildConfig = "config" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" buildconfig ""config""");
+ }
+
+ ///
+ /// Should set buildplatform.
+ ///
+ [Fact]
+ public void ShouldSetBuildPlatform()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { BuildPlatform = "net45" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" buildplatform ""net45""");
+ }
+
+ ///
+ /// Should set version.
///
[Fact]
public void ShouldSetVersion()
@@ -162,5 +194,165 @@ public void ShouldSetVersion()
// Then
result.Args.Should().Be(@"pack output ""/Working/NuGet"" version ""1.0.0""");
}
+
+ ///
+ /// Should set templatefile.
+ ///
+ [Fact]
+ public void ShouldSetTemplateFile()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { TemplateFile = "/Working/Template" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" templatefile ""/Working/Template""");
+ }
+
+ ///
+ /// Should set exclude.
+ ///
+ [Fact]
+ public void ShouldSetExclude()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { Exclude = "Cake.Foo" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" exclude ""Cake.Foo""");
+ }
+
+ ///
+ /// Should set specific-version.
+ ///
+ [Fact]
+ public void ShouldSetSpecificVersion()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { SpecificVersion = "Cake.Foo 0.0.0" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" specific-version ""Cake.Foo 0.0.0""");
+ }
+
+ ///
+ /// Should set releaseNotes.
+ ///
+ [Fact]
+ public void ShouldSetReleaseNotes()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { ReleaseNotes = "Initial Release" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" releaseNotes ""Initial Release""");
+ }
+
+ ///
+ /// Should add lock-dependencies.
+ ///
+ [Fact]
+ public void ShouldAddLockDependencies()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { LockDependencies = true } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" lock-dependencies");
+ }
+
+ ///
+ /// Should add minimum-from-lock-file.
+ ///
+ [Fact]
+ public void ShouldAddMinimumFromLockFile()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { MinimumFromLockFile = true } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" minimum-from-lock-file");
+ }
+
+ ///
+ /// Should add pin-project-references.
+ ///
+ [Fact]
+ public void ShouldAddPinProjectReferences()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { PinProjectReferences = true } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" pin-project-references");
+ }
+
+ ///
+ /// Should add symbols.
+ ///
+ [Fact]
+ public void ShouldAddSymbols()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { Symbols = true } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" symbols");
+ }
+
+ ///
+ /// Should add include-referenced-projects.
+ ///
+ [Fact]
+ public void ShouldAddIncludeReferencedProjects()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { IncludeReferencedProjects = true } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" include-referenced-projects");
+ }
+
+ ///
+ /// Should set project-url.
+ ///
+ [Fact]
+ public void ShouldSetProjectUrl()
+ {
+ // Given
+ var fixture = new PaketPackerFixture { Settings = { ProjectUrl = "www.google.com" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"pack output ""/Working/NuGet"" project-url ""www.google.com""");
+ }
}
}
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherFixture.cs b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherFixture.cs
new file mode 100644
index 0000000..8eafdc9
--- /dev/null
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherFixture.cs
@@ -0,0 +1,39 @@
+using Cake.Core;
+using Cake.Paket.Addin.Push;
+using Cake.Paket.Addin.Tooling;
+using Cake.Testing;
+using Cake.Testing.Fixtures;
+using NSubstitute;
+
+namespace Cake.Paket.UnitTests.Cake.Paket.Addin.Push
+{
+ ///
+ /// Mock of PaketPusher class.
+ ///
+ internal class PaketPusherFixture : ToolFixture
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ internal PaketPusherFixture()
+ : base("paket.exe")
+ {
+ FakeFile = FileSystem.CreateFile("NuGet/foo.nupkg");
+ FakeArguments = Substitute.For();
+ }
+
+ private FakeFile FakeFile { get; }
+
+ private ICakeArguments FakeArguments { get; }
+
+ ///
+ /// Runs PaketPusher tool
+ ///
+ protected override void RunTool()
+ {
+ var resolver = new PaketToolResolver(FileSystem, Environment, Tools, ProcessRunner, FakeArguments, new FakeLog());
+ var pusher = new PaketPusher(FileSystem, Environment, Tools, ProcessRunner, resolver);
+ pusher.Push(FakeFile.Path, Settings);
+ }
+ }
+}
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherTests.cs b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherTests.cs
new file mode 100644
index 0000000..e59074d
--- /dev/null
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.Addin/Push/PaketPusherTests.cs
@@ -0,0 +1,198 @@
+using System;
+using Cake.Core;
+using Cake.Testing;
+using FluentAssertions;
+using Xunit;
+
+namespace Cake.Paket.UnitTests.Cake.Paket.Addin.Push
+{
+ ///
+ /// PaketPusher unit tests
+ ///
+ public sealed class PaketPusherTests
+ {
+ ///
+ /// Should throw if settings are null.
+ ///
+ [Fact]
+ public void ShouldThrowIfSettingsAreNull()
+ {
+ // Given
+ var fixture = new PaketPusherFixture { Settings = null };
+
+ // When
+ Action result = () => fixture.Run();
+
+ // Then
+ result.ShouldThrow().And.ParamName.Should().Be("settings");
+ }
+
+ ///
+ /// Should throw if Paket executable was not found.
+ ///
+ [Fact]
+ public void ShouldThrowIfPaketExecutableWasNotFound()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+ fixture.GivenDefaultToolDoNotExist();
+
+ // When
+ Action result = () => fixture.Run();
+
+ // Then
+ result.ShouldThrow().WithMessage("Could not locate paket.exe.");
+ }
+
+ ///
+ /// Should use paket.exe from tool path if provided.
+ ///
+ /// The tool path.
+ /// The expected result.
+ [Theory]
+ [InlineData("/bin/tools/.paket/paket.exe", "/bin/tools/.paket/paket.exe")]
+ [InlineData("./.paket/paket.exe", "/Working/.paket/paket.exe")]
+ public void ShouldUsePaketExecutableFromToolPathIfProvided(string toolPath, string expected)
+ {
+ // Given
+ var fixture = new PaketPusherFixture { Settings = { ToolPath = toolPath } };
+ fixture.GivenSettingsToolPathExist();
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Path.FullPath.Should().Be(expected);
+ }
+
+ ///
+ /// Should find paket.exe if tool path not provided.
+ ///
+ [Fact]
+ public void ShouldFindPaketExecutableIfToolPathNotProvided()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Path.FullPath.Should().Be("/Working/tools/paket.exe");
+ }
+
+ ///
+ /// Should set working directory.
+ ///
+ [Fact]
+ public void ShouldSetWorkingDirectory()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Process.WorkingDirectory.FullPath.Should().Be("/Working");
+ }
+
+ ///
+ /// Should throw if process was not started.
+ ///
+ [Fact]
+ public void ShouldThrowIfProcessWasNotStarted()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+ fixture.GivenProcessCannotStart();
+
+ // When
+ Action result = () => fixture.Run();
+
+ // Then
+ result.ShouldThrow().WithMessage("Paket: Process was not started.");
+ }
+
+ ///
+ /// Should throw if process has a non-zero exit code.
+ ///
+ [Fact]
+ public void ShouldThrowIfProcessHasANonZeroExitCode()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+ fixture.GivenProcessExitsWithCode(1);
+
+ // When
+ Action result = () => fixture.Run();
+
+ // Then
+ result.ShouldThrow().WithMessage("Paket: Process returned an error (exit code 1).");
+ }
+
+ ///
+ /// Should set file.
+ ///
+ [Fact]
+ public void ShouldSetFile()
+ {
+ // Given
+ var fixture = new PaketPusherFixture();
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"push file ""/Working/NuGet/foo.nupkg""");
+ }
+
+ ///
+ /// Should set url.
+ ///
+ [Fact]
+ public void ShouldSetUrl()
+ {
+ // Given
+ var fixture = new PaketPusherFixture { Settings = { Url = "www.google.com" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"push file ""/Working/NuGet/foo.nupkg"" url ""www.google.com""");
+ }
+
+ ///
+ /// Should set apikey.
+ ///
+ [Fact]
+ public void ShouldSetApiKey()
+ {
+ // Given
+ var fixture = new PaketPusherFixture { Settings = { ApiKey = "00000000-0000-0000-0000-000000000000" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"push file ""/Working/NuGet/foo.nupkg"" apikey ""00000000-0000-0000-0000-000000000000""");
+ }
+
+ ///
+ /// Should set endpoint.
+ ///
+ [Fact]
+ public void ShouldSetEndPoint()
+ {
+ // Given
+ var fixture = new PaketPusherFixture { Settings = { EndPoint = "/api/v3/package" } };
+
+ // When
+ var result = fixture.Run();
+
+ // Then
+ result.Args.Should().Be(@"push file ""/Working/NuGet/foo.nupkg"" endpoint ""/api/v3/package""");
+ }
+ }
+}
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerFixture.cs b/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerFixture.cs
index 276f436..c32ea4a 100644
--- a/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerFixture.cs
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerFixture.cs
@@ -10,42 +10,77 @@
namespace Cake.Paket.UnitTests.Cake.Paket.Module
{
+ ///
+ /// Mock of PaketPusher class.
+ ///
internal sealed class PaketPackageInstallerFixture
{
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ internal PaketPackageInstallerFixture()
+ {
+ Environment = FakeEnvironment.CreateUnixEnvironment();
+ ContentResolver = Substitute.For();
+ Log = new FakeLog();
+ Package = new PackageReference("paket:?package=Cake.Foo&group=build/setup");
+ PackageType = PackageType.Addin;
+ InstallPath = new DirectoryPath("./packages");
+ }
+
+ ///
+ /// Gets or sets the enviornment.
+ ///
internal ICakeEnvironment Environment { get; set; }
+ ///
+ /// Gets or sets the content resolver.
+ ///
internal INuGetContentResolver ContentResolver { get; set; }
+ ///
+ /// Gets or sets the log.
+ ///
internal ICakeLog Log { get; set; }
+ ///
+ /// Gets or sets the package.
+ ///
internal PackageReference Package { get; set; }
+ ///
+ /// Gets or sets the package type.
+ ///
internal PackageType PackageType { get; set; }
+ ///
+ /// Gets or sets the install path.
+ ///
internal DirectoryPath InstallPath { get; set; }
- internal PaketPackageInstallerFixture()
- {
- Environment = FakeEnvironment.CreateUnixEnvironment();
- ContentResolver = Substitute.For();
- Log = new FakeLog();
- Package = new PackageReference("paket:?package=Cake.Foo&group=build/setup");
- PackageType = PackageType.Addin;
- InstallPath = new DirectoryPath("./packages");
- }
-
+ ///
+ /// Create the installer.
+ ///
+ /// The paket package installer.
internal PaketPackageInstaller CreateInstaller()
{
return new PaketPackageInstaller(Environment, ContentResolver, Log);
-
}
+ ///
+ /// Installs the specified resource at the given location.
+ ///
+ /// The installed files.
internal IReadOnlyCollection Install()
{
var installer = CreateInstaller();
return installer.Install(Package, PackageType, InstallPath);
}
+ ///
+ /// Determines whether this instance can install the specified resource.
+ ///
+ /// true if this installer can install the specified resource; otherwise false.
internal bool CanInstall()
{
var installer = CreateInstaller();
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerTests.cs b/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerTests.cs
index b62397c..309b53d 100644
--- a/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerTests.cs
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.Module/PaketPackageInstallerTests.cs
@@ -5,8 +5,14 @@
namespace Cake.Paket.UnitTests.Cake.Paket.Module
{
+ ///
+ /// PaketPackageInstaller unit tests
+ ///
public sealed class PaketPackageInstallerTests
{
+ ///
+ /// Should throw if environment is null.
+ ///
[Fact]
public void ShouldThrowIfEnvironmentIsNull()
{
@@ -20,6 +26,9 @@ public void ShouldThrowIfEnvironmentIsNull()
result.ShouldThrow().And.ParamName.Should().Be("environment");
}
+ ///
+ /// Should throw if content resolver is null.
+ ///
[Fact]
public void ShouldThrowIfContentResolverIsNull()
{
@@ -33,6 +42,9 @@ public void ShouldThrowIfContentResolverIsNull()
result.ShouldThrow().And.ParamName.Should().Be("contentResolver");
}
+ ///
+ /// Should throw if log is null.
+ ///
[Fact]
public void ShouldThrowIfLogIsNull()
{
@@ -46,6 +58,9 @@ public void ShouldThrowIfLogIsNull()
result.ShouldThrow().And.ParamName.Should().Be("log");
}
+ ///
+ /// Should throw if Uri is null for CanInstall.
+ ///
[Fact]
public void ShouldThrowIfUriIsNullForCanInstall()
{
@@ -59,6 +74,9 @@ public void ShouldThrowIfUriIsNullForCanInstall()
result.ShouldThrow().And.ParamName.Should().Be("package");
}
+ ///
+ /// Should be able to install if schema is correct.
+ ///
[Fact]
public void ShouldBeAbleToInstallIfSchemeIsCorrect()
{
@@ -72,6 +90,9 @@ public void ShouldBeAbleToInstallIfSchemeIsCorrect()
result.Should().BeTrue();
}
+ ///
+ /// Should not be able to install if schema is incorrect.
+ ///
[Fact]
public void ShouldNotBeAbleToInstallIfSchemeIsIncorrect()
{
@@ -85,6 +106,9 @@ public void ShouldNotBeAbleToInstallIfSchemeIsIncorrect()
result.Should().BeFalse();
}
+ ///
+ /// Should throw is url is null for Install.
+ ///
[Fact]
public void ShouldThrowIfUriIsNullForInstall()
{
@@ -98,6 +122,9 @@ public void ShouldThrowIfUriIsNullForInstall()
result.ShouldThrow().And.ParamName.Should().Be("package");
}
+ ///
+ /// Should throw if install path is null.
+ ///
[Fact]
public void ShouldThrowIfInstallPathIsNull()
{
diff --git a/Source/Cake.Paket.UnitTests/Cake.Paket.UnitTests.csproj b/Source/Cake.Paket.UnitTests/Cake.Paket.UnitTests.csproj
index 15416c2..5b6540b 100644
--- a/Source/Cake.Paket.UnitTests/Cake.Paket.UnitTests.csproj
+++ b/Source/Cake.Paket.UnitTests/Cake.Paket.UnitTests.csproj
@@ -49,6 +49,8 @@
+
+