mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add CopyMachineInformation tests
This commit is contained in:
@@ -7,7 +7,122 @@ namespace SabreTools.DatItems.Test
|
|||||||
{
|
{
|
||||||
#region CopyMachineInformation
|
#region CopyMachineInformation
|
||||||
|
|
||||||
// TODO: Implement CopyMachineInformation tests
|
[Fact]
|
||||||
|
public void CopyMachineInformation_NewItem_Overwrite()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
|
||||||
|
var romB = new Rom();
|
||||||
|
romB.RemoveField(DatItem.MachineKey);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(romB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Null(actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyMachineInformation_EmptyItem_NoChange()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
romA.SetFieldValue(DatItem.MachineKey, machineA);
|
||||||
|
|
||||||
|
var romB = new Rom();
|
||||||
|
romB.RemoveField(DatItem.MachineKey);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(romB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Equal("machineA", actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyMachineInformation_NullMachine_NoChange()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
Machine? machineB = null;
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
romA.SetFieldValue(DatItem.MachineKey, machineA);
|
||||||
|
|
||||||
|
var romB = new Rom();
|
||||||
|
romB.SetFieldValue(DatItem.MachineKey, machineB);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(romB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Equal("machineA", actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyMachineInformation_EmptyMachine_Overwrite()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
Machine? machineB = new Machine();
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
romA.SetFieldValue(DatItem.MachineKey, machineA);
|
||||||
|
|
||||||
|
var romB = new Rom();
|
||||||
|
romB.SetFieldValue(DatItem.MachineKey, machineB);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(romB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Null(actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyMachineInformation_FilledMachine_Overwrite()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
Machine? machineB = new Machine();
|
||||||
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineB");
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
romA.SetFieldValue(DatItem.MachineKey, machineA);
|
||||||
|
|
||||||
|
var romB = new Rom();
|
||||||
|
romB.SetFieldValue(DatItem.MachineKey, machineB);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(romB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Equal("machineB", actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyMachineInformation_MismatchedType_Overwrite()
|
||||||
|
{
|
||||||
|
Machine? machineA = new Machine();
|
||||||
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineA");
|
||||||
|
|
||||||
|
Machine? machineB = new Machine();
|
||||||
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machineB");
|
||||||
|
|
||||||
|
var romA = new Rom();
|
||||||
|
romA.SetFieldValue(DatItem.MachineKey, machineA);
|
||||||
|
|
||||||
|
var diskB = new Disk();
|
||||||
|
diskB.SetFieldValue(DatItem.MachineKey, machineB);
|
||||||
|
|
||||||
|
romA.CopyMachineInformation(diskB);
|
||||||
|
var actualMachineA = romA.GetFieldValue<Machine>(DatItem.MachineKey);
|
||||||
|
Assert.NotNull(actualMachineA);
|
||||||
|
Assert.Equal("machineB", actualMachineA.GetStringFieldValue(Models.Metadata.Machine.NameKey));
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -46,10 +161,10 @@ namespace SabreTools.DatItems.Test
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateStatus_MismatchedHashes_NoDupe()
|
public void GetDuplicateStatus_MismatchedHashes_NoDupe()
|
||||||
{
|
{
|
||||||
var machineA = new Machine();
|
Machine? machineA = new Machine();
|
||||||
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var machineB = new Machine();
|
Machine? machineB = new Machine();
|
||||||
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var romA = new Rom();
|
var romA = new Rom();
|
||||||
@@ -71,10 +186,10 @@ namespace SabreTools.DatItems.Test
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateStatus_DifferentSource_NameMatch_ExternalAll()
|
public void GetDuplicateStatus_DifferentSource_NameMatch_ExternalAll()
|
||||||
{
|
{
|
||||||
var machineA = new Machine();
|
Machine? machineA = new Machine();
|
||||||
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var machineB = new Machine();
|
Machine? machineB = new Machine();
|
||||||
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var romA = new Rom();
|
var romA = new Rom();
|
||||||
@@ -96,10 +211,10 @@ namespace SabreTools.DatItems.Test
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateStatus_DifferentSource_NoNameMatch_ExternalHash()
|
public void GetDuplicateStatus_DifferentSource_NoNameMatch_ExternalHash()
|
||||||
{
|
{
|
||||||
var machineA = new Machine();
|
Machine? machineA = new Machine();
|
||||||
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var machineB = new Machine();
|
Machine? machineB = new Machine();
|
||||||
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "not-name-same");
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "not-name-same");
|
||||||
|
|
||||||
var romA = new Rom();
|
var romA = new Rom();
|
||||||
@@ -121,10 +236,10 @@ namespace SabreTools.DatItems.Test
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateStatus_SameSource_NameMatch_InternalAll()
|
public void GetDuplicateStatus_SameSource_NameMatch_InternalAll()
|
||||||
{
|
{
|
||||||
var machineA = new Machine();
|
Machine? machineA = new Machine();
|
||||||
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var machineB = new Machine();
|
Machine? machineB = new Machine();
|
||||||
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var romA = new Rom();
|
var romA = new Rom();
|
||||||
@@ -146,10 +261,10 @@ namespace SabreTools.DatItems.Test
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateStatus_SameSource_NoNameMatch_InternalHash()
|
public void GetDuplicateStatus_SameSource_NoNameMatch_InternalHash()
|
||||||
{
|
{
|
||||||
var machineA = new Machine();
|
Machine? machineA = new Machine();
|
||||||
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
machineA.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "name-same");
|
||||||
|
|
||||||
var machineB = new Machine();
|
Machine? machineB = new Machine();
|
||||||
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "not-name-same");
|
machineB.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "not-name-same");
|
||||||
|
|
||||||
var romA = new Rom();
|
var romA = new Rom();
|
||||||
|
|||||||
@@ -129,7 +129,11 @@ namespace SabreTools.DatItems
|
|||||||
/// <param name="item">Existing item to copy information from</param>
|
/// <param name="item">Existing item to copy information from</param>
|
||||||
public void CopyMachineInformation(DatItem item)
|
public void CopyMachineInformation(DatItem item)
|
||||||
{
|
{
|
||||||
var machine = item.GetFieldValue<Machine>(DatItem.MachineKey);
|
// If there is no machine
|
||||||
|
if (!item._internal.ContainsKey(DatItem.MachineKey))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var machine = item.GetFieldValue<Machine?>(DatItem.MachineKey);
|
||||||
CopyMachineInformation(machine);
|
CopyMachineInformation(machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user