Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public void ReturnsTrueForPathsThatExist(string path)
        {
            var exists = PathDiagnostics.PathExistsOrDiff(path, out var report);

            var expected = string.Empty;

            AssertDiff(true, exists, expected, report);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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}");
        }
Ejemplo n.º 5
0
        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}");
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        //[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);
        }
Ejemplo n.º 10
0
        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);
        }