using AcDream.App.UI;
namespace AcDream.App.Tests.UI;
///
/// Campaign OP slice OP3: pins the Options panel's entry in
/// — the data the toolbar's ALREADY-GENERIC
/// panel-button mechanism (ToolbarController.PanelButtonIds already
/// includes 0x1000019B, byte-verified authored panel id 10 —
/// tests/AcDream.App.Tests/UI/Layout/ToolbarControllerTests.cs's own
/// PanelButtons fixture at (0x1000019Bu, 10u)) reads to route
/// the toolbar Options button and RetailUiRuntime.OnWindowVisibilityChanged
/// to the retail Options window. No new toolbar wiring was needed — only
/// this catalog entry, which the existing generic mechanism (
/// RetailUiRuntime.BindToolbarPanelButtons,
/// RetailPanelUiController) picks up automatically.
///
public sealed class RetailPanelCatalogTests
{
[Fact]
public void Options_PanelId_Is10_MatchingTheToolbarButtonsAuthoredProperty()
=> Assert.Equal(10u, RetailPanelCatalog.Options);
[Fact]
public void Options_ResolvesToTheOptionsWindowName()
{
Assert.True(RetailPanelCatalog.TryGetWindowName(RetailPanelCatalog.Options, out string name));
Assert.Equal(WindowNames.Options, name);
}
[Fact]
public void OptionsWindowName_ResolvesBackToThePanelId()
{
Assert.True(RetailPanelCatalog.TryGetPanelId(WindowNames.Options, out uint panelId));
Assert.Equal(RetailPanelCatalog.Options, panelId);
}
[Fact]
public void Options_IsListedInMountedPanels()
=> Assert.Contains(
(RetailPanelCatalog.Options, WindowNames.Options),
RetailPanelCatalog.MountedPanels);
[Fact]
public void Options_IsListedInToolbarPanels()
=> Assert.Contains(
(RetailPanelCatalog.Options, WindowNames.Options),
RetailPanelCatalog.ToolbarPanels);
// ── Campaign FA slice FA3 ────────────────────────────────────────────
[Fact]
public void SocialPanel_PanelId_Is12_MatchingTheLiveDatSlotProperty()
=> Assert.Equal(12u, RetailPanelCatalog.SocialPanel);
[Fact]
public void SocialPanel_ResolvesToTheSocialPanelWindowName()
{
Assert.True(RetailPanelCatalog.TryGetWindowName(RetailPanelCatalog.SocialPanel, out string name));
Assert.Equal(WindowNames.SocialPanel, name);
}
[Fact]
public void SocialPanel_IsListedInMountedPanels()
=> Assert.Contains(
(RetailPanelCatalog.SocialPanel, WindowNames.SocialPanel),
RetailPanelCatalog.MountedPanels);
/// Lane A §6.1: the open path is keyboard-only (F3/F4); retail
/// authors no toolbar button for either action.
[Fact]
public void SocialPanel_IsNotListedInToolbarPanels()
=> Assert.DoesNotContain(
(RetailPanelCatalog.SocialPanel, WindowNames.SocialPanel),
RetailPanelCatalog.ToolbarPanels);
}