aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Model.Tests/Drawing/ImageFormatExtensionsTests.cs
blob: 198ad5a27442fb4c619338e085cee1afebbc3017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.ComponentModel;
using MediaBrowser.Model.Drawing;
using Xunit;

namespace Jellyfin.Model.Drawing;

public static class ImageFormatExtensionsTests
{
    public static TheoryData<ImageFormat> GetAllImageFormats()
    {
        var theoryTypes = new TheoryData<ImageFormat>();
        foreach (var x in Enum.GetValues<ImageFormat>())
        {
            theoryTypes.Add(x);
        }

        return theoryTypes;
    }

    [Theory]
    [MemberData(nameof(GetAllImageFormats))]
    public static void GetMimeType_Valid_Valid(ImageFormat format)
        => Assert.Null(Record.Exception(() => format.GetMimeType()));

    [Theory]
    [InlineData((ImageFormat)int.MinValue)]
    [InlineData((ImageFormat)int.MaxValue)]
    [InlineData((ImageFormat)(-1))]
    [InlineData((ImageFormat)5)]
    public static void GetMimeType_Valid_ThrowsInvalidEnumArgumentException(ImageFormat format)
        => Assert.Throws<InvalidEnumArgumentException>(() => format.GetMimeType());

    [Theory]
    [MemberData(nameof(GetAllImageFormats))]
    public static void GetExtension_Valid_Valid(ImageFormat format)
        => Assert.Null(Record.Exception(() => format.GetExtension()));

    [Theory]
    [InlineData((ImageFormat)int.MinValue)]
    [InlineData((ImageFormat)int.MaxValue)]
    [InlineData((ImageFormat)(-1))]
    [InlineData((ImageFormat)5)]
    public static void GetExtension_Valid_ThrowsInvalidEnumArgumentException(ImageFormat format)
        => Assert.Throws<InvalidEnumArgumentException>(() => format.GetExtension());
}