Add unit tests.
This commit is contained in:
parent
3fcdbfb45d
commit
d37f5b2ed1
4 changed files with 228 additions and 0 deletions
|
@ -0,0 +1,156 @@
|
||||||
|
using NUnit.Framework;
|
||||||
|
using Cake.Core;
|
||||||
|
using Moq;
|
||||||
|
|
||||||
|
namespace Cake.ArgumentHelpers.Tests
|
||||||
|
{
|
||||||
|
[TestFixture()]
|
||||||
|
public class ArgumentOrEnvironmentVariableAliasTests
|
||||||
|
{
|
||||||
|
Mock<ICakeContext> cakeContextMock;
|
||||||
|
Mock<ICakeArguments> cakeArgumentsMock;
|
||||||
|
Mock<ICakeEnvironment> cakeEnvironmentMock;
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
cakeContextMock = new Mock<ICakeContext>();
|
||||||
|
cakeArgumentsMock = new Mock<ICakeArguments>();
|
||||||
|
cakeEnvironmentMock = new Mock<ICakeEnvironment>();
|
||||||
|
cakeContextMock.Setup(cakeContext => cakeContext.Arguments).Returns(cakeArgumentsMock.Object);
|
||||||
|
cakeContextMock.Setup(cakeContext => cakeContext.Environment).Returns(cakeEnvironmentMock.Object);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetupVariables(string key, string environmentPrefix, bool? argumentValue, bool? environmentValue)
|
||||||
|
{
|
||||||
|
bool hasArgument = argumentValue != null;
|
||||||
|
cakeArgumentsMock.Setup(x => x.HasArgument(key)).Returns(hasArgument);
|
||||||
|
if (hasArgument)
|
||||||
|
{
|
||||||
|
cakeArgumentsMock.Setup(x => x.GetArgument(key)).Returns(argumentValue.ToString());
|
||||||
|
}
|
||||||
|
cakeEnvironmentMock.Setup(x => x.GetEnvironmentVariable(environmentPrefix + key)).Returns(environmentValue != null ? environmentValue.Value.ToString() : null);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TrueArgumentAndNullEnvironment_ReturnsTrue()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = true;
|
||||||
|
bool? testEnvironmentValue = null;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = true;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find Argument variable.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void FalseArgumentAndNullEnvironment_ReturnsFalse()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = false;
|
||||||
|
bool? testEnvironmentValue = null;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = false;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find Argument variable.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void NullArgumentAndTrueEnvironment_ReturnsTrue()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = null;
|
||||||
|
bool? testEnvironmentValue = true;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = true;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find Environment variable.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void NullArgumentAndFalseEnvironment_ReturnsFalse()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = null;
|
||||||
|
bool? testEnvironmentValue = false;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = false;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find Environment variable.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void NullArgumentAndTrueEnvironmentWithoutPrefix_ReturnsTrue()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = (string)null;
|
||||||
|
bool? testArgumentValue = null;
|
||||||
|
bool? testEnvironmentValue = true;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = true;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find Environment variable without prefix.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void TrueArgumentAndTrueEnvironment_ReturnsTrue()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = true;
|
||||||
|
bool? testEnvironmentValue = true;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = true;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Didn't find variable value from either source.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void TrueArgumentAndFalseEnvironment_ReturnsTrue()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = true;
|
||||||
|
bool? testEnvironmentValue = false;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = true;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Explicit argument variable didn't override opposite environment variable.");
|
||||||
|
}
|
||||||
|
[Test]
|
||||||
|
public void FalseArgumentAndTrueEnvironment_ReturnsFalse()
|
||||||
|
{
|
||||||
|
var testKey = "someVariable";
|
||||||
|
var testKeyEnvironmentPrefix = "somePrefix_";
|
||||||
|
bool? testArgumentValue = false;
|
||||||
|
bool? testEnvironmentValue = true;
|
||||||
|
|
||||||
|
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
|
||||||
|
|
||||||
|
var expected = false;
|
||||||
|
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, testKeyEnvironmentPrefix, true);
|
||||||
|
|
||||||
|
Assert.AreEqual(expected, actual, "Explicit argument variable didn't override opposite environment variable.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
58
Cake.ArgumentHelpers.Tests/Cake.ArgumentHelpers.Tests.csproj
Normal file
58
Cake.ArgumentHelpers.Tests/Cake.ArgumentHelpers.Tests.csproj
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<RootNamespace>Cake.ArgumentHelpers.Tests</RootNamespace>
|
||||||
|
<AssemblyName>Cake.ArgumentHelpers.Tests</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="nunit.framework">
|
||||||
|
<HintPath>..\packages\NUnit.3.7.1\lib\net45\nunit.framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Cake.Core">
|
||||||
|
<HintPath>..\packages\Cake.Core.0.21.0\lib\net45\Cake.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Cake.Common">
|
||||||
|
<HintPath>..\packages\Cake.Common.0.21.0\lib\net45\Cake.Common.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Castle.Core">
|
||||||
|
<HintPath>..\packages\Castle.Core.4.1.0\lib\net45\Castle.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Moq">
|
||||||
|
<HintPath>..\packages\Moq.4.7.63\lib\net45\Moq.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="ArgumentOrEnvironmentVariableAliasTests.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Cake.ArgumentHelpers\Cake.ArgumentHelpers.csproj">
|
||||||
|
<Project>{9C50A7C4-E00D-4851-8311-81135D062C77}</Project>
|
||||||
|
<Name>Cake.ArgumentHelpers</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
8
Cake.ArgumentHelpers.Tests/packages.config
Normal file
8
Cake.ArgumentHelpers.Tests/packages.config
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Cake.Common" version="0.21.0" targetFramework="net461" />
|
||||||
|
<package id="Cake.Core" version="0.21.0" targetFramework="net461" />
|
||||||
|
<package id="Castle.Core" version="4.1.0" targetFramework="net461" />
|
||||||
|
<package id="Moq" version="4.7.63" targetFramework="net461" />
|
||||||
|
<package id="NUnit" version="3.7.1" targetFramework="net461" />
|
||||||
|
</packages>
|
|
@ -10,6 +10,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
||||||
Package.nuspec = Package.nuspec
|
Package.nuspec = Package.nuspec
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.ArgumentHelpers.Tests", "Cake.ArgumentHelpers.Tests\Cake.ArgumentHelpers.Tests.csproj", "{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -20,6 +22,10 @@ Global
|
||||||
{9C50A7C4-E00D-4851-8311-81135D062C77}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{9C50A7C4-E00D-4851-8311-81135D062C77}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{9C50A7C4-E00D-4851-8311-81135D062C77}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{9C50A7C4-E00D-4851-8311-81135D062C77}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{9C50A7C4-E00D-4851-8311-81135D062C77}.Release|Any CPU.Build.0 = Release|Any CPU
|
{9C50A7C4-E00D-4851-8311-81135D062C77}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1297E243-9A95-45A5-A5C6-AAAC94ECEE22}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
Loading…
Add table
Reference in a new issue