Fix: IsBackground derived from SourceType + per-scene background property tests

- Source.Type setter auto-sets IsBackground = true when Type is Background
- SceneElement.IsBackground: expression-bodied → virtual auto-property
- Source.IsBackground: new → override (WPF binding fix)
- Three new tests: IsBackground per-scene, derived from type, UseDefaultBackground default
This commit is contained in:
2026-08-22 18:16:11 -07:00
parent bb7f99a747
commit b74f15ff14
2 changed files with 39 additions and 0 deletions
+1
View File
@@ -37,6 +37,7 @@ public class Source : SceneElement
{ {
if (Set(ref _type, value)) if (Set(ref _type, value))
{ {
IsBackground = value == SourceType.Background;
Raise(nameof(IsLiveCapture)); Raise(nameof(IsLiveCapture));
Raise(nameof(DisplaySource)); Raise(nameof(DisplaySource));
Raise(nameof(IsWebSource)); Raise(nameof(IsWebSource));
+38
View File
@@ -122,4 +122,42 @@ public class BackgroundTests
Assert.Contains(nameof(Source.IsLiveCapture), raised); Assert.Contains(nameof(Source.IsLiveCapture), raised);
Assert.Contains(nameof(Source.DisplaySource), 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");
}
}
} }