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