Improve OpenMSX test, add AttractMode test

This commit is contained in:
Matt Nadareski
2024-11-29 00:21:10 -05:00
parent ff12bf8205
commit f8239780b2
2 changed files with 64 additions and 15 deletions

View File

@@ -1,4 +1,5 @@
using System.IO;
using SabreTools.Hashing;
using SabreTools.Serialization.Serializers;
using Xunit;
@@ -21,5 +22,59 @@ namespace SabreTools.Serialization.Test.Serializers
Stream? actual = serializer.Serialize(null);
Assert.Null(actual);
}
[Fact]
public void SerializeStream_Valid_Filled()
{
// Create the object for serialization
var dat = Build();
// Deserialize the file
var actual = AttractMode.SerializeStream(dat);
actual?.Seek(0, SeekOrigin.Begin);
// Validate the values
Assert.NotNull(actual);
string? actualHash = HashTool.GetStreamHash(actual, HashType.SHA1);
Assert.NotNull(actualHash);
Assert.Equal("21e2e21306dca19a580fde4e273f63a063c2d117", actualHash);
}
private static Models.AttractMode.MetadataFile Build()
{
string[] header = ["header"];
var row = new Models.AttractMode.Row
{
Name = "XXXXXX",
Title = "XXXXXX",
Emulator = "XXXXXX",
CloneOf = "XXXXXX",
Year = "XXXXXX",
Manufacturer = "XXXXXX",
Category = "XXXXXX",
Players = "XXXXXX",
Rotation = "XXXXXX",
Control = "XXXXXX",
Status = "XXXXXX",
DisplayCount = "XXXXXX",
DisplayType = "XXXXXX",
AltRomname = "XXXXXX",
AltTitle = "XXXXXX",
Extra = "XXXXXX",
Buttons = "XXXXXX",
Favorite = "XXXXXX",
Tags = "XXXXXX",
PlayedCount = "XXXXXX",
PlayedTime = "XXXXXX",
FileIsAvailable = "XXXXXX",
};
return new Models.AttractMode.MetadataFile
{
Header = header,
Row = [row],
};
}
}
}

View File

@@ -1,6 +1,6 @@
using System;
using System.IO;
using System.Security.Cryptography;
using SabreTools.Hashing;
using SabreTools.Serialization.Serializers;
using Xunit;
@@ -28,24 +28,20 @@ namespace SabreTools.Serialization.Test.Serializers
public void SerializeStream_Valid_Filled()
{
// Create the object for serialization
var dat = GenerateOpenMSX();
var dat = Build();
// Deserialize the file
var stream = OpenMSX.SerializeStream(dat) as MemoryStream;
var actual = OpenMSX.SerializeStream(dat);
actual?.Seek(0, SeekOrigin.Begin);
// Validate the values
Assert.NotNull(stream);
byte[] hash = SHA1.HashData(stream.GetBuffer());
string hashstr = BitConverter.ToString(hash).Replace("-", string.Empty);
Assert.Equal("CCBFAAB56BAAF6BE56A85918055784A615379659", hashstr);
Assert.NotNull(actual);
string? actualHash = HashTool.GetStreamHash(actual, HashType.SHA1);
Assert.NotNull(actualHash);
Assert.Equal("285864811c15ad0f3b18c605c62ae3907f3e2f27", actualHash);
}
#region Payload Generators
/// <summary>
/// Generate a consistent OpenMSX SoftwareDb for testing
/// </summary>
private static Models.OpenMSX.SoftwareDb GenerateOpenMSX()
private static Models.OpenMSX.SoftwareDb Build()
{
var original = new Models.OpenMSX.Original
{
@@ -101,7 +97,5 @@ namespace SabreTools.Serialization.Test.Serializers
Software = [software],
};
}
#endregion
}
}