dragon-iso/src/tests/TeamsISO.Engine.Tests
Zac Gaetano ca124540a7 fix(parser): accept 'MS Teams' brand prefix from current Teams NDI broadcasts
The new Microsoft Teams desktop client (observed against a live meeting on Teams 26106.1906.4665.7308) emits NDI source strings of the form

    WOOGLIN (MS Teams - Brendon Power)

    WOOGLIN (MS Teams - (Local))

    WOOGLIN (MS Teams - Active Speaker)

rather than the legacy 'MACHINE (Teams - ...)' shape NdiSourceParser was written to. As a result every Teams source was rejected and TeamsISO showed zero participants in real meetings.

Refactor the parser to recognize 'Teams', 'MS Teams', and (defensively) 'Microsoft Teams' as brand prefixes — longest first so 'MS Teams' isn't shadowed. Also recognize reserved suffix tokens after a dash ('Active Speaker' / 'Audio' / 'Audio Mix' / 'Screen Share') so the new active-speaker output is correctly classified as ActiveSpeaker rather than misread as a participant named 'Active Speaker'.

Tests: kept all legacy cases, added MS Teams + Microsoft Teams variants and the new dash-prefixed reserved-suffix cases. 69/69 unit tests passing; verified end-to-end against a live Teams meeting where TeamsISO.exe now shows '(Local)' and 'Brendon Power' in the Participants DataGrid.
2026-05-07 23:33:43 -04:00
..
Controller feat(controller): add IIsoController and IsoController implementation 2026-05-07 15:28:27 +00:00
Discovery feat(discovery): add NdiDiscoveryService with diff-based event emission 2026-05-07 15:14:15 +00:00
Domain fix(parser): accept 'MS Teams' brand prefix from current Teams NDI broadcasts 2026-05-07 23:33:43 -04:00
Fakes test(fakes): add FakeNdiInterop and FakeFrameClock; feat(discovery): add DiscoveryEvent 2026-05-07 15:13:00 +00:00
Interop feat(interop): add NdiRuntimeProbe with version-mismatch result 2026-05-07 15:24:31 +00:00
Persistence feat(persistence): add ConfigStore with atomic JSON writes and corruption-safe load 2026-05-07 15:12:01 +00:00
Pipeline feat(pipeline): add managed BGRA nearest-neighbor scaler with aspect modes 2026-05-07 15:37:07 +00:00
GlobalUsings.cs feat(domain): add core enums (NdiSourceKind, IsoState, AspectMode, AudioMode, TargetFramerate, TargetResolution) 2026-05-07 15:10:29 +00:00
SmokeTest.cs test(engine): scaffold TeamsISO.Engine.Tests xUnit project 2026-05-07 15:08:38 +00:00
TeamsISO.Engine.Tests.csproj test(engine): scaffold TeamsISO.Engine.Tests xUnit project 2026-05-07 15:08:38 +00:00