mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Fix longstanding TODOs around Software items
This commit is contained in:
@@ -63,6 +63,7 @@ namespace SabreTools.Data.Extensions
|
||||
SharedFeat sharedFeat => sharedFeat.Name,
|
||||
Slot slot => slot.Name,
|
||||
SlotOption slotOption => slotOption.Name,
|
||||
Software software => software.Name,
|
||||
SoftwareList softwareList => softwareList.Name,
|
||||
Sound => null,
|
||||
SourceDetails => null,
|
||||
@@ -123,6 +124,7 @@ namespace SabreTools.Data.Extensions
|
||||
case SharedFeat sharedFeat: sharedFeat.Name = name; break;
|
||||
case Slot slot: slot.Name = name; break;
|
||||
case SlotOption slotOption: slotOption.Name = name; break;
|
||||
case Software software: software.Name = name; break;
|
||||
case SoftwareList softwareList: softwareList.Name = name; break;
|
||||
case Sound: break;
|
||||
case SourceDetails: break;
|
||||
@@ -335,6 +337,8 @@ namespace SabreTools.Data.Extensions
|
||||
else if (self is SoftwareList selfSoftwareList && clone is SoftwareList cloneSoftwareList)
|
||||
{
|
||||
cloneSoftwareList.Description = selfSoftwareList.Description;
|
||||
cloneSoftwareList.Filter = selfSoftwareList.Filter;
|
||||
cloneSoftwareList.Notes = selfSoftwareList.Notes;
|
||||
cloneSoftwareList.Status = selfSoftwareList.Status;
|
||||
cloneSoftwareList.Tag = selfSoftwareList.Tag;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
// TODO: What DAT type does this come from?
|
||||
[JsonObject("software"), XmlRoot("software")]
|
||||
public class Software : DatItem
|
||||
{
|
||||
|
||||
@@ -10,8 +10,12 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public string? Description { get; set; }
|
||||
|
||||
public string? Filter { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
public string? Notes { get; set; }
|
||||
|
||||
/// <remarks>(original|compatible)</remarks>
|
||||
public SoftwareListStatus? Status { get; set; }
|
||||
|
||||
@@ -21,12 +25,6 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string FilterKey = "filter";
|
||||
|
||||
/// <remarks>string</remarks>
|
||||
public const string NotesKey = "notes";
|
||||
|
||||
/// <remarks>Software[]</remarks>
|
||||
[NoFilter]
|
||||
public const string SoftwareKey = "software";
|
||||
|
||||
@@ -950,9 +950,9 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
return new Data.Models.Metadata.SoftwareList
|
||||
{
|
||||
Description = "description",
|
||||
[Data.Models.Metadata.SoftwareList.FilterKey] = "filter",
|
||||
Filter = "filter",
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.SoftwareList.NotesKey] = "notes",
|
||||
Notes = "notes",
|
||||
[Data.Models.Metadata.SoftwareList.SoftwareKey] = new Data.Models.Metadata.Software[] { CreateMetadataSoftware() },
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Tag = "tag",
|
||||
@@ -1628,12 +1628,43 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(softwareList);
|
||||
Assert.Equal("description", softwareList.Description);
|
||||
Assert.Equal("filter", softwareList.ReadString(Data.Models.Metadata.SoftwareList.FilterKey));
|
||||
Assert.Equal("filter", softwareList.Filter);
|
||||
Assert.Equal("name", softwareList.Name);
|
||||
Assert.Equal("notes", softwareList.ReadString(Data.Models.Metadata.SoftwareList.NotesKey));
|
||||
// TODO: Figure out why Data.Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
Assert.Equal("notes", softwareList.Notes);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
|
||||
Assert.Equal("tag", softwareList.Tag);
|
||||
|
||||
Software[]? softwares = softwareList.Read<Software[]>(Data.Models.Metadata.SoftwareList.SoftwareKey);
|
||||
Assert.NotNull(softwares);
|
||||
Software? software = Assert.Single(softwares);
|
||||
ValidateSoftware(software);
|
||||
}
|
||||
|
||||
private static void ValidateSoftware(Software? software)
|
||||
{
|
||||
Assert.NotNull(software);
|
||||
Assert.Equal("cloneof", software.ReadString(Data.Models.Metadata.Software.CloneOfKey));
|
||||
Assert.Equal("description", software.Description);
|
||||
Assert.Equal("name", software.Name);
|
||||
Assert.Equal("notes", software.ReadString(Data.Models.Metadata.Software.NotesKey));
|
||||
Assert.Equal("publisher", software.ReadString(Data.Models.Metadata.Software.PublisherKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, software.Supported);
|
||||
Assert.Equal("year", software.ReadString(Data.Models.Metadata.Software.YearKey));
|
||||
|
||||
Info[]? infos = software.Read<Info[]>(Data.Models.Metadata.Software.InfoKey);
|
||||
Assert.NotNull(infos);
|
||||
Info? info = Assert.Single(infos);
|
||||
ValidateInfo(info);
|
||||
|
||||
Part[]? parts = software.Read<Part[]>(Data.Models.Metadata.Software.PartKey);
|
||||
Assert.NotNull(parts);
|
||||
Part? part = Assert.Single(parts);
|
||||
ValidatePart(part);
|
||||
|
||||
SharedFeat[]? sharedFeats = software.Read<SharedFeat[]>(Data.Models.Metadata.Software.SharedFeatKey);
|
||||
Assert.NotNull(sharedFeats);
|
||||
SharedFeat? sharedFeat = Assert.Single(sharedFeats);
|
||||
ValidateSharedFeat(sharedFeat);
|
||||
}
|
||||
|
||||
private static void ValidateSound(Sound? sound)
|
||||
|
||||
@@ -1190,13 +1190,43 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Assert.NotNull(softwareList);
|
||||
Assert.Equal("description", softwareList.Description);
|
||||
Assert.Equal("filter", softwareList.ReadString(Data.Models.Metadata.SoftwareList.FilterKey));
|
||||
Assert.Equal("filter", softwareList.Filter);
|
||||
Assert.Equal("name", softwareList.Name);
|
||||
Assert.Equal("notes", softwareList.ReadString(Data.Models.Metadata.SoftwareList.NotesKey));
|
||||
Assert.Equal("notes", softwareList.Notes);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
|
||||
Assert.Equal("tag", softwareList.Tag);
|
||||
|
||||
// TODO: Figure out why Data.Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
|
||||
Data.Models.Metadata.Software[]? softwares = softwareList.ReadArray<Data.Models.Metadata.Software>(Data.Models.Metadata.SoftwareList.SoftwareKey);
|
||||
Assert.NotNull(softwares);
|
||||
Data.Models.Metadata.Software? software = Assert.Single(softwares);
|
||||
ValidateMetadataSoftware(software);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataSoftware(Data.Models.Metadata.Software? software)
|
||||
{
|
||||
Assert.NotNull(software);
|
||||
Assert.Equal("cloneof", software.ReadString(Data.Models.Metadata.Software.CloneOfKey));
|
||||
Assert.Equal("description", software.Description);
|
||||
Assert.Equal("name", software.Name);
|
||||
Assert.Equal("notes", software.ReadString(Data.Models.Metadata.Software.NotesKey));
|
||||
Assert.Equal("publisher", software.ReadString(Data.Models.Metadata.Software.PublisherKey));
|
||||
Assert.Equal(Data.Models.Metadata.Supported.Yes, software.Supported);
|
||||
Assert.Equal("year", software.ReadString(Data.Models.Metadata.Software.YearKey));
|
||||
|
||||
Data.Models.Metadata.Info[]? infos = software.Read<Data.Models.Metadata.Info[]>(Data.Models.Metadata.Software.InfoKey);
|
||||
Assert.NotNull(infos);
|
||||
Data.Models.Metadata.Info? info = Assert.Single(infos);
|
||||
ValidateMetadataInfo(info);
|
||||
|
||||
Data.Models.Metadata.Part[]? parts = software.Read<Data.Models.Metadata.Part[]>(Data.Models.Metadata.Software.PartKey);
|
||||
Assert.NotNull(parts);
|
||||
Data.Models.Metadata.Part? part = Assert.Single(parts);
|
||||
ValidateMetadataPart(part);
|
||||
|
||||
Data.Models.Metadata.SharedFeat[]? sharedFeats = software.Read<Data.Models.Metadata.SharedFeat[]>(Data.Models.Metadata.Software.SharedFeatKey);
|
||||
Assert.NotNull(sharedFeats);
|
||||
Data.Models.Metadata.SharedFeat? sharedFeat = Assert.Single(sharedFeats);
|
||||
ValidateMetadataSharedFeat(sharedFeat);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataSound(Data.Models.Metadata.Sound? sound)
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace SabreTools.Metadata.DatItems
|
||||
[XmlInclude(typeof(SharedFeat))]
|
||||
[XmlInclude(typeof(Slot))]
|
||||
[XmlInclude(typeof(SlotOption))]
|
||||
[XmlInclude(typeof(Software))]
|
||||
[XmlInclude(typeof(SoftwareList))]
|
||||
[XmlInclude(typeof(Sound))]
|
||||
[XmlInclude(typeof(SourceDetails))]
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using System.Xml.Serialization;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// SoftwareList part information
|
||||
/// PartList part information
|
||||
/// </summary>
|
||||
/// <remarks>One Part can contain multiple PartFeature, DataArea, DiskArea, and DipSwitch items</remarks>
|
||||
[JsonObject("part"), XmlRoot("part")]
|
||||
@@ -60,6 +61,42 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Part(_internal.DeepClone() as Data.Models.Metadata.Part ?? []);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Part GetInternalClone()
|
||||
{
|
||||
var partItem = base.GetInternalClone();
|
||||
|
||||
var dataAreas = Read<DataArea[]?>(Data.Models.Metadata.Part.DataAreaKey);
|
||||
if (dataAreas is not null)
|
||||
{
|
||||
Data.Models.Metadata.DataArea[] dataAreaItems = Array.ConvertAll(dataAreas, dataArea => dataArea.GetInternalClone());
|
||||
partItem[Data.Models.Metadata.Part.DataAreaKey] = dataAreaItems;
|
||||
}
|
||||
|
||||
var diskAreas = Read<DiskArea[]?>(Data.Models.Metadata.Part.DiskAreaKey);
|
||||
if (diskAreas is not null)
|
||||
{
|
||||
Data.Models.Metadata.DiskArea[] diskAreaItems = Array.ConvertAll(diskAreas, diskArea => diskArea.GetInternalClone());
|
||||
partItem[Data.Models.Metadata.Part.DiskAreaKey] = diskAreaItems;
|
||||
}
|
||||
|
||||
var dipSwitches = Read<DipSwitch[]?>(Data.Models.Metadata.Part.DipSwitchKey);
|
||||
if (dipSwitches is not null)
|
||||
{
|
||||
Data.Models.Metadata.DipSwitch[] dipSwitchItems = Array.ConvertAll(dipSwitches, dipSwitch => dipSwitch.GetInternalClone());
|
||||
partItem[Data.Models.Metadata.Part.DipSwitchKey] = dipSwitchItems;
|
||||
}
|
||||
|
||||
var features = Read<Feature[]?>(Data.Models.Metadata.Part.FeatureKey);
|
||||
if (features is not null)
|
||||
{
|
||||
Data.Models.Metadata.Feature[] featureItems = Array.ConvertAll(features, feature => feature.GetInternalClone());
|
||||
partItem[Data.Models.Metadata.Part.FeatureKey] = featureItems;
|
||||
}
|
||||
|
||||
return partItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
115
SabreTools.Metadata.DatItems/Formats/Software.cs
Normal file
115
SabreTools.Metadata.DatItems/Formats/Software.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents one ListXML software
|
||||
/// </summary>
|
||||
[JsonObject("software"), XmlRoot("software")]
|
||||
public sealed class Software : DatItem<Data.Models.Metadata.Software>
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public string? Description
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Software)?.Description;
|
||||
set => (_internal as Data.Models.Metadata.Software)?.Description = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
public override Data.Models.Metadata.ItemType ItemType
|
||||
=> Data.Models.Metadata.ItemType.Software;
|
||||
|
||||
public string? Name
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Software)?.Name;
|
||||
set => (_internal as Data.Models.Metadata.Software)?.Name = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Supported? Supported
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.Software)?.Supported;
|
||||
set => (_internal as Data.Models.Metadata.Software)?.Supported = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public Software() : base() { }
|
||||
|
||||
public Software(Data.Models.Metadata.Software item) : base(item)
|
||||
{
|
||||
// Handle subitems
|
||||
var infos = item.ReadArray<Data.Models.Metadata.Info>(Data.Models.Metadata.Software.InfoKey);
|
||||
if (infos is not null)
|
||||
{
|
||||
Info[] infoItems = Array.ConvertAll(infos, info => new Info(info));
|
||||
Write<Info[]?>(Data.Models.Metadata.Software.InfoKey, infoItems);
|
||||
}
|
||||
|
||||
var parts = item.ReadArray<Data.Models.Metadata.Part>(Data.Models.Metadata.Software.PartKey);
|
||||
if (parts is not null)
|
||||
{
|
||||
Part[] partItems = Array.ConvertAll(parts, part => new Part(part));
|
||||
Write<Part[]?>(Data.Models.Metadata.Software.PartKey, partItems);
|
||||
}
|
||||
|
||||
var sharedFeats = item.ReadArray<Data.Models.Metadata.SharedFeat>(Data.Models.Metadata.Software.SharedFeatKey);
|
||||
if (sharedFeats is not null)
|
||||
{
|
||||
SharedFeat[] sharedFeatItems = Array.ConvertAll(sharedFeats, sharedFeat => new SharedFeat(sharedFeat));
|
||||
Write<SharedFeat[]?>(Data.Models.Metadata.Software.SharedFeatKey, sharedFeatItems);
|
||||
}
|
||||
}
|
||||
|
||||
public Software(Data.Models.Metadata.Software item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Software(_internal.DeepClone() as Data.Models.Metadata.Software ?? []);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Software GetInternalClone()
|
||||
{
|
||||
var softwareItem = base.GetInternalClone();
|
||||
|
||||
var infos = Read<Info[]?>(Data.Models.Metadata.Software.InfoKey);
|
||||
if (infos is not null)
|
||||
{
|
||||
Data.Models.Metadata.Info[] infoItems = Array.ConvertAll(infos, info => info.GetInternalClone());
|
||||
softwareItem[Data.Models.Metadata.Software.InfoKey] = infoItems;
|
||||
}
|
||||
|
||||
var parts = Read<Part[]?>(Data.Models.Metadata.Software.PartKey);
|
||||
if (parts is not null)
|
||||
{
|
||||
Data.Models.Metadata.Part[] partItems = Array.ConvertAll(parts, part => part.GetInternalClone());
|
||||
softwareItem[Data.Models.Metadata.Software.PartKey] = partItems;
|
||||
}
|
||||
|
||||
var sharedFeats = Read<SharedFeat[]?>(Data.Models.Metadata.Software.SharedFeatKey);
|
||||
if (sharedFeats is not null)
|
||||
{
|
||||
Data.Models.Metadata.SharedFeat[] sharedFeatItems = Array.ConvertAll(sharedFeats, sharedFeat => sharedFeat.GetInternalClone());
|
||||
softwareItem[Data.Models.Metadata.Software.SharedFeatKey] = sharedFeatItems;
|
||||
}
|
||||
|
||||
return softwareItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
@@ -18,6 +19,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Description = value;
|
||||
}
|
||||
|
||||
public string? Filter
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.SoftwareList)?.Filter;
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Filter = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
public override Data.Models.Metadata.ItemType ItemType
|
||||
=> Data.Models.Metadata.ItemType.SoftwareList;
|
||||
@@ -28,6 +35,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Name = value;
|
||||
}
|
||||
|
||||
public string? Notes
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.SoftwareList)?.Notes;
|
||||
set => (_internal as Data.Models.Metadata.SoftwareList)?.Notes = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.SoftwareListStatus? Status
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.SoftwareList)?.Status;
|
||||
@@ -49,7 +62,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
public SoftwareList(Data.Models.Metadata.SoftwareList item) : base(item)
|
||||
{
|
||||
// Handle subitems
|
||||
// TODO: Handle the Software subitem
|
||||
var softwares = item.ReadArray<Data.Models.Metadata.Software>(Data.Models.Metadata.SoftwareList.SoftwareKey);
|
||||
if (softwares is not null)
|
||||
{
|
||||
Software[] softwareItems = Array.ConvertAll(softwares, software => new Software(software));
|
||||
Write<Software[]?>(Data.Models.Metadata.SoftwareList.SoftwareKey, softwareItems);
|
||||
}
|
||||
}
|
||||
|
||||
public SoftwareList(Data.Models.Metadata.SoftwareList item, Machine machine, Source source) : this(item)
|
||||
@@ -65,6 +83,21 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new SoftwareList(_internal.DeepClone() as Data.Models.Metadata.SoftwareList ?? []);
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.SoftwareList GetInternalClone()
|
||||
{
|
||||
var softwareListItem = base.GetInternalClone();
|
||||
|
||||
var softwares = Read<Software[]?>(Data.Models.Metadata.SoftwareList.SoftwareKey);
|
||||
if (softwares is not null)
|
||||
{
|
||||
Data.Models.Metadata.Software[] softwareItems = Array.ConvertAll(softwares, software => software.GetInternalClone());
|
||||
softwareListItem[Data.Models.Metadata.SoftwareList.SoftwareKey] = softwareItems;
|
||||
}
|
||||
|
||||
return softwareListItem;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -839,6 +839,12 @@ namespace SabreTools.Metadata.Filter
|
||||
case SoftwareList item when fieldName == "description":
|
||||
checkValue = item.Description;
|
||||
return true;
|
||||
case SoftwareList item when fieldName == "filter":
|
||||
checkValue = item.Filter;
|
||||
return true;
|
||||
case SoftwareList item when fieldName == "notes":
|
||||
checkValue = item.Notes;
|
||||
return true;
|
||||
case SoftwareList item when fieldName == "status":
|
||||
checkValue = item.Status?.AsStringValue();
|
||||
return true;
|
||||
|
||||
@@ -339,6 +339,10 @@ namespace SabreTools.Metadata
|
||||
{
|
||||
if (selfSoftwareList.Description != otherSoftwareList.Description)
|
||||
return false;
|
||||
if (selfSoftwareList.Filter != otherSoftwareList.Filter)
|
||||
return false;
|
||||
if (selfSoftwareList.Notes != otherSoftwareList.Notes)
|
||||
return false;
|
||||
if (selfSoftwareList.Status != otherSoftwareList.Status)
|
||||
return false;
|
||||
if (selfSoftwareList.Tag != otherSoftwareList.Tag)
|
||||
|
||||
@@ -317,7 +317,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -861,7 +861,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -224,7 +224,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
Data.Models.Logiqx.GameBase gameBase = game
|
||||
@@ -568,7 +568,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -855,7 +855,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -313,7 +313,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -855,7 +855,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.NotNull(newSl);
|
||||
Assert.Equal("name", newSl.Name);
|
||||
Assert.Equal("description", newSl.Description);
|
||||
Assert.Equal("XXXXXX", newSl.Notes);
|
||||
Assert.Equal("notes", newSl.Notes);
|
||||
|
||||
Assert.NotNull(newSl.Software);
|
||||
var newSoftware = Assert.Single(newSl.Software);
|
||||
@@ -124,7 +124,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Description = "description",
|
||||
Year = "XXXXXX",
|
||||
Publisher = "XXXXXX",
|
||||
Notes = "XXXXXX",
|
||||
Notes = "notes",
|
||||
Info = [info],
|
||||
SharedFeat = [sharedfeat],
|
||||
Part = [part],
|
||||
@@ -134,7 +134,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Name = "name",
|
||||
Description = "description",
|
||||
Notes = "XXXXXX",
|
||||
Notes = "notes",
|
||||
Software = [software],
|
||||
};
|
||||
}
|
||||
@@ -151,7 +151,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
Assert.Equal("description", software.Description);
|
||||
Assert.Equal("XXXXXX", software.Year);
|
||||
Assert.Equal("XXXXXX", software.Publisher);
|
||||
Assert.Equal("XXXXXX", software.Notes);
|
||||
Assert.Equal("notes", software.Notes);
|
||||
|
||||
Assert.NotNull(software.Info);
|
||||
var info = Assert.Single(software.Info);
|
||||
|
||||
@@ -634,7 +634,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Tag = item.Tag,
|
||||
Name = item.Name,
|
||||
Status = item.Status,
|
||||
Filter = item.ReadString(Data.Models.Metadata.SoftwareList.FilterKey),
|
||||
Filter = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
}
|
||||
|
||||
@@ -675,7 +675,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Tag = item.Tag,
|
||||
Name = item.Name,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.SoftwareList.FilterKey] = item.Filter,
|
||||
Filter = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Tag = item.Tag,
|
||||
Name = item.Name,
|
||||
Status = item.Status,
|
||||
Filter = item.ReadString(Data.Models.Metadata.SoftwareList.FilterKey),
|
||||
Filter = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
}
|
||||
|
||||
@@ -344,7 +344,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
Tag = item.Tag,
|
||||
Name = item.Name,
|
||||
Status = item.Status,
|
||||
[Data.Models.Metadata.SoftwareList.FilterKey] = item.Filter,
|
||||
Filter = item.Filter,
|
||||
};
|
||||
return softwareList;
|
||||
}
|
||||
|
||||
@@ -384,7 +384,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -928,7 +928,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -289,7 +289,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
Data.Models.Logiqx.GameBase gameBase = game
|
||||
@@ -616,7 +616,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -922,7 +922,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -380,7 +380,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Tag = "tag",
|
||||
Name = "name",
|
||||
Status = Data.Models.Metadata.SoftwareListStatus.Original,
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
};
|
||||
|
||||
var ramoption = new Data.Models.Listxml.RamOption
|
||||
@@ -922,7 +922,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("tag", softwarelist.Tag);
|
||||
Assert.Equal("name", softwarelist.Name);
|
||||
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwarelist.Status);
|
||||
Assert.Equal("XXXXXX", softwarelist.Filter);
|
||||
Assert.Equal("filter", softwarelist.Filter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Date = "XXXXXX",
|
||||
Format = "XXXXXX",
|
||||
Note = "XXXXXX",
|
||||
Filter = "XXXXXX",
|
||||
Filter = "filter",
|
||||
Version = "XXXXXX",
|
||||
UpdateType = "XXXXXX",
|
||||
Size = "XXXXXX",
|
||||
@@ -420,7 +420,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("XXXXXX", file.Date);
|
||||
Assert.Equal("XXXXXX", file.Format);
|
||||
Assert.Equal("XXXXXX", file.Note);
|
||||
Assert.Equal("XXXXXX", file.Filter);
|
||||
Assert.Equal("filter", file.Filter);
|
||||
Assert.Equal("XXXXXX", file.Version);
|
||||
Assert.Equal("XXXXXX", file.UpdateType);
|
||||
Assert.Equal("XXXXXX", file.Size);
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.NotNull(newSl);
|
||||
Assert.Equal("name", newSl.Name);
|
||||
Assert.Equal("description", newSl.Description);
|
||||
Assert.Equal("XXXXXX", newSl.Notes);
|
||||
Assert.Equal("notes", newSl.Notes);
|
||||
|
||||
Assert.NotNull(newSl.Software);
|
||||
var newSoftware = Assert.Single(newSl.Software);
|
||||
@@ -197,7 +197,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Description = "description",
|
||||
Year = "XXXXXX",
|
||||
Publisher = "XXXXXX",
|
||||
Notes = "XXXXXX",
|
||||
Notes = "notes",
|
||||
Info = [info],
|
||||
SharedFeat = [sharedfeat],
|
||||
Part = [part],
|
||||
@@ -207,7 +207,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
{
|
||||
Name = "name",
|
||||
Description = "description",
|
||||
Notes = "XXXXXX",
|
||||
Notes = "notes",
|
||||
Software = [software],
|
||||
};
|
||||
}
|
||||
@@ -224,7 +224,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
Assert.Equal("description", software.Description);
|
||||
Assert.Equal("XXXXXX", software.Year);
|
||||
Assert.Equal("XXXXXX", software.Publisher);
|
||||
Assert.Equal("XXXXXX", software.Notes);
|
||||
Assert.Equal("notes", software.Notes);
|
||||
|
||||
Assert.NotNull(software.Info);
|
||||
var info = Assert.Single(software.Info);
|
||||
|
||||
Reference in New Issue
Block a user