mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Replacement code to own class
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -95,7 +95,7 @@ namespace SabreTools.DatTools
|
||||
|
||||
// Replace fields from the first duplicate, if we have one
|
||||
if (dupes.Count > 0)
|
||||
DatItemTool.ReplaceFields(newDatItem, dupes.First(), datItemFields);
|
||||
Replacer.ReplaceFields(newDatItem, dupes.First(), datItemFields);
|
||||
|
||||
newDatItems.Add(newDatItem);
|
||||
}
|
||||
@@ -122,7 +122,7 @@ namespace SabreTools.DatTools
|
||||
{
|
||||
DatItem newDatItem = datItem.Clone() as DatItem;
|
||||
if (datFile.Items.ContainsKey(key) && datFile.Items[key].Count() > 0)
|
||||
DatItemTool.ReplaceFields(newDatItem.Machine, datFile.Items[key][0].Machine, machineFields, onlySame);
|
||||
Replacer.ReplaceFields(newDatItem.Machine, datFile.Items[key][0].Machine, machineFields, onlySame);
|
||||
|
||||
newDatItems.Add(newDatItem);
|
||||
}
|
||||
|
||||
1050
SabreTools.DatTools/Replacer.cs
Normal file
1050
SabreTools.DatTools/Replacer.cs
Normal file
File diff suppressed because it is too large
Load Diff
@@ -540,11 +540,25 @@ namespace SabreTools.Filtering
|
||||
List<DatItem> items = datFile.Items[key];
|
||||
for (int i = 0; i < items.Count; i++)
|
||||
{
|
||||
DatItemTool.SetOneRomPerGame(items[i]);
|
||||
SetOneRomPerGame(items[i]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set internal names to match One Rom Per Game (ORPG) logic
|
||||
/// </summary>
|
||||
/// <param name="datItem">DatItem to run logic on</param>
|
||||
internal void SetOneRomPerGame(DatItem datItem)
|
||||
{
|
||||
if (datItem.GetName() == null)
|
||||
return;
|
||||
|
||||
string[] splitname = datItem.GetName().Split('.');
|
||||
datItem.Machine.Name += $"/{string.Join(".", splitname.Take(splitname.Length > 1 ? splitname.Length - 1 : 1))}";
|
||||
datItem.SetName(Path.GetFileName(datItem.GetName()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Strip the dates from the beginning of scene-style set names
|
||||
/// </summary>
|
||||
|
||||
@@ -396,7 +396,7 @@ namespace SabreTools.Filtering
|
||||
continue;
|
||||
|
||||
// If the rom doesn't pass the filter, mark for removal
|
||||
if (!PassesFilters(item))
|
||||
if (!PassesAllFilters(item))
|
||||
{
|
||||
item.Remove = true;
|
||||
|
||||
@@ -436,7 +436,7 @@ namespace SabreTools.Filtering
|
||||
/// </summary>
|
||||
/// <param name="datItem">DatItem to check</param>
|
||||
/// <returns>True if the item passed the filter, false otherwise</returns>
|
||||
internal bool PassesFilters(DatItem datItem)
|
||||
internal bool PassesAllFilters(DatItem datItem)
|
||||
{
|
||||
// Null item means it will never pass
|
||||
if (datItem == null)
|
||||
|
||||
@@ -8,28 +8,6 @@ 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> { 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> { MachineField.Name };
|
||||
DatItemTool.ReplaceFields(datItem.Machine, repDatItem.Machine, fields, false);
|
||||
Assert.Equal("foo", datItem.Machine.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetFieldsDatItemTest()
|
||||
{
|
||||
@@ -48,16 +26,6 @@ namespace SabreTools.Test.DatItems
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a consistent DatItem for testing
|
||||
/// </summary>
|
||||
|
||||
50
SabreTools.Test/DatTools/ReplacerTests.cs
Normal file
50
SabreTools.Test/DatTools/ReplacerTests.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using SabreTools.Core;
|
||||
using SabreTools.DatItems;
|
||||
using SabreTools.DatTools;
|
||||
using Xunit;
|
||||
|
||||
namespace SabreTools.Test.DatTools
|
||||
{
|
||||
public class ReplacerTests
|
||||
{
|
||||
[Fact]
|
||||
public void ReplaceFieldsDatItemTest()
|
||||
{
|
||||
var datItem = CreateDatItem();
|
||||
var repDatItem = CreateDatItem();
|
||||
repDatItem.SetName("bar");
|
||||
var fields = new List<DatItemField> { DatItemField.Name };
|
||||
Replacer.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> { MachineField.Name };
|
||||
Replacer.ReplaceFields(datItem.Machine, repDatItem.Machine, fields, false);
|
||||
Assert.Equal("foo", datItem.Machine.Name);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a consistent DatItem for testing
|
||||
/// </summary>
|
||||
private DatItem CreateDatItem()
|
||||
{
|
||||
return new Rom
|
||||
{
|
||||
Name = "foo",
|
||||
Machine = new Machine
|
||||
{
|
||||
Name = "bar",
|
||||
Description = "bar",
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,6 +95,26 @@ namespace SabreTools.Test.Filtering
|
||||
Assert.Equal("name-3", datItem.Machine.Description);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SetOneRomPerGameTest()
|
||||
{
|
||||
// Setup cleaner
|
||||
var cleaner = new Cleaner
|
||||
{
|
||||
OneRomPerGame = true,
|
||||
};
|
||||
|
||||
// Setup DatItem
|
||||
var datItem = CreateDatItem("name", "name-2", "name-3");
|
||||
|
||||
// Run cleaning
|
||||
cleaner.SetOneRomPerGame(datItem);
|
||||
|
||||
// Check the fields
|
||||
Assert.Equal("name", datItem.GetName());
|
||||
Assert.Equal("name-2/name", datItem.Machine.Name);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a consistent DatItem for testing
|
||||
/// </summary>
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace SabreTools.Test.Filtering
|
||||
var datItem = CreateDatItem();
|
||||
|
||||
// Run filters
|
||||
bool actual = filter.PassesFilters(datItem);
|
||||
bool actual = filter.PassesAllFilters(datItem);
|
||||
Assert.True(actual);
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace SabreTools.Test.Filtering
|
||||
var datItem = CreateDatItem();
|
||||
|
||||
// Run filters
|
||||
bool actual = filter.PassesFilters(datItem);
|
||||
bool actual = filter.PassesAllFilters(datItem);
|
||||
Assert.False(actual);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace SabreTools.Test.Filtering
|
||||
var datItem = CreateDatItem();
|
||||
|
||||
// Run filters
|
||||
bool actual = filter.PassesFilters(datItem);
|
||||
bool actual = filter.PassesAllFilters(datItem);
|
||||
Assert.True(actual);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace SabreTools.Test.Filtering
|
||||
var datItem = CreateDatItem();
|
||||
|
||||
// Run filters
|
||||
bool actual = filter.PassesFilters(datItem);
|
||||
bool actual = filter.PassesAllFilters(datItem);
|
||||
Assert.False(actual);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user