public void ReturnsFalseForNullOrEmpty(string path) { var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var expected = "Supplied path was null or empty\n"; AssertDiff(false, exists, expected, report); }
public void ReturnsTrueForPathsThatExist(string path) { var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var expected = string.Empty; AssertDiff(true, exists, expected, report); }
public void ReturnsTrueForPathsThatExistForwardSlash(string path) { path = path.Replace('\\', '/'); var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var expected = string.Empty; AssertDiff(true, exists, expected, report); }
public static void PathExists(this Assert assert, string path, string message = "") { path = Path.GetFullPath(path); bool exists = PathDiagnostics.PathExistsOrDiff(path, out var diff); Assert.IsTrue( exists, $"Expected path {path} to exist but it could not be found. {message}. Path diagnostics:\n{diff.Messages}"); }
public static void FileExists(this Assert assert, string path) { var exists = File.Exists(Path.GetFullPath(path)); if (!exists) { PathDiagnostics.PathExistsOrDiff(path, out var diff); Assert.Fail($"Expected path {path} to exist but it could not be found. Path diagnostics:\n{diff.Messages}"); } }
public void ItCanDetectErrorInFolderName() { string path = ResolveAssetPath("FSharrp"); var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var expected = $@"`{path}` does not exist Input path differs from real path with character 'r', at column {6 + AssetPathLength}: {MakeIndicator(6)} {MakeGoodBad("FShar", "rp")} {MakeAlternatives(ResolveAssetPath("FSharp"))} "; AssertDiff(false, exists, expected, report); }
public void ItCanSuggestFoldersForACompletelyWrongFolder() { string path = ResolveAssetPath("AFolder", "zxy"); var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var alternatives = Directory.EnumerateFileSystemEntries(ResolveAssetPath("AFolder")).ToArray(); var expected = $@"`{path}` does not exist Input path differs from real path with character 'z', at column {9 + AssetPathLength}: {MakeIndicator(9)} {MakeGoodBad($"AFolder{Slash}", "zxy")} {MakeAlternatives(alternatives)} "; AssertDiff(false, exists, expected, report); }
public void ItDealsWithErrantSpacesInParentDirectories() { string path = ResolveAssetPath("AFolder ", "Example1", ".gitkeep"); var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var alternatives = ResolveAssetPath("AFolder"); var expected = $@"`{path}` does not exist Input path has one or more spaces in a parent folder, starting at column {8 + AssetPathLength}: {MakeIndicator(8, "(remove trailing spaces)")} {MakeGoodBad($"AFolder", $" {Slash}Example1{Slash}.gitkeep")} {MakeAlternatives(alternatives)} "; AssertDiff(false, exists, expected, report); }
//[DataRow(".")] // of course that file exists public void ItDealsWithMissingEndCharacters(string file) { string testFragment = Path.Combine("AFolder", "Example1", file); string path = ResolveAssetPath(testFragment); var exists = PathDiagnostics.PathExistsOrDiff(path, out var report); var alternatives = ResolveAssetPath("AFolder", "Example1", ".gitkeep"); var expected = $@"`{path}` does not exist Input path exists wholly until its end (column {testFragment.Length + AssetPathLength}). Is the path complete? {MakeIndicator(testFragment.Length + 1, "(too short)")} {MakeGoodBad($"{testFragment}", string.Empty)} {MakeAlternatives(alternatives)} "; AssertDiff(false, exists, expected, report); }
public void ItDealsWithActualSpacesInParentDirectories() { // arrange string badDirectory = ResolveAssetPath("AFolder", "Example2", "Evil folder3 "); MakeIllegalDirectoryWithFileInside(badDirectory, ".gitkeep"); string badPath = ResolveAssetPath("AFolder", "Example2", "Evil folder3 ", ".gitkeeep"); // act var exists = PathDiagnostics.PathExistsOrDiff(badPath, out var report); // assert var alternatives = ResolveAssetPath("AFolder", "Example2", "Evil folder3 ", ".gitkeep"); var expected = $@"`{badPath}` does not exist Input path differs from real path with character 'e', at column {41 + AssetPathLength}: {MakeIndicator(41)} {MakeGoodBad($"AFolder{Slash}Example2{Slash}Evil folder3 {Slash}.gitkee", "ep")} {MakeAlternatives(alternatives)} "; AssertDiff(false, exists, expected, report); }