using System.Collections.Generic; using SabreTools.DatItems; using SabreTools.DatItems.Formats; using SabreTools.DatTools; using Xunit; namespace SabreTools.Test.Filtering { public class ReplacerTests { [Fact] public void ReplaceFieldsDatItemTest() { var datItem = CreateDatItem(); var repDatItem = CreateDatItem(); repDatItem.SetName("bar"); var fields = new Dictionary> { ["item"] = [Models.Metadata.Rom.NameKey] }; Replacer.ReplaceFields(datItem, repDatItem, fields); Assert.Equal("bar", datItem.GetName()); } [Fact] public void ReplaceFieldsMachineTest() { var datItem = CreateDatItem(); var repDatItem = CreateDatItem(); repDatItem.GetFieldValue(DatItem.MachineKey)!.SetFieldValue(Models.Metadata.Machine.NameKey, "foo"); List fields = [Models.Metadata.Machine.NameKey]; Replacer.ReplaceFields(datItem.GetFieldValue(DatItem.MachineKey)!, repDatItem.GetFieldValue(DatItem.MachineKey)!, fields, false); 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.SetName("foo"); rom.SetFieldValue(DatItem.MachineKey, machine); return rom; } } }