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
|
|
|
|
|
}
|
|
|
|
|
}
|