using DragonISO.Engine.Domain;

namespace DragonISO.Engine.Tests.Domain;

public class EnumSanityTests
{
    [Fact]
    public void NdiSourceKind_HasExpectedMembers()
    {
        var values = Enum.GetValues<NdiSourceKind>();
        values.Should().Contain(new[]
        {
            NdiSourceKind.Participant,
            NdiSourceKind.ActiveSpeaker,
            NdiSourceKind.Audio,
            NdiSourceKind.ScreenShare
        });
    }

    [Fact]
    public void IsoState_HasExpectedMembers()
    {
        var values = Enum.GetValues<IsoState>();
        values.Should().Contain(new[]
        {
            IsoState.Idle,
            IsoState.Receiving,
            IsoState.Sending,
            IsoState.NoSignal,
            IsoState.Error
        });
    }

    [Fact]
    public void TargetFramerate_HasAllSupportedRates()
    {
        var values = Enum.GetValues<TargetFramerate>();
        values.Should().HaveCount(8);
    }
}
