- Assert DrawMode values (not just File) in the existing named-vs-direct test - Add ActiveMedia_NoMedia_ReturnsZero: empty StateMedia → (0,0) - Add ActiveMedia_MissingNamedState_FallsBackToDirect: absent named key → DirectState - OnDraw: replace `var (file, drawMode) = ...; _ = drawMode;` with idiomatic `var (file, _) = ...` - Add `// exposed for unit testing` comment above ActiveMedia() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using AcDream.App.UI.Layout;
|
|
namespace AcDream.App.Tests.UI.Layout;
|
|
|
|
public class UiDatElementTests
|
|
{
|
|
[Fact]
|
|
public void ActiveMedia_PrefersNamedStateOverDirect()
|
|
{
|
|
var info = new ElementInfo();
|
|
info.StateMedia[""] = (0x06000001, 1); // DirectState (DrawMode Normal=1)
|
|
info.StateMedia["ShowDetail"] = (0x06000002, 3); // named (Alphablend=3)
|
|
var e = new UiDatElement(info, _ => (0, 0, 0)) { ActiveState = "ShowDetail" };
|
|
Assert.Equal(0x06000002u, e.ActiveMedia().File);
|
|
Assert.Equal(3, e.ActiveMedia().DrawMode);
|
|
e.ActiveState = "";
|
|
Assert.Equal(0x06000001u, e.ActiveMedia().File);
|
|
Assert.Equal(1, e.ActiveMedia().DrawMode);
|
|
}
|
|
|
|
[Fact]
|
|
public void ActiveMedia_NoMedia_ReturnsZero()
|
|
{
|
|
var e = new UiDatElement(new ElementInfo(), _ => (0, 0, 0));
|
|
Assert.Equal(0u, e.ActiveMedia().File);
|
|
Assert.Equal(0, e.ActiveMedia().DrawMode);
|
|
}
|
|
|
|
[Fact]
|
|
public void ActiveMedia_MissingNamedState_FallsBackToDirect()
|
|
{
|
|
var info = new ElementInfo();
|
|
info.StateMedia[""] = (0x06000005, 1);
|
|
var e = new UiDatElement(info, _ => (0, 0, 0)) { ActiveState = "NoSuchState" };
|
|
Assert.Equal(0x06000005u, e.ActiveMedia().File);
|
|
}
|
|
}
|