mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-07-08 18:06:34 +00:00
Add Factory tests
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||
<PackageReference Include="SabreTools.Serialization" Version="1.8.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
122
BinaryObjectScanner.Test/FactoryTests.cs
Normal file
122
BinaryObjectScanner.Test/FactoryTests.cs
Normal file
@@ -0,0 +1,122 @@
|
||||
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<WrapperType> _detectableTypes =
|
||||
[
|
||||
WrapperType.AACSMediaKeyBlock,
|
||||
WrapperType.BDPlusSVM,
|
||||
//WrapperType.CIA,
|
||||
WrapperType.Executable,
|
||||
WrapperType.LDSCRYPT,
|
||||
//WrapperType.N3DS,
|
||||
//WrapperType.Nitro,
|
||||
WrapperType.PlayJAudioFile,
|
||||
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<object?[]> GenerateIDetectableTestData()
|
||||
{
|
||||
var testData = new List<object?[]>() { 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
|
||||
|
||||
#region CreateExtractable
|
||||
|
||||
private static readonly List<WrapperType> _extractableTypes =
|
||||
[
|
||||
WrapperType.BFPK,
|
||||
WrapperType.BSP,
|
||||
WrapperType.BZip2,
|
||||
WrapperType.CFB,
|
||||
//WrapperType.CIA,
|
||||
//WrapperType.Executable,
|
||||
WrapperType.GCF,
|
||||
WrapperType.GZIP,
|
||||
WrapperType.InstallShieldArchiveV3,
|
||||
WrapperType.InstallShieldCAB,
|
||||
WrapperType.MicrosoftCAB,
|
||||
WrapperType.MicrosoftLZ,
|
||||
WrapperType.MoPaQ,
|
||||
//WrapperType.N3DS,
|
||||
//WrapperType.NCF,
|
||||
//WrapperType.Nitro,
|
||||
WrapperType.PAK,
|
||||
WrapperType.PFF,
|
||||
WrapperType.PKZIP,
|
||||
//WrapperType.PlayJAudioFile,
|
||||
//WrapperType.Quantum,
|
||||
WrapperType.RAR,
|
||||
WrapperType.SevenZip,
|
||||
WrapperType.SFFS,
|
||||
WrapperType.SGA,
|
||||
WrapperType.TapeArchive,
|
||||
WrapperType.VBSP,
|
||||
WrapperType.VPK,
|
||||
WrapperType.WAD,
|
||||
WrapperType.XZ,
|
||||
WrapperType.XZP,
|
||||
];
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(GenerateIExtractableTestData))]
|
||||
public void CreateExtractableTests(WrapperType type, bool expectNull)
|
||||
{
|
||||
IExtractable? actual = Factory.CreateExtractable(type);
|
||||
|
||||
if (expectNull)
|
||||
Assert.Null(actual);
|
||||
else
|
||||
Assert.NotNull(actual);
|
||||
}
|
||||
|
||||
public static List<object?[]> GenerateIExtractableTestData()
|
||||
{
|
||||
var testData = new List<object?[]>();
|
||||
foreach (WrapperType type in Enum.GetValues(typeof(WrapperType)))
|
||||
{
|
||||
if (_extractableTypes.Contains(type))
|
||||
testData.Add([type, false]);
|
||||
else
|
||||
testData.Add([type, true]);
|
||||
}
|
||||
|
||||
return testData;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user