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 @@ + +