|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System.Drawing.Imaging.Tests;
public class ImageFormatTests
{
private static ImageFormat BmpImageFormat { get; } = new(new Guid("b96b3cab-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat EmfImageFormat { get; } = new(new Guid("b96b3cac-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat ExifImageFormat { get; } = new(new Guid("b96b3cb2-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat GifImageFormat { get; } = new(new Guid("b96b3cb0-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat TiffImageFormat { get; } = new(new Guid("b96b3cb1-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat PngImageFormat { get; } = new(new Guid("b96b3caf-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat MemoryBmpImageFormat { get; } = new(new Guid("b96b3caa-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat IconImageFormat { get; } = new(new Guid("b96b3cb5-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat JpegImageFormat { get; } = new(new Guid("b96b3cae-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat WmfImageFormat { get; } = new(new Guid("b96b3cad-0728-11d3-9d7b-0000f81ef32e"));
private static ImageFormat HeifImageFormat { get; } = new(new Guid("{b96b3cb6-0728-11d3-9d7b-0000f81ef32e}"));
private static ImageFormat WebpImageFormat { get; } = new(new Guid("{b96b3cb7-0728-11d3-9d7b-0000f81ef32e}"));
private static ImageFormat CustomImageFormat { get; } = new(new Guid("48749428-316f-496a-ab30-c819a92b3137"));
public static IEnumerable<object[]> ImageFormatGuidTestData
{
get
{
yield return new object[] { BmpImageFormat.Guid, ImageFormat.Bmp };
yield return new object[] { EmfImageFormat.Guid, ImageFormat.Emf };
yield return new object[] { ExifImageFormat.Guid, ImageFormat.Exif };
yield return new object[] { GifImageFormat.Guid, ImageFormat.Gif };
yield return new object[] { TiffImageFormat.Guid, ImageFormat.Tiff };
yield return new object[] { PngImageFormat.Guid, ImageFormat.Png };
yield return new object[] { MemoryBmpImageFormat.Guid, ImageFormat.MemoryBmp };
yield return new object[] { IconImageFormat.Guid, ImageFormat.Icon };
yield return new object[] { JpegImageFormat.Guid, ImageFormat.Jpeg };
yield return new object[] { WmfImageFormat.Guid, ImageFormat.Wmf };
#if NET
#pragma warning disable CA1416 // Validate platform compatibility
yield return new object[] { HeifImageFormat.Guid, ImageFormat.Heif };
yield return new object[] { WebpImageFormat.Guid, ImageFormat.Webp };
#pragma warning restore CA1416
#endif
yield return new object[] { new Guid("48749428-316f-496a-ab30-c819a92b3137"), CustomImageFormat };
}
}
public static IEnumerable<object[]> ImageFormatToStringTestData
{
get
{
yield return new object[] { "Bmp", ImageFormat.Bmp };
yield return new object[] { "Emf", ImageFormat.Emf };
yield return new object[] { "Exif", ImageFormat.Exif };
yield return new object[] { "Gif", ImageFormat.Gif };
yield return new object[] { "Tiff", ImageFormat.Tiff };
yield return new object[] { "Png", ImageFormat.Png };
yield return new object[] { "MemoryBMP", ImageFormat.MemoryBmp };
yield return new object[] { "Icon", ImageFormat.Icon };
yield return new object[] { "Jpeg", ImageFormat.Jpeg };
yield return new object[] { "Wmf", ImageFormat.Wmf };
#if NET
#pragma warning disable CA1416 // Validate platform compatibility
yield return new object[] { "Heif", ImageFormat.Heif };
yield return new object[] { "Webp", ImageFormat.Webp };
#pragma warning restore CA1416
#endif
yield return new object[] { "[ImageFormat: 48749428-316f-496a-ab30-c819a92b3137]", CustomImageFormat };
}
}
public static IEnumerable<object[]> ImageFromFileToStringTestData
{
get
{
yield return new object[] { Path.Combine("bitmaps", "nature24bits.gif"), "Gif" };
yield return new object[] { Path.Combine("bitmaps", "nature24bits.jpg"), "Jpeg" };
yield return new object[] { Path.Combine("bitmaps", "VisualPng.ico"), "Icon" };
yield return new object[] { Path.Combine("bitmaps", "almogaver32bits.tif"), "Tiff" };
}
}
public static IEnumerable<object[]> ImageFormatEqualsTestData
{
get
{
yield return new object[] { new ImageFormat(new Guid("48749428-316f-496a-ab30-c819a92b3137")), new ImageFormat(new Guid("48749428-316f-496a-ab30-c819a92b3137")), true };
yield return new object[] { new ImageFormat(new Guid("48749428-316f-496a-ab30-c819a92b3137")), new ImageFormat(new Guid("b96b3cad-0728-11d3-9d7b-0000f81ef32e")), false };
yield return new object[] { new ImageFormat(new Guid("48749428-316f-496a-ab30-c819a92b3137")), null, false };
yield return new object[] { new ImageFormat(new Guid("48749428-316f-496a-ab30-c819a92b3137")), new(), false };
}
}
[Theory]
[MemberData(nameof(ImageFormatGuidTestData))]
public void Guid_ReturnsExpected(Guid expectedGuid, ImageFormat imageFormat)
{
Assert.Equal(expectedGuid, imageFormat.Guid);
}
[Theory]
[MemberData(nameof(ImageFormatToStringTestData))]
public void ToString_ReturnsExpected(string expected, ImageFormat imageFormat)
{
Assert.Equal(expected, imageFormat.ToString());
}
[Theory]
[MemberData(nameof(ImageFromFileToStringTestData))]
public void Image_RawFormat_ToString(string path, string expected)
{
var img = Image.FromFile(path);
Assert.Equal(expected, img.RawFormat.ToString());
}
[Theory]
[MemberData(nameof(ImageFormatEqualsTestData))]
public void Equals_Object_ReturnsExpected(ImageFormat imageFormat, object obj, bool result)
{
Assert.Equal(result, imageFormat.Equals(obj));
}
[Fact]
public void GetHashCode_Success()
{
Guid guid = Guid.NewGuid();
Assert.Equal(guid.GetHashCode(), new ImageFormat(guid).GetHashCode());
}
}
|