diff --git a/tests/ImageSharp.Tests/IO/ChunkedMemoryStreamTests.cs b/tests/ImageSharp.Tests/IO/ChunkedMemoryStreamTests.cs index ceef8f7ff..00a178c8f 100644 --- a/tests/ImageSharp.Tests/IO/ChunkedMemoryStreamTests.cs +++ b/tests/ImageSharp.Tests/IO/ChunkedMemoryStreamTests.cs @@ -297,32 +297,36 @@ namespace SixLabors.ImageSharp.Tests.IO Assert.Equal(expected, destination.ToArray()); } - public static TheoryData GetAllTestImages() + public static IEnumerable GetAllTestImages() { IEnumerable allImageFiles = Directory.EnumerateFiles(TestEnvironment.InputImagesDirectoryFullPath, "*.*", SearchOption.AllDirectories) .Where(s => !s.EndsWith("txt", StringComparison.OrdinalIgnoreCase)); - var result = new TheoryData(); + + var result = new List(); foreach (string path in allImageFiles) { - result.Add(path); + result.Add(path.Substring(TestEnvironment.InputImagesDirectoryFullPath.Length)); } return result; } + public static IEnumerable AllTestImages = GetAllTestImages(); + [Theory] - [MemberData(nameof(GetAllTestImages))] - public void DecoderIntegrationTest(string testFileFullPath) + [WithFileCollection(nameof(AllTestImages), PixelTypes.Rgba32)] + public void DecoderIntegrationTest(TestImageProvider provider) + where TPixel : unmanaged, IPixel { if (!TestEnvironment.Is64BitProcess) { return; } - Image expected; + Image expected; try { - expected = Image.Load(testFileFullPath); + expected = provider.GetImage(); } catch { @@ -330,10 +334,14 @@ namespace SixLabors.ImageSharp.Tests.IO return; } - using FileStream fs = File.OpenRead(testFileFullPath); + string fullPath = Path.Combine( + TestEnvironment.InputImagesDirectoryFullPath, + ((TestImageProvider.FileProvider)provider).FilePath); + + using FileStream fs = File.OpenRead(fullPath); using var nonSeekableStream = new NonSeekableStream(fs); - var actual = Image.Load(nonSeekableStream); + var actual = Image.Load(nonSeekableStream); ImageComparer.Exact.VerifySimilarity(expected, actual); } diff --git a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/FileProvider.cs b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/FileProvider.cs index 440baaa63..f57c19f12 100644 --- a/tests/ImageSharp.Tests/TestUtilities/ImageProviders/FileProvider.cs +++ b/tests/ImageSharp.Tests/TestUtilities/ImageProviders/FileProvider.cs @@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.Tests public abstract partial class TestImageProvider : IXunitSerializable where TPixel : unmanaged, IPixel { - private class FileProvider : TestImageProvider, IXunitSerializable + internal class FileProvider : TestImageProvider, IXunitSerializable { // Need PixelTypes in the dictionary key, because result images of TestImageProvider.FileProvider // are shared between PixelTypes.Color & PixelTypes.Rgba32