Skip to content

Commit b3f3867

Browse files
committed
cleanup
1 parent 97d719e commit b3f3867

File tree

9 files changed

+19
-56
lines changed

9 files changed

+19
-56
lines changed

src/GitVersionCore.Tests/DefaultConfigFileLocatorTests.cs

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
using System;
21
using System.IO;
32
using NUnit.Framework;
43
using Shouldly;
54
using GitVersion.Configuration;
65
using GitVersion.Exceptions;
76
using GitVersion;
8-
using GitVersion.Logging;
97
using GitVersionCore.Tests.Helpers;
108
using Microsoft.Extensions.DependencyInjection;
119
using Microsoft.Extensions.Options;
@@ -22,6 +20,7 @@ public class DefaultConfigFileLocatorTests : TestBase
2220
private string workingPath;
2321
private IFileSystem fileSystem;
2422
private IConfigProvider configurationProvider;
23+
private IConfigFileLocator configFileLocator;
2524

2625
[SetUp]
2726
public void Setup()
@@ -37,6 +36,7 @@ public void Setup()
3736

3837
fileSystem = sp.GetService<IFileSystem>();
3938
configurationProvider = sp.GetService<IConfigProvider>();
39+
configFileLocator = sp.GetService<IConfigFileLocator>();
4040

4141
ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute<TestAttribute>();
4242
}
@@ -49,10 +49,7 @@ public void ThrowsExceptionOnAmbiguousConfigFileLocation(string repoConfigFile,
4949

5050
var exception = Should.Throw<WarningException>(() =>
5151
{
52-
WithDefaultConfigFileLocator(configFileLocator =>
53-
{
54-
configFileLocator.Verify(workingPath, repoPath);
55-
});
52+
configFileLocator.Verify(workingPath, repoPath);
5653
});
5754

5855
var expecedMessage = $"Ambiguous config file selection from '{workingDirectoryConfigFilePath}' and '{repositoryConfigFilePath}'";
@@ -64,12 +61,7 @@ public void NoWarnOnGitVersionYmlFile()
6461
{
6562
SetupConfigFileContent(string.Empty, DefaultConfigFileLocator.DefaultFileName, repoPath);
6663

67-
var output = WithDefaultConfigFileLocator(configFileLocator =>
68-
{
69-
configurationProvider.Provide(repoPath);
70-
});
71-
72-
output.Length.ShouldBe(0);
64+
Should.NotThrow(() => { configurationProvider.Provide(repoPath); });
7365
}
7466

7567
private string SetupConfigFileContent(string text, string fileName, string path)
@@ -79,19 +71,5 @@ private string SetupConfigFileContent(string text, string fileName, string path)
7971

8072
return fullPath;
8173
}
82-
83-
private string WithDefaultConfigFileLocator(Action<IConfigFileLocator> action)
84-
{
85-
var stringLogger = string.Empty;
86-
void Action(string info) => stringLogger = info;
87-
88-
var logAppender = new TestLogAppender(Action);
89-
var log = new Log(logAppender);
90-
91-
var configFileLocator = new DefaultConfigFileLocator(fileSystem, log);
92-
action(configFileLocator);
93-
94-
return stringLogger;
95-
}
9674
}
9775
}

src/GitVersionCore.Tests/Helpers/TestFileSystem.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ namespace GitVersionCore.Tests.Helpers
99
{
1010
public class TestFileSystem : IFileSystem
1111
{
12-
private static IEqualityComparer<string> fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase;
13-
private readonly Dictionary<string, byte[]> fileSystem = new Dictionary<string, byte[]>(fileSystemCasingComparer);
12+
private readonly Dictionary<string, byte[]> fileSystem = new Dictionary<string, byte[]>(StringComparerUtils.OsDependentComparer);
1413

1514
public void Copy(string @from, string to, bool overwrite)
1615
{
@@ -122,7 +121,10 @@ public long GetLastDirectoryWrite(string path)
122121

123122
public bool PathsEqual(string path, string otherPath)
124123
{
125-
return path == otherPath;
124+
return string.Equals(
125+
Path.GetFullPath(path).TrimEnd('\\').TrimEnd('/'),
126+
Path.GetFullPath(otherPath).TrimEnd('\\').TrimEnd('/'),
127+
StringComparerUtils.OsDependentComparison);
126128
}
127129
}
128130
}

src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public void DoNotThrowWhenWorkingAndRepoPathsAreSame()
6565
}
6666

6767
[Test]
68-
[Platform(Exclude = "Linux,Unix")]
6968
public void DoNotThrowWhenWorkingAndRepoPathsAreSame_WithDifferentCasing()
7069
{
7170
workingPath = DefaultRepoPath.ToLower();

src/GitVersionCore/Configuration/ConfigFileLocator.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
using System;
22
using System.IO;
3-
using GitVersion.Logging;
43

54
namespace GitVersion.Configuration
65
{
76
public abstract class ConfigFileLocator : IConfigFileLocator
87
{
98
protected readonly IFileSystem FileSystem;
10-
protected readonly ILog Log;
119

12-
protected ConfigFileLocator(IFileSystem fileSystem, ILog log)
10+
protected ConfigFileLocator(IFileSystem fileSystem)
1311
{
1412
FileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
15-
Log = log ?? throw new ArgumentNullException(nameof(log));
1613
}
1714

1815
public abstract bool HasConfigFileAt(string workingDirectory);
@@ -26,12 +23,7 @@ public string SelectConfigFilePath(IGitPreparer gitPreparer)
2623
var workingDirectory = gitPreparer.GetWorkingDirectory();
2724
var projectRootDirectory = gitPreparer.GetProjectRootDirectory();
2825

29-
if (HasConfigFileAt(workingDirectory))
30-
{
31-
return GetConfigFilePath(workingDirectory);
32-
}
33-
34-
return GetConfigFilePath(projectRootDirectory);
26+
return GetConfigFilePath(HasConfigFileAt(workingDirectory) ? workingDirectory : projectRootDirectory);
3527
}
3628

3729
public Config ReadConfig(string workingDirectory)
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
using System;
2-
using GitVersion.Logging;
32
using Microsoft.Extensions.Options;
43

54
namespace GitVersion.Configuration
65
{
76
public class ConfigFileLocatorFactory : IConfigFileLocatorFactory
87
{
98
private readonly IFileSystem fileSystem;
10-
private readonly ILog log;
119
private readonly IOptions<Arguments> options;
1210

13-
public ConfigFileLocatorFactory(IFileSystem fileSystem, ILog log, IOptions<Arguments> options)
11+
public ConfigFileLocatorFactory(IFileSystem fileSystem, IOptions<Arguments> options)
1412
{
1513
this.fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
16-
this.log = log ?? throw new ArgumentNullException(nameof(log));
1714
this.options = options ?? throw new ArgumentNullException(nameof(options));
1815
}
1916

2017
public IConfigFileLocator Create()
2118
{
2219
return string.IsNullOrWhiteSpace(options.Value.ConfigFile)
23-
? new DefaultConfigFileLocator(fileSystem, log) as IConfigFileLocator
24-
: new NamedConfigFileLocator(fileSystem, log, options);
20+
? new DefaultConfigFileLocator(fileSystem) as IConfigFileLocator
21+
: new NamedConfigFileLocator(fileSystem, options);
2522
}
2623
}
2724
}

src/GitVersionCore/Configuration/DefaultConfigFileLocator.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
using System.IO;
22
using GitVersion.Exceptions;
3-
using GitVersion.Logging;
43

54
namespace GitVersion.Configuration
65
{
76
public class DefaultConfigFileLocator : ConfigFileLocator
87
{
9-
public DefaultConfigFileLocator(IFileSystem fileSystem, ILog log) : base(fileSystem, log)
8+
public DefaultConfigFileLocator(IFileSystem fileSystem) : base(fileSystem)
109
{
1110
}
1211

src/GitVersionCore/Configuration/IConfigFileLocator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ public interface IConfigFileLocator
44
{
55
bool HasConfigFileAt(string workingDirectory);
66
string GetConfigFilePath(string workingDirectory);
7+
void Verify(IGitPreparer gitPreparer);
78
void Verify(string workingDirectory, string projectRootDirectory);
89
string SelectConfigFilePath(IGitPreparer gitPreparer);
910
Config ReadConfig(string workingDirectory);
10-
void Verify(IGitPreparer gitPreparer);
1111
}
1212
}

src/GitVersionCore/Configuration/NamedConfigFileLocator.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using System;
22
using System.IO;
33
using GitVersion.Exceptions;
4-
using GitVersion.Logging;
54
using Microsoft.Extensions.Options;
65

76
namespace GitVersion.Configuration
@@ -10,7 +9,7 @@ public class NamedConfigFileLocator : ConfigFileLocator
109
{
1110
private readonly IOptions<Arguments> options;
1211

13-
public NamedConfigFileLocator(IFileSystem fileSystem, ILog log, IOptions<Arguments> options) : base(fileSystem, log)
12+
public NamedConfigFileLocator(IFileSystem fileSystem, IOptions<Arguments> options) : base(fileSystem)
1413
{
1514
this.options = options ?? throw new ArgumentNullException(nameof(options));
1615
}
@@ -36,10 +35,6 @@ private void WarnAboutAmbiguousConfigFileSelection(string workingDirectory, stri
3635
var workingConfigFile = GetConfigFilePath(workingDirectory);
3736
var projectRootConfigFile = GetConfigFilePath(projectRootDirectory);
3837

39-
var fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
40-
if (Path.GetFullPath(workingConfigFile).Equals(Path.GetFullPath(projectRootConfigFile), fileSystemCasingComparer))
41-
return;
42-
4338
var hasConfigInWorkingDirectory = FileSystem.Exists(workingConfigFile);
4439
var hasConfigInProjectRootDirectory = FileSystem.Exists(projectRootConfigFile);
4540
if (hasConfigInProjectRootDirectory && hasConfigInWorkingDirectory)

src/GitVersionCore/Helpers/StringComparerUtils.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace GitVersion.Helpers
55
public static class StringComparerUtils
66
{
77
public static readonly StringComparer IgnoreCaseComparer = StringComparer.InvariantCultureIgnoreCase;
8-
public static readonly StringComparison OsDependentComparison = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase;
8+
public static readonly StringComparison OsDependentComparison = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
9+
public static readonly StringComparer OsDependentComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase;
910
}
1011
}

0 commit comments

Comments
 (0)