mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
88 lines
2.7 KiB
C#
88 lines
2.7 KiB
C#
using System;
|
|
using Xunit;
|
|
|
|
namespace SabreTools.Test.Parser
|
|
{
|
|
public class SerializationTests
|
|
{
|
|
[Fact]
|
|
public void OpenMSXSeserializeTest()
|
|
{
|
|
// Create the object for serialization
|
|
var dat = GenerateOpenMSX();
|
|
|
|
// Deserialize the file
|
|
var stream = Serialization.OpenMSX.SerializeToStream(dat) as System.IO.MemoryStream;
|
|
|
|
// Validate the values
|
|
Assert.NotNull(stream);
|
|
byte[] hash = System.Security.Cryptography.SHA1.Create().ComputeHash(stream.GetBuffer());
|
|
string hashstr = BitConverter.ToString(hash).Replace("-", string.Empty);
|
|
Assert.Equal("195D11C8A93D73F9FBF1ECD8166D80D7BB1B0974", hashstr);
|
|
}
|
|
|
|
#region Payload Generators
|
|
|
|
/// <summary>
|
|
/// Generate a consistent OpenMSX SoftwareDb for testing
|
|
/// </summary>
|
|
private static Models.OpenMSX.SoftwareDb GenerateOpenMSX()
|
|
{
|
|
var original = new Models.OpenMSX.Original
|
|
{
|
|
Value = false,
|
|
Content = "Original Name",
|
|
};
|
|
|
|
var rom = new Models.OpenMSX.Rom
|
|
{
|
|
Start = "0x0000",
|
|
Type = "Game",
|
|
Hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
|
Remark = "Comment",
|
|
};
|
|
|
|
var megaRom = new Models.OpenMSX.MegaRom
|
|
{
|
|
Start = "0x1000",
|
|
Type = "Software",
|
|
Hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
|
Remark = "Comment",
|
|
};
|
|
|
|
var sccPlusCart = new Models.OpenMSX.SCCPlusCart
|
|
{
|
|
Start = "0x2000",
|
|
Type = "Utility",
|
|
Hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709",
|
|
Remark = "Comment",
|
|
};
|
|
|
|
var dump = new Models.OpenMSX.Dump[]
|
|
{
|
|
new Models.OpenMSX.Dump { Original = original, Rom = rom },
|
|
new Models.OpenMSX.Dump { Rom = megaRom },
|
|
new Models.OpenMSX.Dump { Rom = sccPlusCart },
|
|
};
|
|
|
|
var software = new Models.OpenMSX.Software
|
|
{
|
|
Title = "Software Title",
|
|
GenMSXID = "00000", // Not required
|
|
System = "MSX 2",
|
|
Company = "Imaginary Company, Inc.",
|
|
Year = "19xx",
|
|
Country = "Imaginaria",
|
|
Dump = dump,
|
|
};
|
|
|
|
return new Models.OpenMSX.SoftwareDb
|
|
{
|
|
Timestamp = "1234567890",
|
|
Software = new Models.OpenMSX.Software[] { software },
|
|
};
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |