Skip to content

Commit

Permalink
Added OctoPack tool
Browse files Browse the repository at this point in the history
  • Loading branch information
cpx86 committed Sep 20, 2016
1 parent e9f8f5e commit 2002cb9
Show file tree
Hide file tree
Showing 7 changed files with 587 additions and 124 deletions.
25 changes: 25 additions & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/OctopusDeployPackerFixture.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using Cake.Common.Tools.OctopusDeploy;
using Cake.Testing.Fixtures;

namespace Cake.Common.Tests.Fixtures.Tools
{
internal sealed class OctopusDeployPackerFixture : ToolFixture<OctopusPackSettings>
{
public string Id { get; set; }

public OctopusDeployPackerFixture()
: base("octo.exe")
{
}

protected override void RunTool()
{
var tool = new OctopusDeployPacker(FileSystem, Environment, ProcessRunner, Tools);
tool.Pack(Id, Settings);
}
}
}
160 changes: 160 additions & 0 deletions src/Cake.Common.Tests/Unit/Tools/OctopusDeploy/OctoPackTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using Cake.Common.Tests.Fixtures.Tools;
using Xunit;

namespace Cake.Common.Tests.Unit.Tools.OctopusDeploy
{
public sealed class OctoPackTests
{
public sealed class ThePackMethod
{
[Fact]
public void Should_Throw_If_Id_Is_Null()
{
var fixture = new OctopusDeployPackerFixture();

var result = Record.Exception(() => fixture.Run());

Assert.IsArgumentNullException(result, "id");
}

[Fact]
public void Should_Add_Id_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage", result.Args);
}

[Fact]
public void Should_Add_Version_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Version = "1.2.3";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --version 1.2.3", result.Args);
}

[Fact]
public void Should_Add_OutFolder_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.OutFolder = "out";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --outFolder \"/Working/out\"", result.Args);
}

[Fact]
public void Should_Add_BasePath_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.BasePath = "base";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --basePath \"/Working/base\"", result.Args);
}

[Fact]
public void Should_Add_Author_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Author = "author";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --author \"author\"", result.Args);
}

[Fact]
public void Should_Add_Title_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Title = "title";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --title \"title\"", result.Args);
}

[Fact]
public void Should_Add_Description_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Description = "description";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --description \"description\"", result.Args);
}

[Fact]
public void Should_Add_ReleaseNotes_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.ReleaseNotes = "releasenotes";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --releaseNotes \"releasenotes\"", result.Args);
}

[Fact]
public void Should_Add_ReleaseNotesFile_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.ReleaseNotesFile = "releasenotes.md";

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --releaseNotesFile \"/Working/releasenotes.md\"", result.Args);
}

[Fact]
public void Should_Add_Include_To_Arguments_If_Not_Null()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Include = new[]
{
"bin/*.dll",
"bin/*.pdb"
};

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --include \"bin/*.dll\" --include \"bin/*.pdb\"", result.Args);
}

[Fact]
public void Should_Add_Overwrite_To_Arguments_If_True()
{
var fixture = new OctopusDeployPackerFixture();
fixture.Id = "MyPackage";
fixture.Settings.Overwrite = true;

var result = fixture.Run();

Assert.Equal("pack --id MyPackage --overwrite", result.Args);
}
}
}
}
Loading

0 comments on commit 2002cb9

Please sign in to comment.