using System; using System.IO; using System.Linq; using SabreTools.Serialization.Wrappers; using Xunit; #pragma warning disable xUnit1004 // Test methods should not be skipped namespace SabreTools.Serialization.Test.Wrappers { public class RARTests { [Fact] public void NullArray_Null() { byte[]? data = null; int offset = 0; var actual = RAR.Create(data, offset); Assert.Null(actual); } [Fact] public void EmptyArray_Null() { byte[]? data = []; int offset = 0; var actual = RAR.Create(data, offset); Assert.Null(actual); } [Fact(Skip = "This will never pass with the current code")] public void InvalidArray_Null() { byte[]? data = [.. Enumerable.Repeat(0xFF, 1024)]; int offset = 0; var actual = RAR.Create(data, offset); Assert.Null(actual); } [Fact] public void NullStream_Null() { Stream? data = null; var actual = RAR.Create(data); Assert.Null(actual); } [Fact(Skip = "This will never pass with the current code")] public void EmptyStream_Null() { Stream? data = new MemoryStream([]); var actual = RAR.Create(data); Assert.Null(actual); } [Fact(Skip = "This will never pass with the current code")] public void InvalidStream_Null() { Stream? data = new MemoryStream([.. Enumerable.Repeat(0xFF, 1024)]); var actual = RAR.Create(data); Assert.Null(actual); } #region FindParts [Theory] [InlineData("single.rar", 1)] [InlineData("multi-old.rar", 4)] [InlineData("multi-new.part01.rar", 3)] [InlineData("multi-split.rar.001", 3)] public void FindPartsTest(string filename, int expectedParts) { string firstPart = Path.Combine(Environment.CurrentDirectory, "TestData", "RAR", filename); var actual = RAR.FindParts(firstPart); Assert.Equal(expectedParts, actual.Count); } #endregion } }