// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. using System; using System.IO; using System.Threading.Tasks; using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.Formats.Bmp; using SixLabors.ImageSharp.PixelFormats; using Xunit; namespace SixLabors.ImageSharp.Tests { public partial class ImageTests { public class Load_FileSystemPath_UseDefaultConfiguration { private string Path { get; } = TestFile.GetInputFileFullPath(TestImages.Bmp.Bit8); private static void VerifyDecodedImage(Image img) => Assert.Equal(new Size(127, 64), img.Size()); [Fact] public void Path_Specific() { using var img = Image.Load(this.Path); VerifyDecodedImage(img); } [Fact] public void Path_Agnostic() { using var img = Image.Load(this.Path); VerifyDecodedImage(img); } [Fact] public async Task Path_Agnostic_Async() { using Image img = await Image.LoadAsync(this.Path); VerifyDecodedImage(img); } [Fact] public async Task Path_Specific_Async() { using Image img = await Image.LoadAsync(this.Path); VerifyDecodedImage(img); } [Fact] public async Task Path_Agnostic_Configuration_Async() { using Image img = await Image.LoadAsync(this.Path); VerifyDecodedImage(img); } [Fact] public void Path_OutFormat_Specific() { using var img = Image.Load(this.Path, out IImageFormat format); VerifyDecodedImage(img); Assert.IsType(format); } [Fact] public void Path_OutFormat_Agnostic() { using var img = Image.Load(this.Path, out IImageFormat format); VerifyDecodedImage(img); Assert.IsType(format); } [Fact] public void WhenFileNotFound_Throws() => Assert.Throws(() => Image.Load(Guid.NewGuid().ToString())); [Fact] public void WhenPathIsNull_Throws() => Assert.Throws(() => Image.Load((string)null)); [Fact] public Task Async_WhenFileNotFound_Throws() => Assert.ThrowsAsync(() => Image.LoadAsync(Guid.NewGuid().ToString())); [Fact] public Task Async_WhenPathIsNull_Throws() => Assert.ThrowsAsync(() => Image.LoadAsync((string)null)); } } }