using FrameProcessor.Domain;

namespace FrameProcessor.Tests;

public class ResolutionTests
{
    [Fact]
    public void Constructor_StoresWidthAndHeight()
    {
        var resolution = new Resolution(1600, 1200);

        Assert.Equal(1600, resolution.Width);
        Assert.Equal(1200, resolution.Height);
    }

    [Fact]
    public void ForOrientation_Landscape_ReturnsSameDimensions()
    {
        var resolution = new Resolution(1600, 1200);

        var oriented = resolution.ForOrientation(Orientation.Landscape);

        Assert.Equal(1600, oriented.Width);
        Assert.Equal(1200, oriented.Height);
    }

    [Fact]
    public void ForOrientation_Portrait_SwapsWidthAndHeight()
    {
        var resolution = new Resolution(1600, 1200);

        var oriented = resolution.ForOrientation(Orientation.Portrait);

        Assert.Equal(1200, oriented.Width);
        Assert.Equal(1600, oriented.Height);
    }

    [Fact]
    public void Equality_BasedOnWidthAndHeight()
    {
        Assert.Equal(new Resolution(1600, 1200), new Resolution(1600, 1200));
        Assert.NotEqual(new Resolution(1600, 1200), new Resolution(1200, 1600));
    }
}
