Remove unnecessary re-splitting of path (fixes #772)

This commit is contained in:
Matt Nadareski
2024-12-07 22:08:26 -05:00
parent 2d547bd67f
commit 1e729459a6
9 changed files with 52 additions and 40 deletions

View File

@@ -64,6 +64,7 @@
- Add alternate config location
- Add safety check around empty config files
- Add launch config for CLI
- Remove unnecessary re-splitting of path
### 3.2.4 (2024-11-24)

View File

@@ -108,18 +108,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(7, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string baseFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -93,18 +93,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new CleanRip(RedumpSystem.NintendoGameCube, MediaType.DVD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(3, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "CleanRip", "DVD", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "CleanRip", "DVD");
string baseFilename = "test";
var processor = new CleanRip(RedumpSystem.NintendoGameCube, MediaType.DVD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -162,18 +162,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new DiscImageCreator(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(17, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "DiscImageCreator", "CDROM", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "DiscImageCreator", "CDROM");
string baseFilename = "test";
var processor = new DiscImageCreator(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -72,18 +72,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new PS3CFW(RedumpSystem.SonyPlayStation3, MediaType.BluRay);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(3, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "PS3CFW", "BluRay", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "PS3CFW", "BluRay");
string baseFilename = "test";
var processor = new PS3CFW(RedumpSystem.SonyPlayStation3, MediaType.BluRay);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -105,18 +105,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(8, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM");
string baseFilename = "test";
var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -72,18 +72,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new UmdImageCreator(RedumpSystem.SonyPlayStationPortable, MediaType.UMD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(5, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "UmdImageCreator", "UMD", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "UmdImageCreator", "UMD");
string baseFilename = "test";
var processor = new UmdImageCreator(RedumpSystem.SonyPlayStationPortable, MediaType.UMD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -72,18 +72,20 @@ namespace MPF.Processors.Test
[Fact]
public void CheckRequiredFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? baseDirectory = null;
string baseFilename = string.Empty;
var processor = new XboxBackupCreator(RedumpSystem.MicrosoftXbox, MediaType.DVD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(5, actual.Count);
}
[Fact]
public void CheckRequiredFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "XboxBackupCreator", "DVD", "test");
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "XboxBackupCreator", "DVD");
string baseFilename = "test";
var processor = new XboxBackupCreator(RedumpSystem.MicrosoftXbox, MediaType.DVD);
var actual = processor.CheckRequiredFiles(basePath);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
}

View File

@@ -187,13 +187,8 @@ namespace MPF.Processors
// Sanitize the output filename to strip off any potential extension
outputFilename = Path.GetFileNameWithoutExtension(outputFilename);
// Then get the base path for all checking
string basePath = outputFilename;
if (!string.IsNullOrEmpty(outputDirectory))
basePath = Path.Combine(outputDirectory, outputFilename);
// Finally, let the parameters say if all files exist
return CheckRequiredFiles(basePath);
return CheckRequiredFiles(outputDirectory, outputFilename);
}
/// <summary>
@@ -328,13 +323,15 @@ namespace MPF.Processors
/// <summary>
/// Validate if all required output files exist
/// </summary>
/// <param name="basePath">Base filename and path to use for checking</param>
/// <param name="baseDirectory">Base directory to check</param>
/// <param name="baseFilename">Base filename template to use</param>
/// <returns>A list representing missing files, empty if none</returns>
internal List<string> CheckRequiredFiles(string basePath)
internal List<string> CheckRequiredFiles(string? baseDirectory, string baseFilename)
{
// Split the base path for matching
string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty;
string baseFilename = Path.GetFileNameWithoutExtension(basePath);
// Assemble a base path
string basePath = baseFilename;
if (!string.IsNullOrEmpty(baseDirectory))
basePath = Path.Combine(baseDirectory, basePath);
// Get the list of output files
var outputFiles = GetOutputFiles(baseDirectory, baseFilename);
@@ -371,7 +368,7 @@ namespace MPF.Processors
continue;
// Use the built-in existence function
if (outputFile.Exists(baseDirectory))
if (outputFile.Exists(baseDirectory ?? string.Empty))
continue;
// If the log archive doesn't exist