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;
|
2025-02-14 14:27:43 -05:00
|
|
|
using SabreTools.DatItems.Formats;
|
2025-02-13 15:01:03 -05:00
|
|
|
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;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region AttractMode
|
|
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void AttractMode_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new AttractMode(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void AttractMode_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new AttractMode(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region ClrMamePro
|
|
|
|
|
|
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-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Release()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Release();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Release.NameKey,
|
|
|
|
|
Models.Metadata.Release.RegionKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_BiosSet()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new BiosSet();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:22:36 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.BiosSet.NameKey,
|
|
|
|
|
Models.Metadata.BiosSet.DescriptionKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Rom()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Disk()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Sample()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Sample();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Sample.NameKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Archive()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Archive();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Archive.NameKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Chip()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Chip();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Chip.ChipTypeKey,
|
|
|
|
|
Models.Metadata.Chip.NameKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Display()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Display();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Display.DisplayTypeKey,
|
|
|
|
|
Models.Metadata.Display.RotateKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Sound()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Sound();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Sound.ChannelsKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Input()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Input();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Input.PlayersKey,
|
|
|
|
|
Models.Metadata.Input.ControlKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_DipSwitch()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new DipSwitch();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.DipSwitch.NameKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void ClrMamePro_GetMissingRequiredFields_Driver()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Driver();
|
|
|
|
|
var datFile = new ClrMamePro(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Driver.StatusKey,
|
|
|
|
|
Models.Metadata.Driver.EmulationKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
#region DosCenter
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void DosCenter_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new DosCenter(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void DosCenter_GetMissingRequiredFields_Rom()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new DosCenter(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
2025-02-13 15:22:36 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
2025-02-14 14:27:43 -05:00
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
2025-02-13 15:22:36 -05:00
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
#region EverdriveSMDB
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void EverdriveSMDB_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new EverdriveSMDB(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void EverdriveSMDB_GetMissingRequiredFields_Rom()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new EverdriveSMDB(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA256Key,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
Models.Metadata.Rom.MD5Key,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
#region Hashfile
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void SfvFile_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new SfvFile(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void SfvFile_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new SfvFile(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void Md2File_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new Md2File(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void Md2File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Md2File(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.MD2Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void Md4File_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new Md4File(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void Md4File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Md4File(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.MD4Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
2025-02-14 14:27:43 -05:00
|
|
|
public void Md5File_SupportedTypes()
|
2025-02-13 15:22:36 -05:00
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new Md5File(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
2025-02-14 14:27:43 -05:00
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Disk,
|
|
|
|
|
ItemType.Media,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
2025-02-13 15:22:36 -05:00
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void Md5File_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Md5File(null);
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.MD5Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Md5File_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new Md5File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.MD5Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Md5File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Md5File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.MD5Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[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 Sha1File_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Sha1File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha1File_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new Sha1File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha1File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Sha1File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha256File_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Sha256File(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Media,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha256File_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new Sha256File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA256Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha256File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Sha256File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA256Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha384File_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Sha384File(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha384File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Sha384File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA384Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha512File_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Sha512File(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Sha512File_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Sha512File(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA512Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SpamSumFile_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new SpamSumFile(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Media,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SpamSumFile_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new SpamSumFile(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SpamSumKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SpamSumFile_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new SpamSumFile(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SpamSumKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Listrom
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listrom_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Listrom(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Disk,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listrom_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Listrom(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listrom_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Listrom(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Listxml
|
|
|
|
|
|
|
|
|
|
[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,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_BiosSet()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new BiosSet();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.BiosSet.NameKey,
|
|
|
|
|
Models.Metadata.BiosSet.DescriptionKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_DeviceRef()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DeviceRef();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.DeviceRef.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Sample()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Sample();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Sample.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Chip()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Chip();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Chip.NameKey,
|
|
|
|
|
Models.Metadata.Chip.ChipTypeKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Display()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Display();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Display.DisplayTypeKey,
|
|
|
|
|
Models.Metadata.Display.RefreshKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Sound()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Sound();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Sound.ChannelsKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Input()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Input();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Input.PlayersKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_DipSwitch()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DipSwitch();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.DipSwitch.NameKey,
|
|
|
|
|
Models.Metadata.DipSwitch.TagKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Configuration()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Configuration();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Configuration.NameKey,
|
|
|
|
|
Models.Metadata.Configuration.TagKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Port()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Port();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Port.TagKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Adjuster()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Adjuster();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Adjuster.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Driver()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Driver();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Driver.StatusKey,
|
|
|
|
|
Models.Metadata.Driver.EmulationKey,
|
|
|
|
|
Models.Metadata.Driver.CocktailKey,
|
|
|
|
|
Models.Metadata.Driver.SaveStateKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Feature()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Feature();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Feature.FeatureTypeKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Device()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Device();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Device.DeviceTypeKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_Slot()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Slot();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Slot.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_SoftwareList()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DatItems.Formats.SoftwareList();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.SoftwareList.TagKey,
|
|
|
|
|
Models.Metadata.SoftwareList.NameKey,
|
|
|
|
|
Models.Metadata.SoftwareList.StatusKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Listxml_GetMissingRequiredFields_RamOption()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new RamOption();
|
|
|
|
|
var datFile = new Listxml(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.RamOption.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Logiqx
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Archive,
|
|
|
|
|
ItemType.BiosSet,
|
|
|
|
|
ItemType.DeviceRef,
|
|
|
|
|
ItemType.Disk,
|
|
|
|
|
ItemType.Driver,
|
|
|
|
|
ItemType.Media,
|
|
|
|
|
ItemType.Release,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
ItemType.Sample,
|
|
|
|
|
ItemType.SoftwareList,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Release()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Release();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Release.NameKey,
|
|
|
|
|
Models.Metadata.Release.RegionKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_BiosSet()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new BiosSet();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.BiosSet.NameKey,
|
|
|
|
|
Models.Metadata.BiosSet.DescriptionKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_DeviceRef()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DeviceRef();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.DeviceRef.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Sample()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Sample();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Sample.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Archive()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Archive();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Archive.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_Driver()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Driver();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Driver.StatusKey,
|
|
|
|
|
Models.Metadata.Driver.EmulationKey,
|
|
|
|
|
Models.Metadata.Driver.CocktailKey,
|
|
|
|
|
Models.Metadata.Driver.SaveStateKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Logiqx_GetMissingRequiredFields_SoftwareList()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DatItems.Formats.SoftwareList();
|
|
|
|
|
var datFile = new Logiqx(null, false);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.SoftwareList.TagKey,
|
|
|
|
|
Models.Metadata.SoftwareList.NameKey,
|
|
|
|
|
Models.Metadata.SoftwareList.StatusKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region Missfile
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Missfile_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Missfile(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual(AllTypes));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:49:48 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void Missfile_ParseFile_Throws()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new Missfile(null);
|
|
|
|
|
Assert.Throws<NotImplementedException>(() => datFile.ParseFile("path", 0, true));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region OfflineList
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void OfflineList_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new OfflineList(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void OfflineList_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new OfflineList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region OpenMSX
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void OpenMSX_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new OpenMSX(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void OpenMSX_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new OpenMSX(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region RomCenter
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void RomCenter_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new RomCenter(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void RomCenter_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new RomCenter(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.CRCKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region SabreJSON
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SabreJSON_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new SabreJSON(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual(AllTypes));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
2025-02-13 15:01:03 -05:00
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
#region SabreXML
|
2025-02-13 15:01:03 -05:00
|
|
|
|
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
|
|
|
|
|
|
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,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void CommaSeparatedValue_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new CommaSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void CommaSeparatedValue_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new CommaSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void CommaSeparatedValue_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new CommaSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void SemicolonSeparatedValue_SupportedTypes()
|
|
|
|
|
{
|
|
|
|
|
var datFile = new SemicolonSeparatedValue(null);
|
|
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.Disk,
|
|
|
|
|
ItemType.Media,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void SemicolonSeparatedValue_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new SemicolonSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SemicolonSeparatedValue_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new SemicolonSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SemicolonSeparatedValue_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new SemicolonSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[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-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void TabSeparatedValue_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new TabSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
Models.Metadata.Disk.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TabSeparatedValue_GetMissingRequiredFields_Media()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Media();
|
|
|
|
|
var datFile = new TabSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Media.NameKey,
|
|
|
|
|
Models.Metadata.Media.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TabSeparatedValue_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new TabSeparatedValue(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Rom.NameKey,
|
|
|
|
|
Models.Metadata.Rom.SizeKey,
|
|
|
|
|
Models.Metadata.Rom.SHA1Key,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region SoftwareList
|
|
|
|
|
|
2025-02-13 15:22:36 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_SupportedTypes()
|
|
|
|
|
{
|
2025-02-14 14:27:43 -05:00
|
|
|
var datFile = new Formats.SoftwareList(null);
|
2025-02-13 15:22:36 -05:00
|
|
|
var actual = datFile.SupportedTypes;
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
ItemType.DipSwitch,
|
|
|
|
|
ItemType.Disk,
|
|
|
|
|
ItemType.Info,
|
|
|
|
|
ItemType.PartFeature,
|
|
|
|
|
ItemType.Rom,
|
|
|
|
|
ItemType.SharedFeat,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-14 14:27:43 -05:00
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_GetMissingRequiredFields_DipSwitch()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new DipSwitch();
|
|
|
|
|
var datFile = new Formats.SoftwareList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Part.NameKey,
|
|
|
|
|
Models.Metadata.Part.InterfaceKey,
|
|
|
|
|
Models.Metadata.DipSwitch.NameKey,
|
|
|
|
|
Models.Metadata.DipSwitch.TagKey,
|
|
|
|
|
Models.Metadata.DipSwitch.MaskKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_GetMissingRequiredFields_Disk()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Disk();
|
|
|
|
|
var datFile = new Formats.SoftwareList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Part.NameKey,
|
|
|
|
|
Models.Metadata.Part.InterfaceKey,
|
|
|
|
|
Models.Metadata.DiskArea.NameKey,
|
|
|
|
|
Models.Metadata.Disk.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_GetMissingRequiredFields_Info()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Info();
|
|
|
|
|
var datFile = new Formats.SoftwareList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Info.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_GetMissingRequiredFields_Rom()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new Rom();
|
|
|
|
|
var datFile = new Formats.SoftwareList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.Part.NameKey,
|
|
|
|
|
Models.Metadata.Part.InterfaceKey,
|
|
|
|
|
Models.Metadata.DataArea.NameKey,
|
|
|
|
|
Models.Metadata.DataArea.SizeKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SoftwareList_GetMissingRequiredFields_SharedFeat()
|
|
|
|
|
{
|
|
|
|
|
var datItem = new SharedFeat();
|
|
|
|
|
var datFile = new Formats.SoftwareList(null);
|
|
|
|
|
|
|
|
|
|
var actual = datFile.GetMissingRequiredFields(datItem);
|
|
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
|
Assert.True(actual.SequenceEqual([
|
|
|
|
|
Models.Metadata.SharedFeat.NameKey,
|
|
|
|
|
]));
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-13 15:01:03 -05:00
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|