using SabreTools.Core.Filter; using SabreTools.DatItems; using SabreTools.DatItems.Formats; using SabreTools.DatTools; using Xunit; namespace SabreTools.Test { public class SetterTests { [Fact] public void SetFieldsDatItemTest() { var datItem = CreateDatItem(); var setter = new Setter(); setter.PopulateSetters(new FilterKey("datitem", "name"), "bar"); setter.SetFields(datItem); Assert.Equal("bar", datItem.GetName()); } [Fact] public void SetFieldsMachineTest() { var datItem = CreateDatItem(); var setter = new Setter(); setter.PopulateSetters(new FilterKey("machine", "name"), "foo"); setter.SetFields(datItem.GetFieldValue(DatItem.MachineKey)); Assert.Equal("foo", datItem.GetFieldValue(DatItem.MachineKey)!.GetStringFieldValue(Models.Metadata.Machine.NameKey)); } /// /// Generate a consistent DatItem for testing /// private static DatItem CreateDatItem() { var machine = new Machine(); machine.SetFieldValue(Models.Metadata.Machine.NameKey, "bar"); machine.SetFieldValue(Models.Metadata.Machine.DescriptionKey, "bar"); var rom = new Rom(); rom.SetFieldValue(DatItem.MachineKey, machine); rom.SetName("foo"); return rom; } } }