mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-23 15:24:56 +00:00
Lazily make OfflineList-specific header items properties
This commit is contained in:
@@ -202,7 +202,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Author = "author",
|
||||
BiosMode = Data.Models.Metadata.MergingFlag.Merged,
|
||||
Build = "build",
|
||||
[Data.Models.Metadata.Header.CanOpenKey] = canOpen,
|
||||
CanOpen = canOpen,
|
||||
Category = "category",
|
||||
Comment = "comment",
|
||||
Date = "date",
|
||||
@@ -219,15 +219,15 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
HeaderSkipper = "header",
|
||||
Homepage = "homepage",
|
||||
Id = "id",
|
||||
[Data.Models.Metadata.Header.ImagesKey] = images,
|
||||
[Data.Models.Metadata.Header.ImFolderKey] = "imfolder",
|
||||
[Data.Models.Metadata.Header.InfosKey] = infos,
|
||||
Images = images,
|
||||
ImFolder = "imfolder",
|
||||
Infos = infos,
|
||||
LockBiosMode = true,
|
||||
LockRomMode = true,
|
||||
LockSampleMode = true,
|
||||
MameConfig = "mameconfig",
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.Header.NewDatKey] = newDat,
|
||||
NewDat = newDat,
|
||||
Notes = "notes",
|
||||
Plugin = "plugin",
|
||||
RefName = "refname",
|
||||
@@ -238,7 +238,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
[Data.Models.Metadata.Header.SchemaLocationKey] = "schemalocation",
|
||||
ScreenshotsHeight = "screenshotsheight",
|
||||
ScreenshotsWidth = "screenshotsWidth",
|
||||
[Data.Models.Metadata.Header.SearchKey] = search,
|
||||
Search = search,
|
||||
System = "system",
|
||||
Timestamp = "timestamp",
|
||||
Type = "type",
|
||||
@@ -1010,7 +1010,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("author", datHeader.Author);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.BiosMode);
|
||||
Assert.Equal("build", datHeader.Build);
|
||||
Assert.Equal("ext", datHeader.ReadString(Data.Models.Metadata.Header.CanOpenKey));
|
||||
Assert.NotNull(datHeader.CanOpen);
|
||||
Assert.Equal("category", datHeader.Category);
|
||||
Assert.Equal("comment", datHeader.Comment);
|
||||
Assert.Equal("date", datHeader.Date);
|
||||
@@ -1026,15 +1026,15 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("header", datHeader.HeaderSkipper);
|
||||
Assert.Equal("homepage", datHeader.Homepage);
|
||||
Assert.Equal("id", datHeader.Id);
|
||||
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.ImagesKey));
|
||||
Assert.Equal("imfolder", datHeader.ReadString(Data.Models.Metadata.Header.ImFolderKey));
|
||||
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.InfosKey));
|
||||
Assert.NotNull(datHeader.Images);
|
||||
Assert.Equal("imfolder", datHeader.ImFolder);
|
||||
Assert.NotNull(datHeader.Infos);
|
||||
Assert.True(datHeader.LockBiosMode);
|
||||
Assert.True(datHeader.LockRomMode);
|
||||
Assert.True(datHeader.LockSampleMode);
|
||||
Assert.Equal("mameconfig", datHeader.MameConfig);
|
||||
Assert.Equal("name", datHeader.Name);
|
||||
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.NewDatKey));
|
||||
Assert.NotNull(datHeader.NewDat);
|
||||
Assert.Equal("notes", datHeader.Notes);
|
||||
Assert.Equal("plugin", datHeader.Plugin);
|
||||
Assert.Equal("refname", datHeader.RefName);
|
||||
@@ -1045,7 +1045,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("schemalocation", datHeader.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
|
||||
Assert.Equal("screenshotsheight", datHeader.ScreenshotsHeight);
|
||||
Assert.Equal("screenshotsWidth", datHeader.ScreenshotsWidth);
|
||||
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.SearchKey));
|
||||
Assert.NotNull(datHeader.Search);
|
||||
Assert.Equal("system", datHeader.System);
|
||||
Assert.Equal("timestamp", datHeader.Timestamp);
|
||||
Assert.Equal("type", datHeader.Type);
|
||||
|
||||
@@ -92,17 +92,14 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
|
||||
private static DatHeader CreateHeader()
|
||||
{
|
||||
DatHeader item = new DatHeader(CreateMetadataHeader());
|
||||
|
||||
item.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, ["ext"]);
|
||||
item.Write(Data.Models.Metadata.Header.ImagesKey,
|
||||
new Data.Models.OfflineList.Images() { Height = "height" });
|
||||
item.Write(Data.Models.Metadata.Header.InfosKey,
|
||||
new Data.Models.OfflineList.Infos() { Comment = new Data.Models.OfflineList.Comment() });
|
||||
item.Write(Data.Models.Metadata.Header.NewDatKey,
|
||||
new Data.Models.OfflineList.NewDat() { DatUrl = new Data.Models.OfflineList.DatUrl() });
|
||||
item.Write(Data.Models.Metadata.Header.SearchKey,
|
||||
new Data.Models.OfflineList.Search() { To = [] });
|
||||
DatHeader item = new DatHeader(CreateMetadataHeader())
|
||||
{
|
||||
CanOpen = new Data.Models.OfflineList.CanOpen { Extension = ["ext"] },
|
||||
Images = new Data.Models.OfflineList.Images() { Height = "height" },
|
||||
Infos = new Data.Models.OfflineList.Infos() { Comment = new Data.Models.OfflineList.Comment() },
|
||||
NewDat = new Data.Models.OfflineList.NewDat() { DatUrl = new Data.Models.OfflineList.DatUrl() },
|
||||
Search = new Data.Models.OfflineList.Search() { To = [] },
|
||||
};
|
||||
|
||||
return item;
|
||||
}
|
||||
@@ -354,7 +351,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("author", header.Author);
|
||||
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.BiosMode);
|
||||
Assert.Equal("build", header.Build);
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.CanOpen>(Data.Models.Metadata.Header.CanOpenKey));
|
||||
Assert.NotNull(header.CanOpen);
|
||||
Assert.Equal("category", header.Category);
|
||||
Assert.Equal("comment", header.Comment);
|
||||
Assert.Equal("date", header.Date);
|
||||
@@ -370,15 +367,15 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("header", header.HeaderSkipper);
|
||||
Assert.Equal("homepage", header.Homepage);
|
||||
Assert.Equal("id", header.Id);
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.Images>(Data.Models.Metadata.Header.ImagesKey));
|
||||
Assert.Equal("imfolder", header.ReadString(Data.Models.Metadata.Header.ImFolderKey));
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.Infos>(Data.Models.Metadata.Header.InfosKey));
|
||||
Assert.NotNull(header.Images);
|
||||
Assert.Equal("imfolder", header.ImFolder);
|
||||
Assert.NotNull(header.Infos);
|
||||
Assert.True(header.LockBiosMode);
|
||||
Assert.True(header.LockRomMode);
|
||||
Assert.True(header.LockSampleMode);
|
||||
Assert.Equal("mameconfig", header.MameConfig);
|
||||
Assert.Equal("name", header.Name);
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.NewDat>(Data.Models.Metadata.Header.NewDatKey));
|
||||
Assert.NotNull(header.NewDat);
|
||||
Assert.Equal("notes", header.Notes);
|
||||
Assert.Equal("plugin", header.Plugin);
|
||||
Assert.Equal("refname", header.RefName);
|
||||
@@ -389,7 +386,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.Equal("schemalocation", header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
|
||||
Assert.Equal("screenshotsheight", header.ScreenshotsHeight);
|
||||
Assert.Equal("screenshotsWidth", header.ScreenshotsWidth);
|
||||
Assert.NotNull(header.Read<Data.Models.OfflineList.Search>(Data.Models.Metadata.Header.SearchKey));
|
||||
Assert.NotNull(header.Search);
|
||||
Assert.Equal("system", header.System);
|
||||
Assert.Equal("timestamp", header.Timestamp);
|
||||
Assert.Equal("type", header.Type);
|
||||
|
||||
@@ -4,114 +4,6 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
public class DatHeaderTests
|
||||
{
|
||||
#region CanOpenSpecified
|
||||
|
||||
[Fact]
|
||||
public void CanOpenSpecified_Missing()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, null);
|
||||
Assert.False(header.CanOpenSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanOpenSpecified_Empty()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, []);
|
||||
Assert.False(header.CanOpenSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CanOpenSpecified_Exists()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<string[]>(Data.Models.Metadata.Header.CanOpenKey, ["value"]);
|
||||
Assert.True(header.CanOpenSpecified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ImagesSpecified
|
||||
|
||||
[Fact]
|
||||
public void ImagesSpecified_Missing()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Images>(Data.Models.Metadata.Header.ImagesKey, null);
|
||||
Assert.False(header.ImagesSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ImagesSpecified_Exists()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Images>(Data.Models.Metadata.Header.ImagesKey, new());
|
||||
Assert.True(header.ImagesSpecified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region InfosSpecified
|
||||
|
||||
[Fact]
|
||||
public void InfosSpecified_Missing()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Infos>(Data.Models.Metadata.Header.InfosKey, null);
|
||||
Assert.False(header.InfosSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InfosSpecified_Exists()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Infos>(Data.Models.Metadata.Header.InfosKey, new());
|
||||
Assert.True(header.InfosSpecified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region NewDatSpecified
|
||||
|
||||
[Fact]
|
||||
public void NewDatSpecified_Missing()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.NewDat>(Data.Models.Metadata.Header.NewDatKey, null);
|
||||
Assert.False(header.NewDatSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NewDatSpecified_Exists()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.NewDat>(Data.Models.Metadata.Header.NewDatKey, new());
|
||||
Assert.True(header.NewDatSpecified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region SearchSpecified
|
||||
|
||||
[Fact]
|
||||
public void SearchSpecified_Missing()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Search>(Data.Models.Metadata.Header.SearchKey, null);
|
||||
Assert.False(header.SearchSpecified);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SearchSpecified_Exists()
|
||||
{
|
||||
DatHeader header = new DatHeader();
|
||||
header.Write<Data.Models.OfflineList.Search>(Data.Models.Metadata.Header.SearchKey, new());
|
||||
Assert.True(header.SearchSpecified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Clone
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user