diff --git a/CHANGELIST.md b/CHANGELIST.md
index f187393b..a1eb0d74 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -32,6 +32,7 @@
- Update to DIC 20211101
- Add protection sanitization for StarForce
- Trim filenames for DVD protection from DIC
+- Fill out internal tests around Redump library
### 2.1 (2021-07-22)
- Enum, no more
diff --git a/MPF.Test/RedumpLib/ExtensionsTests.cs b/MPF.Test/RedumpLib/ExtensionsTests.cs
index a83653e2..e6122b54 100644
--- a/MPF.Test/RedumpLib/ExtensionsTests.cs
+++ b/MPF.Test/RedumpLib/ExtensionsTests.cs
@@ -360,7 +360,7 @@ namespace MPF.Test.RedumpLib
///
/// Check that every Region has a long name provided
///
- /// Region value to check
+ /// Region value to check
/// True to expect a null value, false otherwise
[Theory]
[MemberData(nameof(GenerateRegionTestData))]
@@ -407,5 +407,154 @@ namespace MPF.Test.RedumpLib
}
#endregion
+
+ #region System
+
+ ///
+ /// RedumpSystem values that are considered markers and not real systems
+ ///
+ private static readonly RedumpSystem?[] _markerSystemTypes = new RedumpSystem?[]
+ {
+ RedumpSystem.MarkerArcadeEnd,
+ RedumpSystem.MarkerComputerEnd,
+ RedumpSystem.MarkerDiscBasedConsoleEnd,
+ RedumpSystem.MarkerOtherEnd,
+ };
+
+ ///
+ /// Check that every RedumpSystem has a long name provided
+ ///
+ /// RedumpSystem value to check
+ /// True to expect a null value, false otherwise
+ [Theory]
+ [MemberData(nameof(GenerateRedumpSystemTestData))]
+ public void RedumpSystemLongNameTest(RedumpSystem? redumpSystem, bool expectNull)
+ {
+ string actual = redumpSystem.LongName();
+
+ if (expectNull)
+ Assert.Null(actual);
+ else
+ Assert.NotNull(actual);
+ }
+
+ // TODO: Re-enable the following test once non-Redump systems are accounted for
+
+ ///
+ /// Check that every RedumpSystem has a short name provided
+ ///
+ /// RedumpSystem value to check
+ /// True to expect a null value, false otherwise
+ //[Theory]
+ //[MemberData(nameof(GenerateRedumpSystemTestData))]
+ //public void RedumpSystemShortNameTest(RedumpSystem? redumpSystem, bool expectNull)
+ //{
+ // string actual = redumpSystem.ShortName();
+
+ // if (expectNull)
+ // Assert.Null(actual);
+ // else
+ // Assert.NotNull(actual);
+ //}
+
+ // TODO: Test the other attributes as well
+ // Most are bool checks so they're not as interesting to have unit tests around
+ // SystemCategory always returns something as well, so is it worth testing?
+
+ ///
+ /// Generate a test set of RedumpSystem values
+ ///
+ /// MemberData-compatible list of RedumpSystem values
+ public static List