diff --git a/SabreTools.Serialization.Test/Deserializers/ArchiveDotOrgTests.cs b/SabreTools.Serialization.Test/Deserializers/ArchiveDotOrgTests.cs index 519f298c..ee797910 100644 --- a/SabreTools.Serialization.Test/Deserializers/ArchiveDotOrgTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/ArchiveDotOrgTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,30 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-archivedotorg-files1.xml", 22)] + [InlineData("test-archivedotorg-files2.xml", 13)] + [InlineData("test-archivedotorg-files3.xml", 21)] + [InlineData("test-archivedotorg-files4.xml", 19)] + [InlineData("test-archivedotorg-files5.xml", 1390)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.ArchiveDotOrg.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.File); + Assert.Equal(count, dat.File.Length); + + // Validate we're not missing any attributes or elements + foreach (var file in dat.File) + { + Assert.NotNull(file); + } + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/AttractModeTests.cs b/SabreTools.Serialization.Test/Deserializers/AttractModeTests.cs index 5732be24..e4f9606f 100644 --- a/SabreTools.Serialization.Test/Deserializers/AttractModeTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/AttractModeTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,26 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-attractmode-files.txt", 11)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.AttractMode.DeserializeFile(filename); + + // Validate texpected: he values + Assert.NotNull(dat?.Row); + Assert.Equal(count, dat.Row.Length); + + // Validate we're not missing any attributes or elements + foreach (var file in dat.Row) + { + Assert.NotNull(file); + } + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/ClrMameProTests.cs b/SabreTools.Serialization.Test/Deserializers/ClrMameProTests.cs index 3dd58f86..56ce8c36 100644 --- a/SabreTools.Serialization.Test/Deserializers/ClrMameProTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/ClrMameProTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,26 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-cmp-files1.dat", 59, true)] + [InlineData("test-cmp-files2.dat", 312, false)] + public void ValidFile_NonNull(string path, long count, bool expectHeader) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.ClrMamePro.DeserializeFile(filename, quotes: true); + + // Validate the values + if (expectHeader) + Assert.NotNull(dat?.ClrMamePro); + else + Assert.Null(dat?.ClrMamePro); + + Assert.NotNull(dat?.Game); + Assert.Equal(count, dat.Game.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/DosCenterTests.cs b/SabreTools.Serialization.Test/Deserializers/DosCenterTests.cs index ea676dd7..cdbdf88f 100644 --- a/SabreTools.Serialization.Test/Deserializers/DosCenterTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/DosCenterTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,28 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-doscenter-files1.dat.gz", 34965)] + [InlineData("test-doscenter-files2.dat.gz", 7189)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.DosCenter.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.DosCenter); + + Assert.NotNull(dat?.Game); + Assert.Equal(count, dat.Game.Length); + + foreach (var game in dat.Game) + { + Assert.NotNull(game.File); + } + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/EverdriveSMDBTests.cs b/SabreTools.Serialization.Test/Deserializers/EverdriveSMDBTests.cs index 5def34a9..bfe905f1 100644 --- a/SabreTools.Serialization.Test/Deserializers/EverdriveSMDBTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/EverdriveSMDBTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,20 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-smdb-files.txt", 6113)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.EverdriveSMDB.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Row); + Assert.Equal(count, dat.Row.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/HashfileTests.cs b/SabreTools.Serialization.Test/Deserializers/HashfileTests.cs index fb3284a3..d0453578 100644 --- a/SabreTools.Serialization.Test/Deserializers/HashfileTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/HashfileTests.cs @@ -1,5 +1,7 @@ +using System; using System.IO; using System.Linq; +using SabreTools.Hashing; using Xunit; namespace SabreTools.Serialization.Test.Deserializers @@ -68,5 +70,59 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-sfv-files.sfv", HashType.CRC32, 100)] + [InlineData("test-md5-files.md5", HashType.MD5, 100)] + [InlineData("test-sha1-files.sha1", HashType.SHA1, 100)] + [InlineData("test-sha256.sha256", HashType.SHA256, 1)] + [InlineData("test-sha384.sha384", HashType.SHA384, 1)] + [InlineData("test-sha512.sha512", HashType.SHA512, 1)] + [InlineData("test-spamsum.spamsum", HashType.SpamSum, 1)] + public void ValidFile_NonNull(string path, HashType hash, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.Hashfile.DeserializeFile(filename, hash); + + // Validate the values + Assert.NotNull(dat); + + switch (hash) + { + case HashType.CRC32: + Assert.NotNull(dat.SFV); + Assert.Equal(count, dat.SFV.Length); + break; + case HashType.MD5: + Assert.NotNull(dat.MD5); + Assert.Equal(count, dat.MD5.Length); + break; + case HashType.SHA1: + Assert.NotNull(dat.SHA1); + Assert.Equal(count, dat.SHA1.Length); + break; + case HashType.SHA256: + Assert.NotNull(dat.SHA256); + Assert.Equal(count, dat.SHA256.Length); + break; + case HashType.SHA384: + Assert.NotNull(dat.SHA384); + Assert.Equal(count, dat.SHA384.Length); + break; + case HashType.SHA512: + Assert.NotNull(dat.SHA512); + Assert.Equal(count, dat.SHA512.Length); + break; + case HashType.SpamSum: + Assert.NotNull(dat.SpamSum); + Assert.Equal(count, dat.SpamSum.Length); + break; + default: + throw new ArgumentOutOfRangeException(nameof(hash)); + } + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/ListromTests.cs b/SabreTools.Serialization.Test/Deserializers/ListromTests.cs index 79c86335..f8385ff9 100644 --- a/SabreTools.Serialization.Test/Deserializers/ListromTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/ListromTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,20 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-listrom-files.txt.gz", 45861)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.Listrom.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Set); + Assert.Equal(count, dat.Set.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/ListxmlTests.cs b/SabreTools.Serialization.Test/Deserializers/ListxmlTests.cs index b2ce38cb..20699b78 100644 --- a/SabreTools.Serialization.Test/Deserializers/ListxmlTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/ListxmlTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,21 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-listxml-files1.xml.gz", 45861)] + [InlineData("test-listxml-files2.xml", 3998)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.Listxml.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Game); + Assert.Equal(count, dat.Game.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/LogiqxTests.cs b/SabreTools.Serialization.Test/Deserializers/LogiqxTests.cs index 2d11b31d..c33c0a06 100644 --- a/SabreTools.Serialization.Test/Deserializers/LogiqxTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/LogiqxTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,21 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-logiqx-files1.xml.gz", 45875)] + [InlineData("test-logiqx-files2.xml", 761)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.Logiqx.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Game); + Assert.Equal(count, dat.Game.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/OfflineListTests.cs b/SabreTools.Serialization.Test/Deserializers/OfflineListTests.cs index 4d92298f..a8d8d730 100644 --- a/SabreTools.Serialization.Test/Deserializers/OfflineListTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/OfflineListTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,20 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-offlinelist-files.xml", 6750)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.OfflineList.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Games?.Game); + Assert.Equal(count, dat.Games.Game.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/OpenMSXTests.cs b/SabreTools.Serialization.Test/Deserializers/OpenMSXTests.cs index 954ec9bb..26ede74f 100644 --- a/SabreTools.Serialization.Test/Deserializers/OpenMSXTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/OpenMSXTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,21 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-openmsx-files.xml", 2550)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.OpenMSX.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat); + Assert.NotNull(dat.Software); + Assert.Equal(count, dat.Software.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/RomCenterTests.cs b/SabreTools.Serialization.Test/Deserializers/RomCenterTests.cs index 2e9d9734..185a0e4e 100644 --- a/SabreTools.Serialization.Test/Deserializers/RomCenterTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/RomCenterTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,20 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-romcenter-files.dat", 901)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.RomCenter.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat?.Games?.Rom); + Assert.Equal(count, dat.Games.Rom.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/SeparatedValueTests.cs b/SabreTools.Serialization.Test/Deserializers/SeparatedValueTests.cs index b43cee66..1c28daf2 100644 --- a/SabreTools.Serialization.Test/Deserializers/SeparatedValueTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/SeparatedValueTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,25 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-csv-files1.csv", ',', 2)] + [InlineData("test-csv-files2.csv", ',', 2)] + [InlineData("test-ssv-files1.ssv", ';', 2)] + [InlineData("test-ssv-files2.ssv", ';', 2)] + [InlineData("test-tsv-files1.tsv", '\t', 2)] + [InlineData("test-tsv-files2.tsv", '\t', 2)] + public void ValidFile_NonNull(string path, char delim, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.SeparatedValue.DeserializeFile(filename, delim); + + // Validate the values + Assert.NotNull(dat?.Row); + Assert.Equal(count, dat.Row.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/SoftwareListTests.cs b/SabreTools.Serialization.Test/Deserializers/SoftwareListTests.cs index a66507d8..4192a2a4 100644 --- a/SabreTools.Serialization.Test/Deserializers/SoftwareListTests.cs +++ b/SabreTools.Serialization.Test/Deserializers/SoftwareListTests.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using Xunit; @@ -68,5 +69,23 @@ namespace SabreTools.Serialization.Test.Deserializers var actual = deserializer.Deserialize(data); Assert.Null(actual); } + + [Theory] + [InlineData("test-softwarelist-files1.xml", 4531)] + [InlineData("test-softwarelist-files2.xml", 2797)] + [InlineData("test-softwarelist-files3.xml", 274)] + public void ValidFile_NonNull(string path, long count) + { + // Open the file for reading + string filename = Path.Combine(Environment.CurrentDirectory, "TestData", path); + + // Deserialize the file + var dat = Serialization.Deserializers.SoftwareList.DeserializeFile(filename); + + // Validate the values + Assert.NotNull(dat); + Assert.NotNull(dat.Software); + Assert.Equal(count, dat.Software.Length); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization.Test/MetadataDeserializationTests.cs b/SabreTools.Serialization.Test/MetadataDeserializationTests.cs deleted file mode 100644 index ec659ebd..00000000 --- a/SabreTools.Serialization.Test/MetadataDeserializationTests.cs +++ /dev/null @@ -1,313 +0,0 @@ -using System; -using System.IO; -using SabreTools.Hashing; -using SabreTools.Serialization.Deserializers; -using Xunit; - -namespace SabreTools.Serialization.Test -{ - /// - /// Filenames that end in `-files` are real examples. - /// All other files are artificial and may not fully represent real examples. - /// - public class MetadataDeserializationTests - { - [Theory] - [InlineData("test-archivedotorg-files1.xml", 22)] - [InlineData("test-archivedotorg-files2.xml", 13)] - [InlineData("test-archivedotorg-files3.xml", 21)] - [InlineData("test-archivedotorg-files4.xml", 19)] - [InlineData("test-archivedotorg-files5.xml", 1390)] - public void ArchiveDotOrgDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = ArchiveDotOrg.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.File); - Assert.Equal(count, dat.File.Length); - - // Validate we're not missing any attributes or elements - foreach (var file in dat.File) - { - Assert.NotNull(file); - } - } - - [Theory] - [InlineData("test-attractmode-files.txt", 11)] - public void AttractModeDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = AttractMode.DeserializeFile(filename); - - // Validate texpected: he values - Assert.NotNull(dat?.Row); - Assert.Equal(count, dat.Row.Length); - - // Validate we're not missing any attributes or elements - foreach (var file in dat.Row) - { - Assert.NotNull(file); - } - } - - [Theory] - [InlineData("test-cmp-files1.dat", 59, true)] - [InlineData("test-cmp-files2.dat", 312, false)] - public void ClrMameProDeserializeTest(string path, long count, bool expectHeader) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = ClrMamePro.DeserializeFile(filename, quotes: true); - - // Validate the values - if (expectHeader) - Assert.NotNull(dat?.ClrMamePro); - else - Assert.Null(dat?.ClrMamePro); - - Assert.NotNull(dat?.Game); - Assert.Equal(count, dat.Game.Length); - } - - [Theory] - [InlineData("test-doscenter-files1.dat.gz", 34965)] - [InlineData("test-doscenter-files2.dat.gz", 7189)] - public void DosCenterDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = DosCenter.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.DosCenter); - - Assert.NotNull(dat?.Game); - Assert.Equal(count, dat.Game.Length); - - foreach (var game in dat.Game) - { - Assert.NotNull(game.File); - } - } - - [Theory] - [InlineData("test-smdb-files.txt", 6113)] - public void EverdriveSMDBDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = EverdriveSMDB.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Row); - Assert.Equal(count, dat.Row.Length); - } - - [Theory] - [InlineData("test-sfv-files.sfv", HashType.CRC32, 100)] - [InlineData("test-md5-files.md5", HashType.MD5, 100)] - [InlineData("test-sha1-files.sha1", HashType.SHA1, 100)] - [InlineData("test-sha256.sha256", HashType.SHA256, 1)] - [InlineData("test-sha384.sha384", HashType.SHA384, 1)] - [InlineData("test-sha512.sha512", HashType.SHA512, 1)] - [InlineData("test-spamsum.spamsum", HashType.SpamSum, 1)] - public void HashfileDeserializeTest(string path, HashType hash, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = Hashfile.DeserializeFile(filename, hash); - - // Validate the values - Assert.NotNull(dat); - - switch (hash) - { - case HashType.CRC32: - Assert.NotNull(dat.SFV); - Assert.Equal(count, dat.SFV.Length); - break; - case HashType.MD5: - Assert.NotNull(dat.MD5); - Assert.Equal(count, dat.MD5.Length); - break; - case HashType.SHA1: - Assert.NotNull(dat.SHA1); - Assert.Equal(count, dat.SHA1.Length); - break; - case HashType.SHA256: - Assert.NotNull(dat.SHA256); - Assert.Equal(count, dat.SHA256.Length); - break; - case HashType.SHA384: - Assert.NotNull(dat.SHA384); - Assert.Equal(count, dat.SHA384.Length); - break; - case HashType.SHA512: - Assert.NotNull(dat.SHA512); - Assert.Equal(count, dat.SHA512.Length); - break; - case HashType.SpamSum: - Assert.NotNull(dat.SpamSum); - Assert.Equal(count, dat.SpamSum.Length); - break; - default: - throw new ArgumentOutOfRangeException(nameof(hash)); - } - } - - [Theory] - [InlineData("test-listrom-files.txt.gz", 45861)] - public void ListromDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = Listrom.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Set); - Assert.Equal(count, dat.Set.Length); - } - - [Theory] - [InlineData("test-listxml-files1.xml.gz", 45861)] - [InlineData("test-listxml-files2.xml", 3998)] - public void ListxmlDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = Listxml.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Game); - Assert.Equal(count, dat.Game.Length); - } - - [Theory] - [InlineData("test-logiqx-files1.xml.gz", 45875)] - [InlineData("test-logiqx-files2.xml", 761)] - public void LogiqxDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = Logiqx.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Game); - Assert.Equal(count, dat.Game.Length); - } - - [Theory] - [InlineData("test-offlinelist-files.xml", 6750)] - public void OfflineListDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = OfflineList.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Games?.Game); - Assert.Equal(count, dat.Games.Game.Length); - } - - [Theory] - [InlineData("test-openmsx-files.xml", 2550)] - public void OpenMSXDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = OpenMSX.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat); - Assert.NotNull(dat.Software); - Assert.Equal(count, dat.Software.Length); - } - - [Theory] - [InlineData("test-romcenter-files.dat", 901)] - public void RomCenterDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = RomCenter.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat?.Games?.Rom); - Assert.Equal(count, dat.Games.Rom.Length); - } - - [Theory] - [InlineData("test-csv-files1.csv", ',', 2)] - [InlineData("test-csv-files2.csv", ',', 2)] - [InlineData("test-ssv-files1.ssv", ';', 2)] - [InlineData("test-ssv-files2.ssv", ';', 2)] - [InlineData("test-tsv-files1.tsv", '\t', 2)] - [InlineData("test-tsv-files2.tsv", '\t', 2)] - public void SeparatedValueDeserializeTest(string path, char delim, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = SeparatedValue.DeserializeFile(filename, delim); - - // Validate the values - Assert.NotNull(dat?.Row); - Assert.Equal(count, dat.Row.Length); - } - - [Theory] - [InlineData("test-softwarelist-files1.xml", 4531)] - [InlineData("test-softwarelist-files2.xml", 2797)] - [InlineData("test-softwarelist-files3.xml", 274)] - public void SoftwareListDeserializeTest(string path, long count) - { - // Open the file for reading - string filename = GetTestFilePath(path); - - // Deserialize the file - var dat = SoftwareList.DeserializeFile(filename); - - // Validate the values - Assert.NotNull(dat); - Assert.NotNull(dat.Software); - Assert.Equal(count, dat.Software.Length); - } - - /// - /// Get the path to the test file - /// - private static string GetTestFilePath(string path) - { - return Path.Combine(Environment.CurrentDirectory, "TestData", path); - } - } -} \ No newline at end of file