Skip to content

Commit

Permalink
Remove unnecessary re-splitting of path (fixes #772)
Browse files Browse the repository at this point in the history
  • Loading branch information
mnadareski committed Dec 8, 2024
1 parent 2d547bd commit 1e72945
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 40 deletions.
1 change: 1 addition & 0 deletions CHANGELIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/AaruTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/CleanRipTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,18 +93,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/DiscImageCreatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -162,18 +162,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/PS3CFWTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/RedumperTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,18 +105,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/UmdImageCreatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
10 changes: 6 additions & 4 deletions MPF.Processors.Test/XboxBackupCreatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,20 @@ public void GenerateArtifacts_Valid_Filled()
[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);
}

Expand Down
21 changes: 9 additions & 12 deletions MPF.Processors/BaseProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,13 +187,8 @@ public List<string> FoundAllFiles(string? outputDirectory, string outputFilename
// 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>
Expand Down Expand Up @@ -328,13 +323,15 @@ private static bool AddToArchive(ZipArchive archive, string file, string? output
/// <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);
Expand Down Expand Up @@ -371,7 +368,7 @@ internal List<string> CheckRequiredFiles(string basePath)
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
Expand Down

0 comments on commit 1e72945

Please sign in to comment.