diff --git a/MPF.Test/RedumpLib/ExtensionsTests.cs b/MPF.Test/RedumpLib/ExtensionsTests.cs index 829d8779..a83653e2 100644 --- a/MPF.Test/RedumpLib/ExtensionsTests.cs +++ b/MPF.Test/RedumpLib/ExtensionsTests.cs @@ -6,6 +6,7 @@ using Xunit; namespace MPF.Test.RedumpLib { + // TODO: Add tests for string-to-enum conversion public class ExtensionsTests { #region Cross-Enumeration @@ -51,7 +52,7 @@ namespace MPF.Test.RedumpLib /// /// RedumpSystem value to check [Theory] - [MemberData(nameof(GenerateRedumpSystemTestData))] + [MemberData(nameof(GenerateRedumpSystemMappingTestData))] public void MediaTypesTest(RedumpSystem? redumpSystem) { var actual = redumpSystem.MediaTypes(); @@ -64,7 +65,7 @@ namespace MPF.Test.RedumpLib /// MediaType value to check /// True to expect a null mapping, false otherwise [Theory] - [MemberData(nameof(GenerateMediaTypeTestData))] + [MemberData(nameof(GenerateMediaTypeMappingTestData))] public void ToDiscTypeTest(MediaType? mediaType, bool expectNull) { DiscType? actual = mediaType.ToDiscType(); @@ -77,7 +78,7 @@ namespace MPF.Test.RedumpLib /// DiscType value to check /// True to expect a null mapping, false otherwise [Theory] - [MemberData(nameof(GenerateDiscTypeTestData))] + [MemberData(nameof(GenerateDiscTypeMappingTestData))] public void ToMediaTypeTest(DiscType? discType, bool expectNull) { MediaType? actual = discType.ToMediaType(); @@ -88,7 +89,7 @@ namespace MPF.Test.RedumpLib /// Generate a test set of DiscType values /// /// MemberData-compatible list of DiscType values - public static List GenerateDiscTypeTestData() + public static List GenerateDiscTypeMappingTestData() { var testData = new List() { new object[] { null, true } }; foreach (DiscType? discType in Enum.GetValues(typeof(DiscType))) @@ -106,7 +107,7 @@ namespace MPF.Test.RedumpLib /// Generate a test set of RedumpSystem values /// /// MemberData-compatible list of RedumpSystem values - public static List GenerateRedumpSystemTestData() + public static List GenerateRedumpSystemMappingTestData() { var testData = new List() { new object[] { null } }; foreach (RedumpSystem? redumpSystem in Enum.GetValues(typeof(RedumpSystem))) @@ -121,7 +122,7 @@ namespace MPF.Test.RedumpLib /// Generate a test set of mappable media types /// /// MemberData-compatible list of MediaTypes - public static List GenerateMediaTypeTestData() + public static List GenerateMediaTypeMappingTestData() { var testData = new List() { new object[] { null, true } }; @@ -137,5 +138,274 @@ namespace MPF.Test.RedumpLib } #endregion + + #region Disc Category + + /// + /// Check that every DiscCategory has a long name provided + /// + /// DiscCategory value to check + [Theory] + [MemberData(nameof(GenerateDiscCategoryTestData))] + public void DiscCategoryLongNameTest(DiscCategory? discCategory, bool expectNull) + { + string actual = discCategory.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of DiscCategory values + /// + /// MemberData-compatible list of DiscCategory values + public static List GenerateDiscCategoryTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (DiscCategory? discCategory in Enum.GetValues(typeof(DiscCategory))) + { + testData.Add(new object[] { discCategory, false }); + } + + return testData; + } + + #endregion + + #region Disc Type + + /// + /// Check that every DiscType has a long name provided + /// + /// DiscType value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateDiscTypeTestData))] + public void DiscTypeLongNameTest(DiscType? discType, bool expectNull) + { + string actual = discType.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of DiscType values + /// + /// MemberData-compatible list of DiscType values + public static List GenerateDiscTypeTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (DiscType? discType in Enum.GetValues(typeof(DiscType))) + { + if (discType == DiscType.NONE) + testData.Add(new object[] { discType, true }); + else + testData.Add(new object[] { discType, false }); + } + + return testData; + } + + #endregion + + #region Language + + /// + /// Check that every Language has a long name provided + /// + /// Language value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateLanguageTestData))] + public void LanguageLongNameTest(Language? language, bool expectNull) + { + string actual = language.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Check that every Language has a short name provided + /// + /// Language value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateLanguageTestData))] + public void LanguageShortNameTest(Language? language, bool expectNull) + { + string actual = language.ShortName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of Language values + /// + /// MemberData-compatible list of Language values + public static List GenerateLanguageTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (Language? language in Enum.GetValues(typeof(Language))) + { + testData.Add(new object[] { language, false }); + } + + return testData; + } + + #endregion + + #region Language Selection + + /// + /// Check that every LanguageSelection has a long name provided + /// + /// LanguageSelection value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateLanguageSelectionTestData))] + public void LanguageSelectionLongNameTest(LanguageSelection? languageSelection, bool expectNull) + { + string actual = languageSelection.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of LanguageSelection values + /// + /// MemberData-compatible list of LanguageSelection values + public static List GenerateLanguageSelectionTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (LanguageSelection? languageSelection in Enum.GetValues(typeof(LanguageSelection))) + { + testData.Add(new object[] { languageSelection, false }); + } + + return testData; + } + + #endregion + + #region Media Type + + /// + /// Check that every MediaType has a long name provided + /// + /// MediaType value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateMediaTypeTestData))] + public void MediaTypeLongNameTest(MediaType? mediaType, bool expectNull) + { + string actual = mediaType.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Check that every MediaType has a short name provided + /// + /// MediaType value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateMediaTypeTestData))] + public void MediaTypeShortNameTest(MediaType? mediaType, bool expectNull) + { + string actual = mediaType.ShortName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of MediaType values + /// + /// MemberData-compatible list of MediaType values + public static List GenerateMediaTypeTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (MediaType? mediaType in Enum.GetValues(typeof(MediaType))) + { + testData.Add(new object[] { mediaType, false }); + } + + return testData; + } + + #endregion + + #region Region + + /// + /// Check that every Region has a long name provided + /// + /// Region value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateRegionTestData))] + public void RegionLongNameTest(Region? region, bool expectNull) + { + string actual = region.LongName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Check that every Region has a short name provided + /// + /// Region value to check + /// True to expect a null value, false otherwise + [Theory] + [MemberData(nameof(GenerateRegionTestData))] + public void RegionShortNameTest(Region? region, bool expectNull) + { + string actual = region.ShortName(); + + if (expectNull) + Assert.Null(actual); + else + Assert.NotNull(actual); + } + + /// + /// Generate a test set of Region values + /// + /// MemberData-compatible list of Region values + public static List GenerateRegionTestData() + { + var testData = new List() { new object[] { null, true } }; + foreach (Region? region in Enum.GetValues(typeof(Region))) + { + testData.Add(new object[] { region, false }); + } + + return testData; + } + + #endregion } }