diff --git a/Models/Source.cs b/Models/Source.cs index 11b3d58..acbc509 100644 --- a/Models/Source.cs +++ b/Models/Source.cs @@ -37,6 +37,7 @@ public class Source : SceneElement { if (Set(ref _type, value)) { + IsBackground = value == SourceType.Background; Raise(nameof(IsLiveCapture)); Raise(nameof(DisplaySource)); Raise(nameof(IsWebSource)); diff --git a/ytLive.Tests/BackgroundTests.cs b/ytLive.Tests/BackgroundTests.cs index 6b2d937..3c09985 100644 --- a/ytLive.Tests/BackgroundTests.cs +++ b/ytLive.Tests/BackgroundTests.cs @@ -122,4 +122,42 @@ public class BackgroundTests Assert.Contains(nameof(Source.IsLiveCapture), raised); Assert.Contains(nameof(Source.DisplaySource), raised); } + + [Fact] + public void AllScenes_BackgroundElement_HasIsBackgroundTrue() + { + foreach (var name in SceneCatalog.All) + { + var scene = new Scene { Name = name, HasBackground = SceneCatalog.HasBackground(name) }; + var bg = new Source { Name = "Background", Type = SourceType.Background }; + scene.Elements.Add(bg); + + Assert.True(bg.IsBackground, + $"{name}: Background element must have IsBackground = true for properties panel"); + } + } + + [Fact] + public void AllScenes_BackgroundElement_IsBackgroundDerivedFromType() + { + var bg = new Source { Type = SourceType.Background }; + Assert.True(bg.IsBackground); + + var nonBg = new Source { Type = SourceType.Image }; + Assert.False(nonBg.IsBackground); + + var display = new Source { Type = SourceType.DisplayCapture }; + Assert.False(display.IsBackground); + } + + [Fact] + public void AllScenes_BackgroundElement_SupportsUseDefaultBackground() + { + foreach (var name in SceneCatalog.All) + { + var scene = new Scene { Name = name }; + Assert.True(scene.UseDefaultBackground, + $"{name}: Scene must default to UseDefaultBackground = true"); + } + } }