using System.Collections.Generic; using SabreTools.Core; using SabreTools.DatItems; using Xunit; namespace SabreTools.Test.DatItems { public class DatItemToolTests { [Fact] public void ReplaceFieldsDatItemTest() { var datItem = CreateDatItem(); var repDatItem = CreateDatItem(); repDatItem.SetName("bar"); var fields = new List { DatItemField.Name }; DatItemTool.ReplaceFields(datItem, repDatItem, fields); Assert.Equal("bar", datItem.GetName()); } [Fact] public void ReplaceFieldsMachineTest() { var datItem = CreateDatItem(); var repDatItem = CreateDatItem(); repDatItem.Machine.Name = "foo"; var fields = new List { MachineField.Name }; DatItemTool.ReplaceFields(datItem.Machine, repDatItem.Machine, fields, false); Assert.Equal("foo", datItem.Machine.Name); } [Fact] public void SetFieldsDatItemTest() { var datItem = CreateDatItem(); var mappings = new Dictionary { [DatItemField.Name] = "bar" }; DatItemTool.SetFields(datItem, mappings, null); Assert.Equal("bar", datItem.GetName()); } [Fact] public void SetFieldsMachineTest() { var datItem = CreateDatItem(); var mappings = new Dictionary { [MachineField.Name] = "foo" }; DatItemTool.SetFields(datItem, null, mappings); Assert.Equal("foo", datItem.Machine.Name); } [Fact] public void SetOneRomPerGameTest() { var datItem = CreateDatItem(); datItem.SetName("foo.bin"); DatItemTool.SetOneRomPerGame(datItem); Assert.Equal("foo.bin", datItem.GetName()); Assert.Equal("bar/foo", datItem.Machine.Name); } /// /// Generate a consistent DatItem for testing /// private DatItem CreateDatItem() { return new Rom { Name = "foo", Machine = new Machine { Name = "bar", Description = "bar", } }; } } }