From f6f6d2d0a1caa2cd189128c6057dd3f7ac839647 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Mon, 23 May 2022 23:20:00 -0500 Subject: [PATCH] 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. --- .../ConfigurationFinderTest.cs | 28 +++++++++++++------ src/Recyclarr/ConfigurationFinder.cs | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/Recyclarr.Tests/ConfigurationFinderTest.cs b/src/Recyclarr.Tests/ConfigurationFinderTest.cs index 4e43a1f8..58b419a8 100644 --- a/src/Recyclarr.Tests/ConfigurationFinderTest.cs +++ b/src/Recyclarr.Tests/ConfigurationFinderTest.cs @@ -20,13 +20,16 @@ public class ConfigurationFinderTest [Frozen] IAppPaths paths, ConfigurationFinder sut) { + var basePath = fs.Path.Combine("base", "path"); + var baseYaml = fs.Path.Combine(basePath, "recyclarr.yml"); + paths.DefaultConfigFilename.Returns("recyclarr.yml"); - appContext.BaseDirectory.Returns(@"base\path"); - fs.AddFile(@"base\path\recyclarr.yml", new MockFileData("")); + appContext.BaseDirectory.Returns(basePath); + fs.AddFile(baseYaml, new MockFileData("")); var path = sut.FindConfigPath(); - path.Should().EndWith(@"base\path\recyclarr.yml"); + path.Should().EndWith(baseYaml); } [Test, AutoMockData] @@ -36,11 +39,13 @@ public class ConfigurationFinderTest [Frozen] IAppPaths paths, 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(); - path.Should().EndWith(@"app\data\recyclarr.yml"); + path.Should().EndWith(appYaml); } [Test, AutoMockData] @@ -50,13 +55,18 @@ public class ConfigurationFinderTest [Frozen] IAppPaths paths, 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"); - appContext.BaseDirectory.Returns(@"base\path"); - fs.AddFile(@"base\path\recyclarr.yml", new MockFileData("")); - fs.AddFile(@"app\data\recyclarr.yml", new MockFileData("")); + appContext.BaseDirectory.Returns(basePath); + fs.AddFile(baseYaml, new MockFileData("")); + fs.AddFile(appYaml, new MockFileData("")); var path = sut.FindConfigPath(); - path.Should().EndWith(@"base\path\recyclarr.yml"); + path.Should().EndWith(baseYaml); } } diff --git a/src/Recyclarr/ConfigurationFinder.cs b/src/Recyclarr/ConfigurationFinder.cs index b25c8906..a0ca5a73 100644 --- a/src/Recyclarr/ConfigurationFinder.cs +++ b/src/Recyclarr/ConfigurationFinder.cs @@ -23,7 +23,7 @@ public class ConfigurationFinder : IConfigurationFinder public string FindConfigPath() { 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)) {