Skip to content

Commit

Permalink
Merge pull request #588 from patriksvensson/f/tool-arguments
Browse files Browse the repository at this point in the history
Added support for adding custom arguments to tools.
  • Loading branch information
devlead committed Dec 17, 2015
2 parents 87d6a5d + f060aa2 commit ce99a1d
Show file tree
Hide file tree
Showing 48 changed files with 330 additions and 24 deletions.
6 changes: 4 additions & 2 deletions src/Cake.Common.Tests/Cake.Common.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@
<Compile Include="Fixtures\Build\AppVeyorInfoFixture.cs" />
<Compile Include="Fixtures\AssemblyInfoFixture.cs" />
<Compile Include="Fixtures\AssemblyInfoParserFixture.cs" />
<Compile Include="Fixtures\ToolFixture.cs" />
<Compile Include="Fixtures\ToolFixtureResult.cs" />
<Compile Include="Fixtures\Tools\CakeRunnerFixture.cs" />
<Compile Include="Fixtures\IO\FileCopyFixture.cs" />
<Compile Include="Fixtures\IO\FileDeleteFixture.cs" />
Expand Down Expand Up @@ -259,6 +257,10 @@
<Project>{8074B833-11B8-459F-BB98-BFBA2BC5C698}</Project>
<Name>Cake.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Cake.Testing.Shared\Cake.Testing.Shared.csproj">
<Project>{8e5a518a-eb84-4a1b-a091-d9d66c8ff979}</Project>
<Name>Cake.Testing.Shared</Name>
</ProjectReference>
<ProjectReference Include="..\Cake.Testing.Xunit\Cake.Testing.Xunit.csproj">
<Project>{5AF751D1-BB54-4268-9E42-3A898B034B06}</Project>
<Name>Cake.Testing.Xunit</Name>
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/CakeRunnerFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Cake.Core;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/CandleFixture.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.WiX;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.Core.Tooling;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools.Chocolatey
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Cake.Core;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools.Chocolatey.Packer
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/DNU/DNUFixture.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Core.IO;
using Cake.Core.Tooling;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools.DNU
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Cake.Common.Tools.DupFinder;
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools.DupFinder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools.DupFinder
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/FixieRunnerFixture.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.Fixie;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Cake.Common.Tools.GitReleaseManager;
using Cake.Core.Diagnostics;
using Cake.Core.Tooling;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.GitReleaseNotes;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using Cake.Core.Diagnostics;
using NSubstitute;
using System.Runtime.Serialization.Json;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.ILMerge;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.InspectCode;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools.InspectCode
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Cake.Common.Tools.MSBuild;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.MSTest;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/NSISFixture.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.NSIS;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.NUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/NUnitRunnerFixture.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.NUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/NuGet/NuGetFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Cake.Core.IO;
using Cake.Core.IO.NuGet;
using Cake.Core.Tooling;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools.NuGet
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Cake.Core;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools.NuGet.Packer
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Cake.Common.Tools.OctopusDeploy;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/OpenCoverFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Cake.Core;
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.ReportGenerator;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.ReportUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools.ReportUnit
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.ReportUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools.ReportUnit
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Cake.Common.Tools.Roundhouse;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Cake.Common.Tools.SignTool;
using Cake.Core.IO;
using Cake.Testing;
using Cake.Testing.Shared;
using NSubstitute;

namespace Cake.Common.Tests.Fixtures.Tools
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/WiXFixture.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using Cake.Common.Tools.WiX;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.XUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Common.Tests/Fixtures/Tools/XUnitRunnerFixture.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Cake.Common.Tools.XUnit;
using Cake.Core.IO;
using Cake.Testing.Shared;

namespace Cake.Common.Tests.Fixtures.Tools
{
Expand Down
8 changes: 8 additions & 0 deletions src/Cake.Core.Tests/Cake.Core.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
<ItemGroup>
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Fixtures\CakeContextFixture.cs" />
<Compile Include="Fixtures\DummyToolFixture.cs" />
<Compile Include="Fixtures\PropertyAliasGeneratorFixture.cs" />
<Compile Include="Fixtures\MethodAliasGeneratorFixture.cs" />
<Compile Include="Fixtures\ScriptAnalyzerFixture.cs" />
Expand All @@ -64,6 +65,8 @@
<Compile Include="Fixtures\ScriptHostFixture.cs" />
<Compile Include="Fixtures\ScriptProcessorFixture.cs" />
<Compile Include="Fixtures\ScriptRunnerFixture.cs" />
<Compile Include="Stubs\DummySettings.cs" />
<Compile Include="Stubs\DummyTool.cs" />
<Compile Include="Unit\ActionTaskTests.cs" />
<Compile Include="Unit\Annotations\CakeAliasCategoryAttributeTests.cs" />
<Compile Include="Unit\Annotations\CakeNamespaceImportAttributeTests.cs" />
Expand Down Expand Up @@ -117,6 +120,7 @@
<Compile Include="Unit\TaskSetupContextTests.cs" />
<Compile Include="Unit\TaskTeardownContextTests.cs" />
<Compile Include="Unit\Text\TextTransformationTemplateTests.cs" />
<Compile Include="Unit\Tooling\ToolTests.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config">
Expand Down Expand Up @@ -148,6 +152,10 @@
<Project>{8074B833-11B8-459F-BB98-BFBA2BC5C698}</Project>
<Name>Cake.Core</Name>
</ProjectReference>
<ProjectReference Include="..\Cake.Testing.Shared\Cake.Testing.Shared.csproj">
<Project>{8e5a518a-eb84-4a1b-a091-d9d66c8ff979}</Project>
<Name>Cake.Testing.Shared</Name>
</ProjectReference>
<ProjectReference Include="..\Cake.Testing.Xunit\Cake.Testing.Xunit.csproj">
<Project>{5AF751D1-BB54-4268-9E42-3A898B034B06}</Project>
<Name>Cake.Testing.Xunit</Name>
Expand Down
20 changes: 20 additions & 0 deletions src/Cake.Core.Tests/Fixtures/DummyToolFixture.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using Cake.Core.Tests.Stubs;
using Cake.Testing.Shared;

namespace Cake.Core.Tests.Fixtures
{
public sealed class DummyToolFixture : ToolFixture<DummySettings>
{
public DummyToolFixture()
: base("dummy.exe")
{
}

protected override void RunTool()
{
var tool = new DummyTool(FileSystem, Environment, ProcessRunner, Globber);
tool.Run(Settings);
}
}

}
8 changes: 8 additions & 0 deletions src/Cake.Core.Tests/Stubs/DummySettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using Cake.Core.Tooling;

namespace Cake.Core.Tests.Stubs
{
public sealed class DummySettings : ToolSettings
{
}
}
29 changes: 29 additions & 0 deletions src/Cake.Core.Tests/Stubs/DummyTool.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System.Collections.Generic;
using Cake.Core.IO;
using Cake.Core.Tooling;

namespace Cake.Core.Tests.Stubs
{
public sealed class DummyTool : Tool<DummySettings>
{
public DummyTool(IFileSystem fileSystem, ICakeEnvironment environment, IProcessRunner processRunner, IGlobber globber)
: base(fileSystem, environment, processRunner, globber)
{
}

public void Run(DummySettings settings)
{
Run(settings, new ProcessArgumentBuilder().Append("--foo"));
}

protected override string GetToolName()
{
return "dummy";
}

protected override IEnumerable<string> GetToolExecutableNames()
{
return new[] { "dummy.exe" };
}
}
}
21 changes: 20 additions & 1 deletion src/Cake.Core.Tests/Unit/IO/ProcessArgumentBuilderTests.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,28 @@
using Cake.Core.IO;
using Cake.Core.IO.Arguments;
using Xunit;

namespace Cake.Core.Tests.Unit.IO
{
public sealed class ProcessArgumentBuilderTests
{
public sealed class TheClearMethod
{
[Fact]
public void Should_Remove_All_Arguments()
{
// Given
var builder = new ProcessArgumentBuilder();
builder.Append(new TextArgument("Hello World"));

// When
builder.Clear();

// Then
Assert.Empty(builder.Render());
}
}

public sealed class ImplicitConversion
{
public sealed class FromString
Expand All @@ -16,9 +34,10 @@ public sealed class FromString
[InlineData(null, "")]
public void Should_Return_Builder_With_Correct_Content(string value, string expected)
{
// Given, When
var builder = (ProcessArgumentBuilder)value;

// Render
// Then
Assert.Equal(expected, builder.Render());
}
}
Expand Down
Loading

0 comments on commit ce99a1d

Please sign in to comment.