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:
@@ -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));
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user