diff --git a/SabreTools.DatFiles.Test/ItemDictionaryDBTests.cs b/SabreTools.DatFiles.Test/ItemDictionaryDBTests.cs index 4ff0c409..a9dc7cb5 100644 --- a/SabreTools.DatFiles.Test/ItemDictionaryDBTests.cs +++ b/SabreTools.DatFiles.Test/ItemDictionaryDBTests.cs @@ -664,7 +664,35 @@ namespace SabreTools.DatFiles.Test #region Deduplicate - // TODO: Add Deduplicate tests + [Fact] + public void DeduplicateTest() + { + // Setup the items + Source source = new Source(0, source: null); + + Machine machine = new Machine(); + machine.SetFieldValue(Models.Metadata.Machine.NameKey, "game-1"); + + DatItem rom1 = new Rom(); + rom1.SetName("rom-1"); + rom1.SetFieldValue(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6"); + rom1.SetFieldValue(Models.Metadata.Rom.SizeKey, "1024"); + + DatItem rom2 = new Rom(); + rom2.SetName("rom-2"); + rom2.SetFieldValue(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6"); + rom2.SetFieldValue(Models.Metadata.Rom.SizeKey, "1024"); + + // Setup the dictionary + var dict = new ItemDictionaryDB(); + long sourceIndex = dict.AddSource(source); + long machineIndex = dict.AddMachine(machine); + dict.AddItem(rom1, machineIndex, sourceIndex, statsOnly: false); + dict.AddItem(rom2, machineIndex, sourceIndex, statsOnly: false); + + dict.Deduplicate(); + Assert.Equal(1, dict.DatStatistics.TotalCount); + } #endregion diff --git a/SabreTools.DatFiles.Test/ItemDictionaryTests.cs b/SabreTools.DatFiles.Test/ItemDictionaryTests.cs index 1c4c46d0..e73ff4e0 100644 --- a/SabreTools.DatFiles.Test/ItemDictionaryTests.cs +++ b/SabreTools.DatFiles.Test/ItemDictionaryTests.cs @@ -505,7 +505,33 @@ namespace SabreTools.DatFiles.Test #region Deduplicate - // TODO: Add Deduplicate tests + [Fact] + public void DeduplicateTest() + { + // Setup the items + Machine machine = new Machine(); + machine.SetFieldValue(Models.Metadata.Machine.NameKey, "game-1"); + + DatItem rom1 = new Rom(); + rom1.SetName("rom-1"); + rom1.SetFieldValue(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6"); + rom1.SetFieldValue(Models.Metadata.Rom.SizeKey, "1024"); + rom1.CopyMachineInformation(machine); + + DatItem rom2 = new Rom(); + rom2.SetName("rom-2"); + rom2.SetFieldValue(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6"); + rom2.SetFieldValue(Models.Metadata.Rom.SizeKey, "1024"); + rom2.CopyMachineInformation(machine); + + // Setup the dictionary + var dict = new ItemDictionary(); + dict.AddItem(rom1, statsOnly: false); + dict.AddItem(rom2, statsOnly: false); + + dict.Deduplicate(); + Assert.Equal(1, dict.DatStatistics.TotalCount); + } #endregion @@ -530,7 +556,7 @@ namespace SabreTools.DatFiles.Test rom2.SetName("rom-2"); rom2.SetFieldValue(Models.Metadata.Rom.SHA1Key, "000000e948edcb4f7704b8af85a77a3339ecce44"); rom2.SetFieldValue(Models.Metadata.Rom.SizeKey, "1024"); - rom1.CopyMachineInformation(machine); + rom2.CopyMachineInformation(machine); // Setup the dictionary var dict = new ItemDictionary(); @@ -542,7 +568,7 @@ namespace SabreTools.DatFiles.Test rom.SetName("rom-1"); rom.SetFieldValue(Models.Metadata.Rom.SHA1Key, "0000000fbbb37f8488100b1b4697012de631a5e6"); rom.SetFieldValue(Models.Metadata.Rom.SizeKey, hasDuplicate ? "1024" : "2048"); - rom1.CopyMachineInformation(machine); + rom.CopyMachineInformation(machine); var actual = dict.GetDuplicates(rom); Assert.Equal(expected, actual.Count);