Files
MPF/MPF.Processors.Test/BaseProcessorTests.cs
2024-12-03 14:04:59 -05:00

205 lines
6.6 KiB
C#

using System;
using System.IO;
using Xunit;
namespace MPF.Processors.Test
{
public class BaseProcessorTests
{
#region GetGeneratedFilenames
[Fact]
public void GetGeneratedFilenames_NullSuffix_Standard()
{
string? filenameSuffix = null;
var actual = BaseProcessor.GetGeneratedFilenames(filenameSuffix);
Assert.Equal(4, actual.Count);
Assert.Equal("!protectionInfo.txt", actual[0]);
Assert.Equal("!submissionInfo.json", actual[1]);
Assert.Equal("!submissionInfo.json.gz", actual[2]);
Assert.Equal("!submissionInfo.txt", actual[3]);
}
[Fact]
public void GetGeneratedFilenames_EmptySuffix_Standard()
{
string? filenameSuffix = string.Empty;
var actual = BaseProcessor.GetGeneratedFilenames(filenameSuffix);
Assert.Equal(4, actual.Count);
Assert.Equal("!protectionInfo.txt", actual[0]);
Assert.Equal("!submissionInfo.json", actual[1]);
Assert.Equal("!submissionInfo.json.gz", actual[2]);
Assert.Equal("!submissionInfo.txt", actual[3]);
}
[Fact]
public void GetGeneratedFilenames_ValidSuffix_Modified()
{
string? filenameSuffix = "suffix";
var actual = BaseProcessor.GetGeneratedFilenames(filenameSuffix);
Assert.Equal(4, actual.Count);
Assert.Equal("!protectionInfo_suffix.txt", actual[0]);
Assert.Equal("!submissionInfo_suffix.json", actual[1]);
Assert.Equal("!submissionInfo_suffix.json.gz", actual[2]);
Assert.Equal("!submissionInfo_suffix.txt", actual[3]);
}
#endregion
#region GetGeneratedFilePaths
[Fact]
public void GetGeneratedFilePaths_NullBaseDirectory_Empty()
{
string? baseDirectory = null;
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
Assert.Empty(actual);
}
[Fact]
public void GetGeneratedFilePaths_EmptyBaseDirectory_Empty()
{
string? baseDirectory = string.Empty;
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
Assert.Empty(actual);
}
[Fact]
public void GetGeneratedFilePaths_InvalidBaseDirectory_Empty()
{
string? baseDirectory = "INVALID";
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
Assert.Empty(actual);
}
[Fact]
public void GetGeneratedFilePaths_ValidBaseDirectory_Empty()
{
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor");
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
Assert.Equal(4, actual.Count);
}
#endregion
#region GetPIC
[Fact]
public void GetPIC_InvalidPath_Null()
{
string picPath = "INVALID";
int trimLength = -1;
string? actual = BaseProcessor.GetPIC(picPath, trimLength);
Assert.Null(actual);
}
[Fact]
public void GetPIC_ValidPathZeroTrim_Empty()
{
string picPath = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor", "pic.bin");
int trimLength = 0;
string? actual = BaseProcessor.GetPIC(picPath, trimLength);
Assert.NotNull(actual);
Assert.Empty(actual);
}
[Fact]
public void GetPIC_ValidPathDefaultTrim_Formatted()
{
string expected = "000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n000102030405060708090A0B0C0D0E0F\n";
string picPath = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor", "pic.bin");
int trimLength = -1;
string? actual = BaseProcessor.GetPIC(picPath, trimLength);
Assert.NotNull(actual);
Assert.Equal(expected, actual);
}
[Fact]
public void GetPIC_ValidPathCustomTrim_Formatted()
{
string expected = "000102030405060708090A0B0C0D0E0F\n";
string picPath = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor", "pic.bin");
int trimLength = 32;
string? actual = BaseProcessor.GetPIC(picPath, trimLength);
Assert.NotNull(actual);
Assert.Equal(expected, actual);
}
#endregion
#region GetPVD
// TODO: Create fake, 00-filled ISO for tests and implement
#endregion
#region SplitString
[Fact]
public void SplitString_NullString_Empty()
{
string? str = null;
int count = 0;
bool trim = false;
string actual = BaseProcessor.SplitString(str, count, trim);
Assert.Empty(actual);
}
[Fact]
public void SplitString_EmptyString_Empty()
{
string? str = string.Empty;
int count = 0;
bool trim = false;
string actual = BaseProcessor.SplitString(str, count, trim);
Assert.Empty(actual);
}
[Fact]
public void SplitString_ValidStringInvalidCount_Original()
{
string expected = "VALID\n";
string? str = "VALID";
int count = 0;
bool trim = false;
string actual = BaseProcessor.SplitString(str, count, trim);
Assert.Equal(expected, actual);
}
[Fact]
public void SplitString_ValidStringLessThanCount_Original()
{
string expected = "VALID\n";
string? str = "VALID";
int count = 10;
bool trim = false;
string actual = BaseProcessor.SplitString(str, count, trim);
Assert.Equal(expected, actual);
}
[Fact]
public void SplitString_ValidStringGreaterThanCount_Split()
{
string expected = "VA\nLI\nD\n";
string? str = "VALID";
int count = 2;
bool trim = false;
string actual = BaseProcessor.SplitString(str, count, trim);
Assert.Equal(expected, actual);
}
#endregion
}
}