Files
SabreTools/SabreTools.DatFiles.Test/FormatsTests.cs

440 lines
11 KiB
C#
Raw Normal View History

2025-02-13 15:22:36 -05:00
using System;
using System.Linq;
2025-02-13 15:01:03 -05:00
using SabreTools.DatFiles.Formats;
using SabreTools.DatItems;
using Xunit;
namespace SabreTools.DatFiles.Test
{
/// <summary>
/// Contains tests for all specific DatFile formats
/// </summary>
public class FormatsTests
{
2025-02-13 15:22:36 -05:00
#region Testing Constants
/// <summary>
/// All defined item types
/// </summary>
private static readonly ItemType[] AllTypes = Enum.GetValues(typeof(ItemType)) as ItemType[] ?? [];
#endregion
2025-02-13 15:01:03 -05:00
#region ArchiveDotOrg
2025-02-13 15:22:36 -05:00
[Fact]
public void ArchiveDotOrg_SupportedTypes()
{
var datFile = new ArchiveDotOrg(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region AttractMode
// TODO: Write AttractMode format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void AttractMode_SupportedTypes()
{
var datFile = new AttractMode(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region ClrMamePro
// TODO: Write ClrMamePro format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void ClrMamePro_SupportedTypes()
{
var datFile = new ClrMamePro(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Archive,
ItemType.BiosSet,
ItemType.Chip,
ItemType.DipSwitch,
ItemType.Disk,
ItemType.Display,
ItemType.Driver,
ItemType.Input,
ItemType.Media,
ItemType.Release,
ItemType.Rom,
ItemType.Sample,
ItemType.Sound,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region DosCenter
// TODO: Write DosCenter format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void DosCenter_SupportedTypes()
{
var datFile = new DosCenter(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
2025-02-13 15:22:36 -05:00
#region EverdriveSMDB
// TODO: Write EverdriveSMDB format tests
2025-02-13 15:01:03 -05:00
2025-02-13 15:22:36 -05:00
[Fact]
public void EverdriveSMDB_SupportedTypes()
{
var datFile = new EverdriveSMDB(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region Hashfile
// TODO: Write Hashfile format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void SfvFile_SupportedTypes()
{
var datFile = new SfvFile(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Md2File_SupportedTypes()
{
var datFile = new Md2File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Md4File_SupportedTypes()
{
var datFile = new Md4File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Md5File_SupportedTypes()
{
var datFile = new Md5File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Sha1File_SupportedTypes()
{
var datFile = new Sha1File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Sha256File_SupportedTypes()
{
var datFile = new Sha256File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Sha384File_SupportedTypes()
{
var datFile = new Sha384File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void Sha512File_SupportedTypes()
{
var datFile = new Sha512File(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void SpamSumFile_SupportedTypes()
{
var datFile = new SpamSumFile(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region Listrom
// TODO: Write Listrom format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void Listrom_SupportedTypes()
{
var datFile = new Listrom(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Rom,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region Listxml
// TODO: Write Listxml format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void Listxml_SupportedTypes()
{
var datFile = new Listxml(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Adjuster,
ItemType.BiosSet,
ItemType.Chip,
ItemType.Condition,
ItemType.Configuration,
ItemType.Device,
ItemType.DeviceRef,
ItemType.DipSwitch,
ItemType.Disk,
ItemType.Display,
ItemType.Driver,
ItemType.Feature,
ItemType.Input,
ItemType.Port,
ItemType.RamOption,
ItemType.Rom,
ItemType.Sample,
ItemType.Slot,
ItemType.SoftwareList,
ItemType.Sound,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region Logiqx
// TODO: Write Logiqx format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void Logiqx_SupportedTypes()
{
var datFile = new Logiqx(null, false);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Archive,
ItemType.BiosSet,
ItemType.Disk,
ItemType.Media,
ItemType.Release,
ItemType.Rom,
ItemType.Sample,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region Missfile
// TODO: Write Missfile format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void Missfile_SupportedTypes()
{
var datFile = new Missfile(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual(AllTypes));
}
2025-02-13 15:01:03 -05:00
#endregion
#region OfflineList
// TODO: Write OfflineList format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void OfflineList_SupportedTypes()
{
var datFile = new OfflineList(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region OpenMSX
// TODO: Write OpenMSX format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void OpenMSX_SupportedTypes()
{
var datFile = new OpenMSX(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region RomCenter
// TODO: Write RomCenter format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void RomCenter_SupportedTypes()
{
var datFile = new RomCenter(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([ItemType.Rom]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region SabreJSON
// TODO: Write SabreJSON format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void SabreJSON_SupportedTypes()
{
var datFile = new SabreJSON(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual(AllTypes));
}
2025-02-13 15:01:03 -05:00
#endregion
#region SabreXML
// TODO: Write SabreXML format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void SabreXML_SupportedTypes()
{
var datFile = new SabreXML(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual(AllTypes));
}
2025-02-13 15:01:03 -05:00
#endregion
#region SeparatedValue
// TODO: Write SeparatedValue format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void CommaSeparatedValue_SupportedTypes()
{
var datFile = new CommaSeparatedValue(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void SemicolonSeparatedValue_SupportedTypes()
{
var datFile = new SemicolonSeparatedValue(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
[Fact]
public void TabSeparatedValue_SupportedTypes()
{
var datFile = new TabSeparatedValue(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.Disk,
ItemType.Media,
ItemType.Rom,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
#region SoftwareList
// TODO: Write SoftwareList format tests
2025-02-13 15:22:36 -05:00
[Fact]
public void SoftwareList_SupportedTypes()
{
var datFile = new SoftwareList(null);
var actual = datFile.SupportedTypes;
Assert.True(actual.SequenceEqual([
ItemType.DipSwitch,
ItemType.Disk,
ItemType.Info,
ItemType.PartFeature,
ItemType.Rom,
ItemType.SharedFeat,
]));
}
2025-02-13 15:01:03 -05:00
#endregion
}
}