From cbd335c6aacbf1d18ca2d8adaa73c2b4ddd6a72d Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 28 Aug 2025 10:12:08 -0400 Subject: [PATCH] Add and update tests --- .../Deserializers/GZipTests.cs | 73 +++++++++++++++++++ .../Deserializers/TapeArchiveTests.cs | 73 +++++++++++++++++++ .../Wrappers/GZipTests.cs | 6 +- .../Wrappers/TapeArchiveTests.cs | 6 +- .../Deserializers/TapeArchive.cs | 4 + 5 files changed, 156 insertions(+), 6 deletions(-) create mode 100644 SabreTools.Serialization.Test/Deserializers/GZipTests.cs create mode 100644 SabreTools.Serialization.Test/Deserializers/TapeArchiveTests.cs diff --git a/SabreTools.Serialization.Test/Deserializers/GZipTests.cs b/SabreTools.Serialization.Test/Deserializers/GZipTests.cs new file mode 100644 index 00000000..54eece86 --- /dev/null +++ b/SabreTools.Serialization.Test/Deserializers/GZipTests.cs @@ -0,0 +1,73 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Deserializers; +using Xunit; + +namespace SabreTools.Serialization.Test.Deserializers +{ + public class GZipTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var deserializer = new GZip(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var deserializer = new GZip(); + + 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 GZip(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var deserializer = new GZip(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var deserializer = new GZip(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var deserializer = new GZip(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Deserializers/TapeArchiveTests.cs b/SabreTools.Serialization.Test/Deserializers/TapeArchiveTests.cs new file mode 100644 index 00000000..487367d8 --- /dev/null +++ b/SabreTools.Serialization.Test/Deserializers/TapeArchiveTests.cs @@ -0,0 +1,73 @@ +using System.IO; +using System.Linq; +using SabreTools.Serialization.Deserializers; +using Xunit; + +namespace SabreTools.Serialization.Test.Deserializers +{ + public class TapeArchiveTests + { + [Fact] + public void NullArray_Null() + { + byte[]? data = null; + int offset = 0; + var deserializer = new TapeArchive(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void EmptyArray_Null() + { + byte[]? data = []; + int offset = 0; + var deserializer = new TapeArchive(); + + 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 TapeArchive(); + + var actual = deserializer.Deserialize(data, offset); + Assert.Null(actual); + } + + [Fact] + public void NullStream_Null() + { + Stream? data = null; + var deserializer = new TapeArchive(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void EmptyStream_Null() + { + Stream? data = new MemoryStream([]); + var deserializer = new TapeArchive(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + + [Fact] + public void InvalidStream_Null() + { + Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); + var deserializer = new TapeArchive(); + + var actual = deserializer.Deserialize(data); + Assert.Null(actual); + } + } +} \ No newline at end of file diff --git a/SabreTools.Serialization.Test/Wrappers/GZipTests.cs b/SabreTools.Serialization.Test/Wrappers/GZipTests.cs index d674bb12..3e0843a1 100644 --- a/SabreTools.Serialization.Test/Wrappers/GZipTests.cs +++ b/SabreTools.Serialization.Test/Wrappers/GZipTests.cs @@ -25,7 +25,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void InvalidArray_Null() { byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; @@ -42,7 +42,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void EmptyStream_Null() { Stream? data = new MemoryStream([]); @@ -50,7 +50,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void InvalidStream_Null() { Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); diff --git a/SabreTools.Serialization.Test/Wrappers/TapeArchiveTests.cs b/SabreTools.Serialization.Test/Wrappers/TapeArchiveTests.cs index 45aefd48..84468b46 100644 --- a/SabreTools.Serialization.Test/Wrappers/TapeArchiveTests.cs +++ b/SabreTools.Serialization.Test/Wrappers/TapeArchiveTests.cs @@ -25,7 +25,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void InvalidArray_Null() { byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; @@ -42,7 +42,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void EmptyStream_Null() { Stream? data = new MemoryStream([]); @@ -50,7 +50,7 @@ namespace SabreTools.Serialization.Test.Wrappers Assert.Null(actual); } - [Fact(Skip = "This will never pass with the current code")] + [Fact] public void InvalidStream_Null() { Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); diff --git a/SabreTools.Serialization/Deserializers/TapeArchive.cs b/SabreTools.Serialization/Deserializers/TapeArchive.cs index c9d7faae..976db428 100644 --- a/SabreTools.Serialization/Deserializers/TapeArchive.cs +++ b/SabreTools.Serialization/Deserializers/TapeArchive.cs @@ -37,6 +37,10 @@ namespace SabreTools.Serialization.Deserializers entries.Add(entry); } + // No entires indicates invalid + if (entries.Count == 0) + return null; + // Assign the entries archive.Entries = [.. entries];