unit tests

This commit is contained in:
John Andrews
2024-08-25 15:14:04 +12:00
parent f239934937
commit 13e5119db4
5 changed files with 173 additions and 137 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ public class Renamer : Node
// remove empty [], (), {}
newFile = newFile.Replace("()", "").Replace("{}", "").Replace("[]", "");
// remove double space that may have been introduced by empty [], () removals
while (newFile.IndexOf(" ") >= 0)
while (newFile.IndexOf(" ", StringComparison.Ordinal) >= 0)
newFile = newFile.Replace(" ", " ");
newFile = Regex.Replace(newFile, @"\s(\.[\w\d]+)$", "$1");
newFile = newFile.Replace(" \\", "\\");
+58 -20
View File
@@ -15,22 +15,32 @@ public class MoveTests : TestBase
[TestMethod]
public void MoveTests_Variable_Filename()
{
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Name}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.s01e15-1080p.mkv", dest);
Assert.AreEqual($"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
public void MoveTests_Variable_FilenameExt()
{
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
// ensure we dont double up the extension after FF-154
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Name}{file.Extension}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.s01e15-1080p.mkv", dest);
Assert.AreEqual($"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
@@ -51,50 +61,67 @@ public class MoveTests : TestBase
[TestMethod]
public void MoveTests_Variable_Ext()
{
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
// ensure we dont double up the extension after FF-154
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Name}{ext}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.s01e15-1080p.mkv", dest);
Assert.AreEqual($"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
public void MoveTests_Variable_Original_Filename()
{
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Orig.FileName}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.s01e15-1080p.mkv", dest);
Assert.AreEqual($@"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
public void MoveTests_Variable_Original_FilenameExt()
{
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
// ensure we dont double up the extension after FF-154
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Orig.FileName}{file.Orig.Extension}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.s01e15-1080p.mkv", dest);
Assert.AreEqual($@"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
public void MoveTests_Variable_Original_NoExtension()
{
string fileName = Guid.NewGuid().ToString();
var tempFile = Path.Combine(Path.GetTempPath(),fileName+ ".mkv.mkv");
System.IO.File.WriteAllText(tempFile, "this is a temp file ");
var args = new NodeParameters(tempFile, Logger,
false, string.Empty, new LocalFileService());
args.InitFile(tempFile);
var args = new NodeParameters(@"/home/user/test/tv4a-starwarsrebels.s01e15-1080p.mkv", Logger, false, string.Empty, new LocalFileService());
// ensure we dont double up the extension after FF-154
string dest = MoveFile.GetDestinationPath(args, @"D:\test", "{file.Orig.FileNameNoExtension}");
Assert.AreEqual(@"D:/test/tv4a-starwarsrebels.mkv", dest);
Assert.AreEqual($@"D:/test/{fileName}.mkv", dest);
}
[TestMethod]
public void MoveTests_MoveFolder()
{
var args = new NodeParameters(@"\\tower\downloads\downloaded\tv\The.Walking.Dead.Dead.City.S01E04\some-file.mkv", Logger, false, string.Empty, new LocalFileService());
args.RelativeFile = @"The.Walking.Dead.Dead.City.S01E04\some-file.mkv";
@@ -110,11 +137,22 @@ public class MoveTests : TestBase
[TestMethod]
public void MoveTests_AdditionalFiles()
{
var args = new NodeParameters(@"/home/john/Videos/move-me/dir/basic.mkv", Logger, false, string.Empty, new LocalFileService());
var tempDir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
Directory.CreateDirectory(tempDir);
var tempDir2 = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
Directory.CreateDirectory(tempDir2);
var tempFilePrefix = Path.Combine(tempDir, Guid.NewGuid().ToString());
var tempFile = tempFilePrefix + ".mkv";
System.IO.File.WriteAllText(tempFile, "test file");
var tempFileSrt = tempFilePrefix + ".srt";
System.IO.File.WriteAllText(tempFileSrt, "srt file");
var args = new NodeParameters(tempFile, Logger, false, string.Empty, new LocalFileService());
var ele = new MoveFile();
ele.AdditionalFiles = new[] { "*.srt" };
ele.DestinationPath = "/home/john/Videos/converted";
ele.DestinationPath = tempDir2;
var result = ele.Execute(args);
Assert.AreEqual(1, result);
}
+114 -116
View File
@@ -1,160 +1,158 @@
#if(DEBUG)
using System.IO;
using FileFlows.BasicNodes.File;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace BasicNodes.Tests
namespace BasicNodes.Tests;
[TestClass]
public class RenamerTests : TestBase
{
using FileFlows.BasicNodes.File;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class RenamerTests
[TestMethod]
public void Renamer_Extension()
{
[TestMethod]
public void Renamer_Extension()
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 },
{ "viResolution", "1080P" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 },
{ "viResolution", "1080P" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}]{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}]{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters [1080P].mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Extension_DoubleDot()
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters [1080P].mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Extension_DoubleDot()
{
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 },
{ "viResolution", "1080P" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 },
{ "viResolution", "1080P" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}].{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}].{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters [1080P].mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters [1080P].mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Empty_SquareBrackets()
[TestMethod]
public void Renamer_Empty_SquareBrackets()
{
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}] {movie.Year}.{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}] {movie.Year}.{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters 1984.mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters 1984.mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Empty_RoundBrackets()
[TestMethod]
public void Renamer_Empty_RoundBrackets()
{
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Ghostbusters" },
{ "viResolution", "1080p" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Ghostbusters" },
{ "viResolution", "1080p" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} ({movie.Year}) {viResolution!}.{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} ({movie.Year}) {viResolution!}.{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Ghostbusters{Path.DirectorySeparatorChar}Ghostbusters 1080P.mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Empty_SquareBrackets_Extension()
string expectedShort = $@"c:\temp\Ghostbusters{Path.DirectorySeparatorChar}Ghostbusters 1080P.mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Empty_SquareBrackets_Extension()
{
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Ghostbusters" },
{ "movie.Year", 1984 }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}].{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title} [{viResolution}].{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters.mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
string expectedShort = $@"c:\temp\Ghostbusters (1984){Path.DirectorySeparatorChar}Ghostbusters.mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
[TestMethod]
public void Renamer_Colon()
[TestMethod]
public void Renamer_Colon()
{
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", Logger, false, string.Empty, new LocalFileService());
args.Variables = new Dictionary<string, object>
{
var logger = new TestLogger();
var args = new FileFlows.Plugin.NodeParameters(@"c:\test\testfile.mkv", logger, false, string.Empty, null);
args.Variables = new Dictionary<string, object>
{
{ "movie.Title", "Batman Unlimited: Mech vs Mutants" },
{ "movie.Year", 2016 }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
{ "movie.Title", "Batman Unlimited: Mech vs Mutants" },
{ "movie.Year", 2016 },
{ "ext", "mkv" }
};
args.SetWorkingFile($@"c:\temp\{Guid.NewGuid()}.mkv", dontDelete: true);
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title}.{ext}";
node.LogOnly = true;
Renamer node = new Renamer();
node.Pattern = @"{movie.Title} ({movie.Year})\{movie.Title}.{ext}";
node.LogOnly = true;
var result = node.Execute(args);
Assert.AreEqual(1, result);
var result = node.Execute(args);
Assert.AreEqual(1, result);
string expectedShort = $@"c:\temp\Batman Unlimited - Mech vs Mutants (2016){Path.DirectorySeparatorChar}Batman Unlimited - Mech vs Mutants.mkv";
Assert.IsTrue(logger.Contains($"Renaming file to: " + expectedShort));
}
string expectedShort = $@"c:\temp\Batman Unlimited - Mech vs Mutants (2016){Path.DirectorySeparatorChar}Batman Unlimited - Mech vs Mutants.mkv";
Assert.IsTrue(Logger.Contains($"Renaming file to: " + expectedShort));
}
}
#endif
Binary file not shown.
Binary file not shown.