From b42ff827d5a0529b29a4af868605e0430b3f23e5 Mon Sep 17 00:00:00 2001 From: Robert McRackan Date: Fri, 22 Oct 2021 13:09:05 -0400 Subject: [PATCH] GetStandardizedExtension unit tests --- FileLiberator/AudioFileStorageExt.cs | 8 ++++---- FileManager/FileUtility.cs | 2 +- _Tests/FileManager.Tests/FileUtilityTests.cs | 20 ++++++++++++++++++++ 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/FileLiberator/AudioFileStorageExt.cs b/FileLiberator/AudioFileStorageExt.cs index 54f91eab..e5f2043d 100644 --- a/FileLiberator/AudioFileStorageExt.cs +++ b/FileLiberator/AudioFileStorageExt.cs @@ -18,13 +18,13 @@ namespace FileLiberator public string MultipartFilename(string outputFileName, int partsPosition, int partsTotal, AAXClean.NewSplitCallback newSplitCallback) { var extension = Path.GetExtension(outputFileName); - var baseFileName = AudioFileStorageExt.GetValidFilename(AudibleFileStorage.DecryptInProgressDirectory, LibraryBook.Book.Title, extension, LibraryBook); + var baseFileName = GetValidFilename(AudibleFileStorage.DecryptInProgressDirectory, LibraryBook.Book.Title, extension, LibraryBook); - var template = Path.ChangeExtension(baseFileName, null) + " - - " + extension; + var template = Path.ChangeExtension(baseFileName, null) + " - <chapter number> - <chapter title>" + extension; var fileTemplate = new FileTemplate(template) { IllegalCharacterReplacements = " " }; - fileTemplate.AddParameterReplacement("chapter", FileUtility.GetSequenceFormatted(partsPosition, partsTotal)); - fileTemplate.AddParameterReplacement("title", newSplitCallback?.Chapter?.Title ?? ""); + fileTemplate.AddParameterReplacement("chapter number", FileUtility.GetSequenceFormatted(partsPosition, partsTotal)); + fileTemplate.AddParameterReplacement("chapter title", newSplitCallback?.Chapter?.Title ?? ""); return fileTemplate.GetFilePath(); } diff --git a/FileManager/FileUtility.cs b/FileManager/FileUtility.cs index 163d29f6..d2d88e12 100644 --- a/FileManager/FileUtility.cs +++ b/FileManager/FileUtility.cs @@ -18,7 +18,7 @@ namespace FileManager public static string GetStandardizedExtension(string extension) => string.IsNullOrWhiteSpace(extension) ? (extension ?? "")?.Trim() - : '.' + extension.Trim('.'); + : '.' + extension.Trim().Trim('.'); /// <summary> /// Return position with correct number of leading zeros. diff --git a/_Tests/FileManager.Tests/FileUtilityTests.cs b/_Tests/FileManager.Tests/FileUtilityTests.cs index 1eabebc3..51e4e9fc 100644 --- a/_Tests/FileManager.Tests/FileUtilityTests.cs +++ b/_Tests/FileManager.Tests/FileUtilityTests.cs @@ -90,4 +90,24 @@ namespace FileUtilityTests public void Tests(int partsPosition, int partsTotal, string expected) => FileUtility.GetSequenceFormatted(partsPosition, partsTotal).Should().Be(expected); } + + [TestClass] + public class GetStandardizedExtension + { + [TestMethod] + public void is_null() => Tests(null, ""); + + [TestMethod] + public void is_empty() => Tests("", ""); + + [TestMethod] + public void is_whitespace() => Tests(" ", ""); + + [TestMethod] + [DataRow("txt", ".txt")] + [DataRow(".txt", ".txt")] + [DataRow(" .txt ", ".txt")] + public void Tests(string input, string expected) + => FileUtility.GetStandardizedExtension(input).Should().Be(expected); + } }