From b07e3e78e085272c6fe19635201ac1f66f1cf138 Mon Sep 17 00:00:00 2001 From: Zac Gaetano Date: Thu, 7 May 2026 15:10:29 +0000 Subject: [PATCH] feat(domain): add core enums (NdiSourceKind, IsoState, AspectMode, AudioMode, TargetFramerate, TargetResolution) --- src/TeamsISO.Engine/Domain/Enums.cs | 51 +++++++++++++++++++ .../Domain/EnumSanityTests.cs | 40 +++++++++++++++ .../TeamsISO.Engine.Tests/GlobalUsings.cs | 2 + 3 files changed, 93 insertions(+) create mode 100644 src/TeamsISO.Engine/Domain/Enums.cs create mode 100644 src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs create mode 100644 src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs diff --git a/src/TeamsISO.Engine/Domain/Enums.cs b/src/TeamsISO.Engine/Domain/Enums.cs new file mode 100644 index 0000000..e18418b --- /dev/null +++ b/src/TeamsISO.Engine/Domain/Enums.cs @@ -0,0 +1,51 @@ +namespace TeamsISO.Engine.Domain; + +public enum NdiSourceKind +{ + Participant, + ActiveSpeaker, + Audio, + ScreenShare +} + +public enum IsoState +{ + Idle, + Receiving, + Sending, + NoSignal, + Error +} + +public enum AspectMode +{ + Pillarbox, + Letterbox, + Stretch +} + +public enum AudioMode +{ + Auto, + Isolated, + Mixed +} + +public enum TargetFramerate +{ + Fps23_976, + Fps24, + Fps25, + Fps29_97, + Fps30, + Fps50, + Fps59_94, + Fps60 +} + +public enum TargetResolution +{ + R720p, + R1080p, + R4K +} diff --git a/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs b/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs new file mode 100644 index 0000000..1af3d28 --- /dev/null +++ b/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs @@ -0,0 +1,40 @@ +using TeamsISO.Engine.Domain; + +namespace TeamsISO.Engine.Tests.Domain; + +public class EnumSanityTests +{ + [Fact] + public void NdiSourceKind_HasExpectedMembers() + { + var values = Enum.GetValues(); + values.Should().Contain(new[] + { + NdiSourceKind.Participant, + NdiSourceKind.ActiveSpeaker, + NdiSourceKind.Audio, + NdiSourceKind.ScreenShare + }); + } + + [Fact] + public void IsoState_HasExpectedMembers() + { + var values = Enum.GetValues(); + values.Should().Contain(new[] + { + IsoState.Idle, + IsoState.Receiving, + IsoState.Sending, + IsoState.NoSignal, + IsoState.Error + }); + } + + [Fact] + public void TargetFramerate_HasAllSupportedRates() + { + var values = Enum.GetValues(); + values.Should().HaveCount(8); + } +} diff --git a/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs b/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs new file mode 100644 index 0000000..7b25ddd --- /dev/null +++ b/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs @@ -0,0 +1,2 @@ +global using FluentAssertions; +global using Xunit;