Update tests for long file paths

This commit is contained in:
Michael Bucari-Tovo 2022-06-19 15:38:59 -06:00
parent 86a39f10d1
commit a24c929acf
3 changed files with 19 additions and 10 deletions

View File

@ -15,12 +15,17 @@ namespace FileNamingTemplateTests
[TestMethod] [TestMethod]
public void equiv_GetValidFilename() public void equiv_GetValidFilename()
{ {
var expected = @"C:\foo\bar\my_ book LONG_1234567890_1234567890_1234567890_123 [ID123456].txt"; var sb = new System.Text.StringBuilder();
var f1 = OLD_GetValidFilename(@"C:\foo\bar", "my: book LONG_1234567890_1234567890_1234567890_12345", "txt", "ID123456"); sb.Append('0', 300);
var f2 = NEW_GetValidFilename_FileNamingTemplate(@"C:\foo\bar", "my: book LONG_1234567890_1234567890_1234567890_12345", "txt", "ID123456"); var longText = sb.ToString();
f1.Should().Be(expected); var expectedOld = "C:\\foo\\bar\\my_ book 00000000000000000000000000000000000000000 [ID123456].txt";
f1.Should().Be(f2); var expectedNew = "C:\\foo\\bar\\my_ book 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [ID123456].txt";
var f1 = OLD_GetValidFilename(@"C:\foo\bar", "my: book " + longText, "txt", "ID123456");
var f2 = NEW_GetValidFilename_FileNamingTemplate(@"C:\foo\bar", "my: book " + longText, "txt", "ID123456");
f1.Should().Be(expectedOld);
f2.Should().Be(expectedNew);
} }
private static string OLD_GetValidFilename(string dirFullPath, string filename, string extension, string metadataSuffix) private static string OLD_GetValidFilename(string dirFullPath, string filename, string extension, string metadataSuffix)
{ {
@ -58,7 +63,7 @@ namespace FileNamingTemplateTests
var fileNamingTemplate = new FileNamingTemplate(fullfilename) { IllegalCharacterReplacements = "_" }; var fileNamingTemplate = new FileNamingTemplate(fullfilename) { IllegalCharacterReplacements = "_" };
fileNamingTemplate.AddParameterReplacement("title", filename); fileNamingTemplate.AddParameterReplacement("title", filename);
fileNamingTemplate.AddParameterReplacement("id", metadataSuffix); fileNamingTemplate.AddParameterReplacement("id", metadataSuffix);
return fileNamingTemplate.GetFilePath(); return fileNamingTemplate.GetFilePath().PathWithoutPrefix;
} }
[TestMethod] [TestMethod]
@ -101,7 +106,7 @@ namespace FileNamingTemplateTests
var fileNamingTemplate = new FileNamingTemplate(t) { IllegalCharacterReplacements = " " }; var fileNamingTemplate = new FileNamingTemplate(t) { IllegalCharacterReplacements = " " };
fileNamingTemplate.AddParameterReplacement("chapter", chapterCountLeadingZeros); fileNamingTemplate.AddParameterReplacement("chapter", chapterCountLeadingZeros);
fileNamingTemplate.AddParameterReplacement("title", suffix); fileNamingTemplate.AddParameterReplacement("title", suffix);
return fileNamingTemplate.GetFilePath(); return fileNamingTemplate.GetFilePath().PathWithoutPrefix;
} }
[TestMethod] [TestMethod]
@ -109,7 +114,7 @@ namespace FileNamingTemplateTests
{ {
var fileNamingTemplate = new FileNamingTemplate(@"\foo\<title>.txt"); var fileNamingTemplate = new FileNamingTemplate(@"\foo\<title>.txt");
fileNamingTemplate.AddParameterReplacement("title", @"s\l/a\s/h\e/s"); fileNamingTemplate.AddParameterReplacement("title", @"s\l/a\s/h\e/s");
fileNamingTemplate.GetFilePath().Should().Be(@"\foo\slashes.txt"); fileNamingTemplate.GetFilePath().PathWithoutPrefix.Should().Be(@"\foo\slashes.txt");
} }
} }
} }

View File

@ -36,7 +36,7 @@ namespace FileUtilityTests
// remove empty directories // remove empty directories
[DataRow(@"C:\a\\\b\c\\\d.txt", "ZZZ", @"C:\a\b\c\d.txt")] [DataRow(@"C:\a\\\b\c\\\d.txt", "ZZZ", @"C:\a\b\c\d.txt")]
[DataRow(@"C:\""foo\<id>", "ZZZ", @"C:\ZZZfoo\ZZZidZZZ")] [DataRow(@"C:\""foo\<id>", "ZZZ", @"C:\ZZZfoo\ZZZidZZZ")]
public void Tests(string inStr, string replacement, string outStr) => Assert.AreEqual(outStr, FileUtility.GetSafePath(inStr, replacement)); public void Tests(string inStr, string replacement, string outStr) => Assert.AreEqual(outStr, FileUtility.GetSafePath(inStr, replacement).PathWithoutPrefix);
} }
[TestClass] [TestClass]
@ -134,7 +134,7 @@ namespace FileUtilityTests
// file end dots // file end dots
[DataRow(@"C:\a bc\x y z\f i l e.txt . . .", @"C:\a bc\x y z\f i l e.txt")] [DataRow(@"C:\a bc\x y z\f i l e.txt . . .", @"C:\a bc\x y z\f i l e.txt")]
public void Tests(string input, string expected) public void Tests(string input, string expected)
=> FileUtility.GetValidFilename(input).Should().Be(expected); => FileUtility.GetValidFilename(input).PathWithoutPrefix.Should().Be(expected);
} }
[TestClass] [TestClass]

View File

@ -74,24 +74,28 @@ namespace TemplatesTests
public void Tests(string template, string asin, string dirFullPath, string extension, string expected) public void Tests(string template, string asin, string dirFullPath, string extension, string expected)
=> Templates.getFileNamingTemplate(GetLibraryBook(asin), template, dirFullPath, extension) => Templates.getFileNamingTemplate(GetLibraryBook(asin), template, dirFullPath, extension)
.GetFilePath() .GetFilePath()
.PathWithoutPrefix
.Should().Be(expected); .Should().Be(expected);
[TestMethod] [TestMethod]
public void IfSeries_empty() public void IfSeries_empty()
=> Templates.getFileNamingTemplate(GetLibraryBook("asin", "Sherlock Holmes"), "foo<if series-><-if series>bar", @"C:\a\b", "ext") => Templates.getFileNamingTemplate(GetLibraryBook("asin", "Sherlock Holmes"), "foo<if series-><-if series>bar", @"C:\a\b", "ext")
.GetFilePath() .GetFilePath()
.PathWithoutPrefix
.Should().Be(@"C:\a\b\foobar.ext"); .Should().Be(@"C:\a\b\foobar.ext");
[TestMethod] [TestMethod]
public void IfSeries_no_series() public void IfSeries_no_series()
=> Templates.getFileNamingTemplate(GetLibraryBook("asin", ""), "foo<if series->-<series>-<id>-<-if series>bar", @"C:\a\b", "ext") => Templates.getFileNamingTemplate(GetLibraryBook("asin", ""), "foo<if series->-<series>-<id>-<-if series>bar", @"C:\a\b", "ext")
.GetFilePath() .GetFilePath()
.PathWithoutPrefix
.Should().Be(@"C:\a\b\foobar.ext"); .Should().Be(@"C:\a\b\foobar.ext");
[TestMethod] [TestMethod]
public void IfSeries_with_series() public void IfSeries_with_series()
=> Templates.getFileNamingTemplate(GetLibraryBook("asin", "Sherlock Holmes"), "foo<if series->-<series>-<id>-<-if series>bar", @"C:\a\b", "ext") => Templates.getFileNamingTemplate(GetLibraryBook("asin", "Sherlock Holmes"), "foo<if series->-<series>-<id>-<-if series>bar", @"C:\a\b", "ext")
.GetFilePath() .GetFilePath()
.PathWithoutPrefix
.Should().Be(@"C:\a\b\foo-Sherlock Holmes-asin-bar.ext"); .Should().Be(@"C:\a\b\foo-Sherlock Holmes-asin-bar.ext");
} }
} }