Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 41 additions & 40 deletions src/GitVersionCore.Tests/AssemblyInfoFileUpdaterTests.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using GitVersion;
using GitVersion.Extensions;
using GitVersion.Extensions.VersionAssemblyInfoResources;
Expand Down Expand Up @@ -47,8 +48,8 @@ public void ShouldCreateAssemblyInfoFileWhenNotExistsAndEnsureAssemblyInfo(strin
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, true, workingDir, assemblyInfoFile);

fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
}
Expand All @@ -65,8 +66,8 @@ public void ShouldCreateAssemblyInfoFileAtPathWhenNotExistsAndEnsureAssemblyInfo
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, true, workingDir, assemblyInfoFile);

fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
}
Expand All @@ -86,8 +87,8 @@ public void ShouldCreateAssemblyInfoFilesAtPathWhenNotExistsAndEnsureAssemblyInf
};
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, log, true);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, true, workingDir, assemblyInfoFiles.ToArray());

foreach (var item in assemblyInfoFiles)
{
Expand All @@ -106,8 +107,8 @@ public void ShouldNotCreateAssemblyInfoFileWhenNotExistsAndNotEnsureAssemblyInfo
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fileSystem.Exists(fullPath).ShouldBeFalse();
}
Expand All @@ -121,8 +122,8 @@ public void ShouldNotCreateAssemblyInfoFileForUnknownSourceCodeAndEnsureAssembly
var fullPath = Path.Combine(workingDir, assemblyInfoFile);
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fileSystem, log, true);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, true, workingDir, assemblyInfoFile);

fileSystem.Received(0).WriteAllText(fullPath, Arg.Any<string>());
}
Expand All @@ -135,8 +136,8 @@ public void ShouldStartSearchFromWorkingDirectory()
var assemblyInfoFiles = new HashSet<string>();
var variables = variableProvider.GetVariablesFor(SemanticVersion.Parse("1.0.0", "v"), new TestEffectiveConfiguration(), false);

using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFiles, workingDir, variables, fileSystem, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fileSystem);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFiles.ToArray());

fileSystem.Received().DirectoryGetFiles(Arg.Is(workingDir), Arg.Any<string>(), Arg.Any<SearchOption>());
}
Expand All @@ -152,8 +153,8 @@ public void ShouldReplaceAssemblyVersion(string fileExtension, string assemblyFi

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -175,8 +176,8 @@ public void ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone(string fileEx

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

assemblyFileContent = fs.ReadAllText(fileName);
assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
Expand All @@ -194,8 +195,8 @@ public void ShouldReplaceAssemblyVersionInRelativePath(string fileExtension, str

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -215,8 +216,8 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithWhiteSpace(string file

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -236,8 +237,8 @@ public void ShouldReplaceAssemblyVersionWithStar(string fileExtension, string as

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -257,8 +258,8 @@ public void ShouldReplaceAssemblyVersionWithAtttributeSuffix(string fileExtensio

VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
!s.Contains(@"AssemblyVersionAttribute(""1.0.0.0"")") &&
Expand All @@ -281,8 +282,8 @@ public void ShouldAddAssemblyVersionIfMissingFromInfoFile(string fileExtension)

VerifyAssemblyInfoFile("", fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -302,8 +303,8 @@ public void ShouldReplaceAlreadySubstitutedValues(string fileExtension, string a

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -323,8 +324,8 @@ public void ShouldReplaceAssemblyVersionWhenCreatingAssemblyVersionFileAndEnsure

VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.1.0"")") &&
Expand All @@ -344,8 +345,8 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariables(string fileE

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -365,8 +366,8 @@ public void ShouldReplaceAssemblyVersionInRelativePathWithVariablesAndWhiteSpace

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.MajorMinor, (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

fs.Received().WriteAllText(fileName, Arg.Is<string>(s =>
s.Contains(@"AssemblyVersion(""2.3.0.0"")") &&
Expand All @@ -388,8 +389,8 @@ public void ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile

VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

assemblyFileContent = fs.ReadAllText(fileName);
assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
Expand All @@ -409,8 +410,8 @@ public void Issue1183ShouldAddFSharpAssemblyInformationalVersionBesideOtherAttri

VerifyAssemblyInfoFile(assemblyFileContent, fileName, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

assemblyFileContent = fs.ReadAllText(fileName);
assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
Expand All @@ -430,8 +431,8 @@ public void ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionF

VerifyAssemblyInfoFile(assemblyFileContent, fileName, AssemblyVersioningScheme.None, verify: (fs, variables) =>
{
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(assemblyInfoFile, workingDir, variables, fs, log, false);
assemblyInfoFileUpdater.Update();
using var assemblyInfoFileUpdater = new AssemblyInfoFileUpdater(log, fs);
assemblyInfoFileUpdater.Update(variables, false, workingDir, assemblyInfoFile);

assemblyFileContent = fs.ReadAllText(fileName);
assemblyFileContent.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
Expand Down
2 changes: 1 addition & 1 deletion src/GitVersionCore.Tests/DynamicRepositoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public void FindsVersionInDynamicRepo(string name, string url, string targetBran
var gitPreparer = sp.GetService<IGitPreparer>();
gitPreparer.Prepare();

var gitVersionCalculator = sp.GetService<IGitVersionCalculator>();
var gitVersionCalculator = sp.GetService<IGitVersionTool>();

var versionVariables = gitVersionCalculator.CalculateVersionVariables();

Expand Down
4 changes: 2 additions & 2 deletions src/GitVersionCore.Tests/GitVersionExecutorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ public void GetDotGitDirectoryWorktree()
}
}

private IGitVersionCalculator GetGitVersionCalculator(Arguments arguments, ILog logger = null, IRepository repository = null, IFileSystem fs = null)
private IGitVersionTool GetGitVersionCalculator(Arguments arguments, ILog logger = null, IRepository repository = null, IFileSystem fs = null)
{
sp = GetServiceProvider(arguments, logger, repository, fs);

Expand All @@ -514,7 +514,7 @@ private IGitVersionCalculator GetGitVersionCalculator(Arguments arguments, ILog
gitVersionCache = sp.GetService<IGitVersionCache>();
gitPreparer = sp.GetService<IGitPreparer>();

return sp.GetService<IGitVersionCalculator>();
return sp.GetService<IGitVersionTool>();
}

private static IServiceProvider GetServiceProvider(Arguments arguments, ILog log = null, IRepository repository = null, IFileSystem fileSystem = null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ public void ShouldCreateFile(string fileExtension)
var variableProvider = sp.GetService<IVariableProvider>();

var variables = variableProvider.GetVariablesFor(semanticVersion, new TestEffectiveConfiguration(), false);
var generator = new GitVersionInformationGenerator(fileName, directory, variables, fileSystem);
var generator = new GitVersionInformationGenerator(fileSystem);

generator.Generate();
generator.Generate(variables, new FileWriteInfo(directory, fileName, fileExtension));

fileSystem.ReadAllText(fullPath).ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved", fileExtension)));
}
Expand Down
12 changes: 7 additions & 5 deletions src/GitVersionCore.Tests/WixFileTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,14 @@ public void UpdateWixVersionFile()

var fileSystem = sp.GetService<IFileSystem>();
var variableProvider = sp.GetService<IVariableProvider>();
var vars = variableProvider.GetVariablesFor(semVer, config, false);
var versionVariables = variableProvider.GetVariablesFor(semVer, config, false);

using var wixVersionFileUpdater = new WixVersionFileUpdater(workingDir, vars, fileSystem, log);
wixVersionFileUpdater.Update();
fileSystem.ReadAllText(wixVersionFileUpdater.WixVersionFile).
ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved")));
using var wixVersionFileUpdater = sp.GetService<IWixVersionFileUpdater>();

var file = wixVersionFileUpdater.Update(versionVariables, workingDir);
fileSystem
.ReadAllText(file)
.ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved")));
}
}
}
9 changes: 0 additions & 9 deletions src/GitVersionCore/Common/IGitVersionCalculator.cs

This file was deleted.

14 changes: 14 additions & 0 deletions src/GitVersionCore/Common/IGitVersionTool.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using GitVersion.OutputVariables;

namespace GitVersion
{
public interface IGitVersionTool
{
VersionVariables CalculateVersionVariables();
void OutputVariables(VersionVariables variables, Action<string> writter);
void UpdateAssemblyInfo(VersionVariables variables);
void UpdateWixVersionFile(VersionVariables variables);
void GenerateGitVersionInformation(VersionVariables variables, FileWriteInfo fileWriteInfo);
}
}
Loading