Skip to content

Commit 1b2a48b

Browse files
committed
added tests for UpdateAssemblyInfo task
1 parent 1f1396b commit 1b2a48b

File tree

7 files changed

+110
-53
lines changed

7 files changed

+110
-53
lines changed

src/GitVersionTask.MsBuild/Tasks/UpdateAssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class UpdateAssemblyInfo : GitVersionTaskBase
1414
public ITaskItem[] CompileFiles { get; set; }
1515

1616
[Required]
17-
public string Language { get; set; }
17+
public string Language { get; set; } = "C#";
1818

1919
[Output]
2020
public string AssemblyInfoTempFilePath { get; set; }

src/GitVersionTask.Tests/GenerateGitVersionInformationTest.cs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,21 @@
11
using System.Collections.Generic;
22
using System.IO;
33
using System.Linq;
4-
using GitTools.Testing;
54
using GitVersion.BuildServers;
65
using GitVersion.MSBuildTask.Tasks;
7-
using GitVersionCore.Tests.Helpers;
86
using GitVersionTask.Tests.Helpers;
9-
using LibGit2Sharp;
107
using NUnit.Framework;
118
using Shouldly;
129

1310
namespace GitVersion.MSBuildTask.Tests
1411
{
1512
[TestFixture]
16-
public class GenerateGitVersionInformationTest : TestBase
13+
public class GenerateGitVersionInformationTest : TestTaskBase
1714
{
1815
[Test]
1916
public void GenerateGitVersionInformationTaskShouldCreateFile()
2017
{
21-
using var fixture = new EmptyRepositoryFixture();
22-
fixture.MakeATaggedCommit("1.2.3");
23-
fixture.MakeACommit();
18+
using var fixture = CreateLocalRepositoryFixture();
2419

2520
var task = new GenerateGitVersionInformation
2621
{
@@ -42,16 +37,7 @@ public void GenerateGitVersionInformationTaskShouldCreateFile()
4237
[Test]
4338
public void GenerateGitVersionInformationTaskShouldCreateFileWhenRunningInBuildServer()
4439
{
45-
using var fixture = new RemoteRepositoryFixture();
46-
fixture.Repository.MakeACommit();
47-
fixture.Repository.MakeATaggedCommit("1.0.0");
48-
fixture.Repository.MakeACommit();
49-
fixture.Repository.CreateBranch("develop");
50-
51-
Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null);
52-
Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip);
53-
fixture.LocalRepositoryFixture.Repository.Branches.Remove("master");
54-
fixture.InitializeRepo();
40+
using var fixture = CreateRemoteRepositoryFixture();
5541

5642
var task = new GenerateGitVersionInformation
5743
{

src/GitVersionTask.Tests/GetVersionTaskTests.cs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
using System.Collections.Generic;
22
using System.Linq;
3-
using GitTools.Testing;
43
using GitVersion.BuildServers;
54
using GitVersion.MSBuildTask.Tasks;
65
using GitVersion.OutputVariables;
7-
using GitVersionCore.Tests.Helpers;
86
using GitVersionTask.Tests.Helpers;
9-
using LibGit2Sharp;
107
using Microsoft.Build.Framework;
118
using NUnit.Framework;
129
using Shouldly;
1310

1411
namespace GitVersion.MSBuildTask.Tests
1512
{
1613
[TestFixture]
17-
public class GetVersionTaskTests : TestBase
14+
public class GetVersionTaskTests : TestTaskBase
1815
{
1916
[Test]
2017
public void OutputsShouldMatchVariableProvider()
@@ -32,9 +29,7 @@ public void OutputsShouldMatchVariableProvider()
3229
[Test]
3330
public void GetVersionTaskShouldReturnVersionOutputVariables()
3431
{
35-
using var fixture = new EmptyRepositoryFixture();
36-
fixture.MakeATaggedCommit("1.2.3");
37-
fixture.MakeACommit();
32+
using var fixture = CreateLocalRepositoryFixture();
3833

3934
var task = new GetVersion
4035
{
@@ -52,16 +47,7 @@ public void GetVersionTaskShouldReturnVersionOutputVariables()
5247
[Test]
5348
public void GetVersionTaskShouldReturnVersionOutputVariablesForBuildServer()
5449
{
55-
using var fixture = new RemoteRepositoryFixture();
56-
fixture.Repository.MakeACommit();
57-
fixture.Repository.MakeATaggedCommit("1.0.0");
58-
fixture.Repository.MakeACommit();
59-
fixture.Repository.CreateBranch("develop");
60-
61-
Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null);
62-
Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip);
63-
fixture.LocalRepositoryFixture.Repository.Branches.Remove("master");
64-
fixture.InitializeRepo();
50+
using var fixture = CreateRemoteRepositoryFixture();
6551

6652
var task = new GetVersion
6753
{
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System.Linq;
2+
using GitTools.Testing;
3+
using GitVersionCore.Tests.Helpers;
4+
using GitVersionTask.Tests.Helpers;
5+
using LibGit2Sharp;
6+
7+
namespace GitVersion.MSBuildTask.Tests
8+
{
9+
public class TestTaskBase : TestBase
10+
{
11+
protected static EmptyRepositoryFixture CreateLocalRepositoryFixture()
12+
{
13+
var fixture = new EmptyRepositoryFixture();
14+
fixture.MakeATaggedCommit("1.2.3");
15+
fixture.MakeACommit();
16+
return fixture;
17+
}
18+
19+
protected static RemoteRepositoryFixture CreateRemoteRepositoryFixture()
20+
{
21+
var fixture = new RemoteRepositoryFixture();
22+
fixture.Repository.MakeACommit();
23+
fixture.Repository.MakeATaggedCommit("1.0.0");
24+
fixture.Repository.MakeACommit();
25+
fixture.Repository.CreateBranch("develop");
26+
27+
Commands.Fetch((Repository) fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null);
28+
Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip);
29+
fixture.LocalRepositoryFixture.Repository.Branches.Remove("master");
30+
fixture.InitializeRepo();
31+
return fixture;
32+
}
33+
}
34+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using System.Collections.Generic;
2+
using System.IO;
3+
using System.Linq;
4+
using GitVersion.BuildServers;
5+
using GitVersion.MSBuildTask.Tasks;
6+
using GitVersionTask.Tests.Helpers;
7+
using NUnit.Framework;
8+
using Shouldly;
9+
10+
namespace GitVersion.MSBuildTask.Tests
11+
{
12+
[TestFixture]
13+
public class UpdateAssemblyInfoTaskTest : TestTaskBase
14+
{
15+
[Test]
16+
public void UpdateAssemblyInfoTaskShouldCreateFile()
17+
{
18+
using var fixture = CreateLocalRepositoryFixture();
19+
20+
var task = new UpdateAssemblyInfo
21+
{
22+
SolutionDirectory = fixture.RepositoryPath,
23+
ProjectFile = fixture.RepositoryPath,
24+
};
25+
26+
var msbuildFixture = new MsBuildFixture();
27+
var result = msbuildFixture.Execute(task);
28+
29+
result.Success.ShouldBe(true);
30+
result.Errors.ShouldBe(0);
31+
result.Task.AssemblyInfoTempFilePath.ShouldNotBeNull();
32+
33+
var fileContent = File.ReadAllText(result.Task.AssemblyInfoTempFilePath);
34+
fileContent.ShouldContain(@"[assembly: AssemblyVersion(""1.2.4.0"")]");
35+
}
36+
37+
[Test]
38+
public void UpdateAssemblyInfoTaskShouldCreateFileWhenRunningInBuildServer()
39+
{
40+
using var fixture = CreateRemoteRepositoryFixture();
41+
42+
var task = new UpdateAssemblyInfo
43+
{
44+
SolutionDirectory = fixture.LocalRepositoryFixture.RepositoryPath,
45+
ProjectFile = fixture.LocalRepositoryFixture.RepositoryPath,
46+
};
47+
48+
var env = new Dictionary<string, string>
49+
{
50+
{ AzurePipelines.EnvironmentVariableName, "true" }
51+
};
52+
53+
var msbuildFixture = new MsBuildFixture();
54+
msbuildFixture.WithEnv(env.ToArray());
55+
var result = msbuildFixture.Execute(task);
56+
57+
result.Success.ShouldBe(true);
58+
result.Errors.ShouldBe(0);
59+
result.Task.AssemblyInfoTempFilePath.ShouldNotBeNull();
60+
61+
var fileContent = File.ReadAllText(result.Task.AssemblyInfoTempFilePath);
62+
fileContent.ShouldContain(@"[assembly: AssemblyVersion(""1.0.1.0"")]");
63+
}
64+
}
65+
}

src/GitVersionTask.Tests/WriteVersionInfoTest.cs

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
using System.Collections.Generic;
22
using System.Linq;
3-
using GitTools.Testing;
43
using GitVersion.BuildServers;
54
using GitVersion.MSBuildTask.Tasks;
6-
using GitVersionCore.Tests.Helpers;
75
using GitVersionTask.Tests.Helpers;
8-
using LibGit2Sharp;
96
using NUnit.Framework;
107
using Shouldly;
118

129
namespace GitVersion.MSBuildTask.Tests
1310
{
1411
[TestFixture]
15-
public class WriteVersionInfoTest : TestBase
12+
public class WriteVersionInfoTest : TestTaskBase
1613
{
1714
[Test]
1815
public void WriteVersionInfoTaskShouldNotLogOutputVariablesToBuildOutputIfNotRunningInBuildServer()
1916
{
20-
using var fixture = new EmptyRepositoryFixture();
21-
fixture.MakeATaggedCommit("1.2.3");
22-
fixture.MakeACommit();
17+
using var fixture = CreateLocalRepositoryFixture();
2318

2419
var task = new WriteVersionInfoToBuildLog
2520
{
@@ -37,16 +32,7 @@ public void WriteVersionInfoTaskShouldNotLogOutputVariablesToBuildOutputIfNotRun
3732
[Test]
3833
public void WriteVersionInfoTaskShouldLogOutputVariablesToBuildOutput()
3934
{
40-
using var fixture = new RemoteRepositoryFixture();
41-
fixture.Repository.MakeACommit();
42-
fixture.Repository.MakeATaggedCommit("1.0.0");
43-
fixture.Repository.MakeACommit();
44-
fixture.Repository.CreateBranch("develop");
45-
46-
Commands.Fetch((Repository)fixture.LocalRepositoryFixture.Repository, fixture.LocalRepositoryFixture.Repository.Network.Remotes.First().Name, new string[0], new FetchOptions(), null);
47-
Commands.Checkout(fixture.LocalRepositoryFixture.Repository, fixture.Repository.Head.Tip);
48-
fixture.LocalRepositoryFixture.Repository.Branches.Remove("master");
49-
fixture.InitializeRepo();
35+
using var fixture = CreateRemoteRepositoryFixture();
5036

5137
var task = new WriteVersionInfoToBuildLog
5238
{

src/GitVersionTask/GitVersionTaskExecutor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void GetVersion(GetVersion task)
3131
public void UpdateAssemblyInfo(UpdateAssemblyInfo task)
3232
{
3333
FileHelper.DeleteTempFiles();
34-
FileHelper.CheckForInvalidFiles(task.CompileFiles, task.ProjectFile);
34+
if (task.CompileFiles != null) FileHelper.CheckForInvalidFiles(task.CompileFiles, task.ProjectFile);
3535

3636
var fileWriteInfo = task.IntermediateOutputPath.GetFileWriteInfo(task.Language, task.ProjectFile, "AssemblyInfo");
3737

0 commit comments

Comments
 (0)