test: Use Path.Combine() for unit test paths

Tests fail inconsistently between Linux & Windows if you hard-code paths
with forward or backward slashes. My hope was that `MockFileSystem`
converted the slashes for me, to assist in simpler unit testing.
pull/76/head
Robert Dailey 2 years ago
parent ef9430424b
commit f6f6d2d0a1

@ -20,13 +20,16 @@ public class ConfigurationFinderTest
[Frozen] IAppPaths paths, [Frozen] IAppPaths paths,
ConfigurationFinder sut) ConfigurationFinder sut)
{ {
var basePath = fs.Path.Combine("base", "path");
var baseYaml = fs.Path.Combine(basePath, "recyclarr.yml");
paths.DefaultConfigFilename.Returns("recyclarr.yml"); paths.DefaultConfigFilename.Returns("recyclarr.yml");
appContext.BaseDirectory.Returns(@"base\path"); appContext.BaseDirectory.Returns(basePath);
fs.AddFile(@"base\path\recyclarr.yml", new MockFileData("")); fs.AddFile(baseYaml, new MockFileData(""));
var path = sut.FindConfigPath(); var path = sut.FindConfigPath();
path.Should().EndWith(@"base\path\recyclarr.yml"); path.Should().EndWith(baseYaml);
} }
[Test, AutoMockData] [Test, AutoMockData]
@ -36,11 +39,13 @@ public class ConfigurationFinderTest
[Frozen] IAppPaths paths, [Frozen] IAppPaths paths,
ConfigurationFinder sut) ConfigurationFinder sut)
{ {
paths.ConfigPath.Returns(@"app\data\recyclarr.yml"); var appYaml = fs.Path.Combine("app", "data", "recyclarr.yml");
paths.ConfigPath.Returns(appYaml);
var path = sut.FindConfigPath(); var path = sut.FindConfigPath();
path.Should().EndWith(@"app\data\recyclarr.yml"); path.Should().EndWith(appYaml);
} }
[Test, AutoMockData] [Test, AutoMockData]
@ -50,13 +55,18 @@ public class ConfigurationFinderTest
[Frozen] IAppPaths paths, [Frozen] IAppPaths paths,
ConfigurationFinder sut) ConfigurationFinder sut)
{ {
var appPath = fs.Path.Combine("app", "data");
var basePath = fs.Path.Combine("base", "path");
var baseYaml = fs.Path.Combine(basePath, "recyclarr.yml");
var appYaml = fs.Path.Combine(appPath, "recyclarr.yml");
paths.DefaultConfigFilename.Returns("recyclarr.yml"); paths.DefaultConfigFilename.Returns("recyclarr.yml");
appContext.BaseDirectory.Returns(@"base\path"); appContext.BaseDirectory.Returns(basePath);
fs.AddFile(@"base\path\recyclarr.yml", new MockFileData("")); fs.AddFile(baseYaml, new MockFileData(""));
fs.AddFile(@"app\data\recyclarr.yml", new MockFileData("")); fs.AddFile(appYaml, new MockFileData(""));
var path = sut.FindConfigPath(); var path = sut.FindConfigPath();
path.Should().EndWith(@"base\path\recyclarr.yml"); path.Should().EndWith(baseYaml);
} }
} }

@ -23,7 +23,7 @@ public class ConfigurationFinder : IConfigurationFinder
public string FindConfigPath() public string FindConfigPath()
{ {
var newPath = _paths.ConfigPath; var newPath = _paths.ConfigPath;
var oldPath = _fs.Path.Join(_appContext.BaseDirectory, _paths.DefaultConfigFilename); var oldPath = _fs.Path.Combine(_appContext.BaseDirectory, _paths.DefaultConfigFilename);
if (!_fs.File.Exists(oldPath)) if (!_fs.File.Exists(oldPath))
{ {

Loading…
Cancel
Save