From a015e4df3f40927d502910c8405c4bd25ebcbd2e Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 2 Sep 2025 07:48:17 -0400 Subject: [PATCH] Add tests for new deserializers and wrappers --- .../Deserializers/WiseOverlayHeaderTests.cs | 73 +++++++++++++++++++ .../Deserializers/WiseScriptTests.cs | 73 +++++++++++++++++++ .../Deserializers/WiseSectionHeaderTests.cs | 73 +++++++++++++++++++ .../Wrappers/WiseOverlayHeaderTests.cs | 61 ++++++++++++++++ .../Wrappers/WiseScriptTests.cs | 61 ++++++++++++++++ .../Wrappers/WiseSectionHeaderTests.cs | 61 ++++++++++++++++ 6 files changed, 402 insertions(+) create mode 100644 SabreTools.Serialization.Test/Deserializers/WiseOverlayHeaderTests.cs create mode 100644 SabreTools.Serialization.Test/Deserializers/WiseScriptTests.cs create mode 100644 SabreTools.Serialization.Test/Deserializers/WiseSectionHeaderTests.cs create mode 100644 SabreTools.Serialization.Test/Wrappers/WiseOverlayHeaderTests.cs create mode 100644 SabreTools.Serialization.Test/Wrappers/WiseScriptTests.cs create mode 100644 SabreTools.Serialization.Test/Wrappers/WiseSectionHeaderTests.cs diff --git a/SabreTools.Serialization.Test/Deserializers/WiseOverlayHeaderTests.cs b/SabreTools.Serialization.Test/Deserializers/WiseOverlayHeaderTests.cs new file mode 100644 index 00000000..d6732f42 --- /dev/null +++ b/SabreTools.Serialization.Test/Deserializers/WiseOverlayHeaderTests.cs @@ -0,0 +1,73 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Deserializers; +using Xunit; + +namespace SabreTools.Serialization.Test.Deserializers +{ + public class WiseOverlayHeaderTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var deserializer = new WiseOverlayHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/WiseScriptTests.cs b/SabreTools.Serialization.Test/Deserializers/WiseScriptTests.cs new file mode 100644 index 00000000..aed5ddf6 --- /dev/null +++ b/SabreTools.Serialization.Test/Deserializers/WiseScriptTests.cs @@ -0,0 +1,73 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Deserializers; +using Xunit; + +namespace SabreTools.Serialization.Test.Deserializers +{ + public class WiseScriptTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var deserializer = new WiseScript(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/WiseSectionHeaderTests.cs b/SabreTools.Serialization.Test/Deserializers/WiseSectionHeaderTests.cs new file mode 100644 index 00000000..e3012ed7 --- /dev/null +++ b/SabreTools.Serialization.Test/Deserializers/WiseSectionHeaderTests.cs @@ -0,0 +1,73 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Deserializers; +using Xunit; + +namespace SabreTools.Serialization.Test.Deserializers +{ + public class WiseSectionHeaderTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var deserializer = new WiseSectionHeader(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Wrappers/WiseOverlayHeaderTests.cs b/SabreTools.Serialization.Test/Wrappers/WiseOverlayHeaderTests.cs new file mode 100644 index 00000000..f06e3375 --- /dev/null +++ b/SabreTools.Serialization.Test/Wrappers/WiseOverlayHeaderTests.cs @@ -0,0 +1,61 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Wrappers; +using Xunit; + +namespace SabreTools.Serialization.Test.Wrappers +{ + public class WiseOverlayHeaderTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var actual = WiseOverlayHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var actual = WiseOverlayHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var actual = WiseOverlayHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var actual = WiseOverlayHeader.Create(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var actual = WiseOverlayHeader.Create(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var actual = WiseOverlayHeader.Create(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Wrappers/WiseScriptTests.cs b/SabreTools.Serialization.Test/Wrappers/WiseScriptTests.cs new file mode 100644 index 00000000..7fbe9269 --- /dev/null +++ b/SabreTools.Serialization.Test/Wrappers/WiseScriptTests.cs @@ -0,0 +1,61 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Wrappers; +using Xunit; + +namespace SabreTools.Serialization.Test.Wrappers +{ + public class WiseScriptTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var actual = WiseScript.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var actual = WiseScript.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var actual = WiseScript.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var actual = WiseScript.Create(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var actual = WiseScript.Create(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var actual = WiseScript.Create(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Wrappers/WiseSectionHeaderTests.cs b/SabreTools.Serialization.Test/Wrappers/WiseSectionHeaderTests.cs new file mode 100644 index 00000000..3c6814c4 --- /dev/null +++ b/SabreTools.Serialization.Test/Wrappers/WiseSectionHeaderTests.cs @@ -0,0 +1,61 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Wrappers; +using Xunit; + +namespace SabreTools.Serialization.Test.Wrappers +{ + public class WiseSectionHeaderTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var actual = WiseSectionHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var actual = WiseSectionHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void InvalidArray_Null() + { + byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; + int offset = 0; + var actual = WiseSectionHeader.Create(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var actual = WiseSectionHeader.Create(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var actual = WiseSectionHeader.Create(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var actual = WiseSectionHeader.Create(data); + Assert.Null(actual); + } + } +} \ No newline at end of file