Files
SabreTools.Serialization/SabreTools.Metadata.DatItems.Test/ExtensionsTests.cs
2026-04-01 11:24:33 -04:00

142 lines
8.2 KiB
C#

using Xunit;
namespace SabreTools.Metadata.DatItems.Test
{
public class ExtensionsTests
{
#region String to Enum
[Theory]
[InlineData(null, Data.Models.Metadata.ItemType.NULL)]
[InlineData("adjuster", Data.Models.Metadata.ItemType.Adjuster)]
[InlineData("analog", Data.Models.Metadata.ItemType.Analog)]
[InlineData("archive", Data.Models.Metadata.ItemType.Archive)]
[InlineData("biosset", Data.Models.Metadata.ItemType.BiosSet)]
[InlineData("blank", Data.Models.Metadata.ItemType.Blank)]
[InlineData("chip", Data.Models.Metadata.ItemType.Chip)]
[InlineData("condition", Data.Models.Metadata.ItemType.Condition)]
[InlineData("configuration", Data.Models.Metadata.ItemType.Configuration)]
[InlineData("conflocation", Data.Models.Metadata.ItemType.ConfLocation)]
[InlineData("confsetting", Data.Models.Metadata.ItemType.ConfSetting)]
[InlineData("control", Data.Models.Metadata.ItemType.Control)]
[InlineData("dataarea", Data.Models.Metadata.ItemType.DataArea)]
[InlineData("device", Data.Models.Metadata.ItemType.Device)]
[InlineData("deviceref", Data.Models.Metadata.ItemType.DeviceRef)]
[InlineData("device_ref", Data.Models.Metadata.ItemType.DeviceRef)]
[InlineData("diplocation", Data.Models.Metadata.ItemType.DipLocation)]
[InlineData("dipswitch", Data.Models.Metadata.ItemType.DipSwitch)]
[InlineData("dipvalue", Data.Models.Metadata.ItemType.DipValue)]
[InlineData("disk", Data.Models.Metadata.ItemType.Disk)]
[InlineData("diskarea", Data.Models.Metadata.ItemType.DiskArea)]
[InlineData("display", Data.Models.Metadata.ItemType.Display)]
[InlineData("driver", Data.Models.Metadata.ItemType.Driver)]
[InlineData("extension", Data.Models.Metadata.ItemType.Extension)]
[InlineData("feature", Data.Models.Metadata.ItemType.Feature)]
[InlineData("file", Data.Models.Metadata.ItemType.File)]
[InlineData("info", Data.Models.Metadata.ItemType.Info)]
[InlineData("input", Data.Models.Metadata.ItemType.Input)]
[InlineData("instance", Data.Models.Metadata.ItemType.Instance)]
[InlineData("media", Data.Models.Metadata.ItemType.Media)]
[InlineData("part", Data.Models.Metadata.ItemType.Part)]
[InlineData("partfeature", Data.Models.Metadata.ItemType.PartFeature)]
[InlineData("part_feature", Data.Models.Metadata.ItemType.PartFeature)]
[InlineData("port", Data.Models.Metadata.ItemType.Port)]
[InlineData("ramoption", Data.Models.Metadata.ItemType.RamOption)]
[InlineData("ram_option", Data.Models.Metadata.ItemType.RamOption)]
[InlineData("release", Data.Models.Metadata.ItemType.Release)]
[InlineData("releasedetails", Data.Models.Metadata.ItemType.ReleaseDetails)]
[InlineData("release_details", Data.Models.Metadata.ItemType.ReleaseDetails)]
[InlineData("rom", Data.Models.Metadata.ItemType.Rom)]
[InlineData("sample", Data.Models.Metadata.ItemType.Sample)]
[InlineData("serials", Data.Models.Metadata.ItemType.Serials)]
[InlineData("sharedfeat", Data.Models.Metadata.ItemType.SharedFeat)]
[InlineData("shared_feat", Data.Models.Metadata.ItemType.SharedFeat)]
[InlineData("sharedfeature", Data.Models.Metadata.ItemType.SharedFeat)]
[InlineData("shared_feature", Data.Models.Metadata.ItemType.SharedFeat)]
[InlineData("slot", Data.Models.Metadata.ItemType.Slot)]
[InlineData("slotoption", Data.Models.Metadata.ItemType.SlotOption)]
[InlineData("slot_option", Data.Models.Metadata.ItemType.SlotOption)]
[InlineData("softwarelist", Data.Models.Metadata.ItemType.SoftwareList)]
[InlineData("software_list", Data.Models.Metadata.ItemType.SoftwareList)]
[InlineData("sound", Data.Models.Metadata.ItemType.Sound)]
[InlineData("sourcedetails", Data.Models.Metadata.ItemType.SourceDetails)]
[InlineData("source_details", Data.Models.Metadata.ItemType.SourceDetails)]
public void AsItemTypeTest(string? field, Data.Models.Metadata.ItemType expected)
{
Data.Models.Metadata.ItemType actual = field.AsItemType();
Assert.Equal(expected, actual);
}
[Theory]
[InlineData(null, MachineType.None)]
[InlineData("none", MachineType.None)]
[InlineData("bios", MachineType.Bios)]
[InlineData("dev", MachineType.Device)]
[InlineData("device", MachineType.Device)]
[InlineData("mech", MachineType.Mechanical)]
[InlineData("mechanical", MachineType.Mechanical)]
public void AsMachineTypeTest(string? field, MachineType expected)
{
MachineType actual = field.AsMachineType();
Assert.Equal(expected, actual);
}
#endregion
#region Enum to String
[Theory]
[InlineData(Data.Models.Metadata.ItemType.NULL, null)]
[InlineData(Data.Models.Metadata.ItemType.Adjuster, "adjuster")]
[InlineData(Data.Models.Metadata.ItemType.Analog, "analog")]
[InlineData(Data.Models.Metadata.ItemType.Archive, "archive")]
[InlineData(Data.Models.Metadata.ItemType.BiosSet, "biosset")]
[InlineData(Data.Models.Metadata.ItemType.Blank, "blank")]
[InlineData(Data.Models.Metadata.ItemType.Chip, "chip")]
[InlineData(Data.Models.Metadata.ItemType.Condition, "condition")]
[InlineData(Data.Models.Metadata.ItemType.Configuration, "configuration")]
[InlineData(Data.Models.Metadata.ItemType.ConfLocation, "conflocation")]
[InlineData(Data.Models.Metadata.ItemType.ConfSetting, "confsetting")]
[InlineData(Data.Models.Metadata.ItemType.Control, "control")]
[InlineData(Data.Models.Metadata.ItemType.DataArea, "dataarea")]
[InlineData(Data.Models.Metadata.ItemType.Device, "device")]
[InlineData(Data.Models.Metadata.ItemType.DeviceRef, "device_ref")]
[InlineData(Data.Models.Metadata.ItemType.DipLocation, "diplocation")]
[InlineData(Data.Models.Metadata.ItemType.DipSwitch, "dipswitch")]
[InlineData(Data.Models.Metadata.ItemType.DipValue, "dipvalue")]
[InlineData(Data.Models.Metadata.ItemType.Disk, "disk")]
[InlineData(Data.Models.Metadata.ItemType.DiskArea, "diskarea")]
[InlineData(Data.Models.Metadata.ItemType.Display, "display")]
[InlineData(Data.Models.Metadata.ItemType.Driver, "driver")]
[InlineData(Data.Models.Metadata.ItemType.Extension, "extension")]
[InlineData(Data.Models.Metadata.ItemType.Feature, "feature")]
[InlineData(Data.Models.Metadata.ItemType.File, "file")]
[InlineData(Data.Models.Metadata.ItemType.Info, "info")]
[InlineData(Data.Models.Metadata.ItemType.Input, "input")]
[InlineData(Data.Models.Metadata.ItemType.Instance, "instance")]
[InlineData(Data.Models.Metadata.ItemType.Media, "media")]
[InlineData(Data.Models.Metadata.ItemType.Part, "part")]
[InlineData(Data.Models.Metadata.ItemType.PartFeature, "part_feature")]
[InlineData(Data.Models.Metadata.ItemType.Port, "port")]
[InlineData(Data.Models.Metadata.ItemType.RamOption, "ramoption")]
[InlineData(Data.Models.Metadata.ItemType.Release, "release")]
[InlineData(Data.Models.Metadata.ItemType.ReleaseDetails, "release_details")]
[InlineData(Data.Models.Metadata.ItemType.Rom, "rom")]
[InlineData(Data.Models.Metadata.ItemType.Sample, "sample")]
[InlineData(Data.Models.Metadata.ItemType.Serials, "serials")]
[InlineData(Data.Models.Metadata.ItemType.SharedFeat, "sharedfeat")]
[InlineData(Data.Models.Metadata.ItemType.Slot, "slot")]
[InlineData(Data.Models.Metadata.ItemType.SlotOption, "slotoption")]
[InlineData(Data.Models.Metadata.ItemType.SoftwareList, "softwarelist")]
[InlineData(Data.Models.Metadata.ItemType.Sound, "sound")]
[InlineData(Data.Models.Metadata.ItemType.SourceDetails, "source_details")]
public void FromItemTypeTest(Data.Models.Metadata.ItemType field, string? expected)
{
string? actual = field.AsStringValue();
Assert.Equal(expected, actual);
}
#endregion
}
}