mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-02-17 21:49:39 +00:00
90 lines
2.4 KiB
C#
90 lines
2.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using SabreTools.Serialization.Deserializers;
|
|
using Xunit;
|
|
|
|
namespace SabreTools.Serialization.Test.Deserializers
|
|
{
|
|
public class OpenMSXTests
|
|
{
|
|
[Fact]
|
|
public void NullArray_Null()
|
|
{
|
|
byte[]? data = null;
|
|
int offset = 0;
|
|
var deserializer = new OpenMSX();
|
|
|
|
var actual = deserializer.Deserialize(data, offset);
|
|
Assert.Null(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void EmptyArray_Null()
|
|
{
|
|
byte[]? data = [];
|
|
int offset = 0;
|
|
var deserializer = new OpenMSX();
|
|
|
|
var actual = deserializer.Deserialize(data, offset);
|
|
Assert.Null(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void InvalidArray_Null()
|
|
{
|
|
byte[]? data = [.. Enumerable.Repeat<byte>(0xFF, 1024)];
|
|
int offset = 0;
|
|
var deserializer = new OpenMSX();
|
|
|
|
var actual = deserializer.Deserialize(data, offset);
|
|
Assert.Null(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void NullStream_Null()
|
|
{
|
|
Stream? data = null;
|
|
var deserializer = new OpenMSX();
|
|
|
|
var actual = deserializer.Deserialize(data);
|
|
Assert.Null(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void EmptyStream_Null()
|
|
{
|
|
Stream? data = new MemoryStream([]);
|
|
var deserializer = new OpenMSX();
|
|
|
|
var actual = deserializer.Deserialize(data);
|
|
Assert.Null(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void InvalidStream_Null()
|
|
{
|
|
Stream? data = new MemoryStream([.. Enumerable.Repeat<byte>(0xFF, 1024)]);
|
|
var deserializer = new OpenMSX();
|
|
|
|
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 = OpenMSX.DeserializeFile(filename);
|
|
|
|
// Validate the values
|
|
Assert.NotNull(dat);
|
|
Assert.NotNull(dat.Software);
|
|
Assert.Equal(count, dat.Software.Length);
|
|
}
|
|
}
|
|
} |