using System; using System.Collections.Generic; using BinaryObjectScanner.Interfaces; using SabreTools.Serialization.Wrappers; using Xunit; namespace BinaryObjectScanner.Test { public class FactoryTests { #region CreateDetectable private static readonly List _detectableTypes = [ // WrapperType.AACSMediaKeyBlock, // TODO: Create wrapper to reenable test // WrapperType.BDPlusSVM, // TODO: Create wrapper to reenable test // WrapperType.CIA, // WrapperType.Executable, // TODO: This needs to be split internally WrapperType.LDSCRYPT, // WrapperType.N3DS, // WrapperType.Nitro, // WrapperType.PlayJAudioFile, // TODO: Create wrapper to reenable test WrapperType.RealArcadeInstaller, WrapperType.RealArcadeMezzanine, WrapperType.SFFS, WrapperType.Textfile, ]; [Theory] [MemberData(nameof(GenerateIDetectableTestData))] public void CreateDetectableTests(WrapperType type, bool expectNull) { IDetectable? actual = Factory.CreateDetectable(type); if (expectNull) Assert.Null(actual); else Assert.NotNull(actual); } public static List GenerateIDetectableTestData() { var testData = new List() { new object?[] { null, true } }; foreach (WrapperType type in Enum.GetValues(typeof(WrapperType))) { if (_detectableTypes.Contains(type)) testData.Add([type, false]); else testData.Add([type, true]); } return testData; } #endregion } }