Namespace Serenity.Menu.Tests.Application
Classes
EnsuringMenuTransitionateToViewTests
Tests for EnsuringMenuTransitionateToView — the lazy-resolution decorator around the menu transition.
MenuApplicationBehaviorTests
Behavioral tests for Menu Application types not covered by MenuApplicationTests:
DTO ToString formatting, the parameterless submit signal, the aggregator, and the
MenuInstanceState enum contract.
MenuApplicationTests
Tests for Menu DTOs, use cases, signals, and installer DTO.
MenuDefinitionScannerTests
Tests for MenuDefinitionScanner, the one place Create-Menu-wizard authoring rules live. Every rule gets a case that fires it, and Scan_WellFormedMenu_ReportsNothing() proves none of them fire on a clean menu — a scanner that reports a finding on a correct menu is worse than one that reports none, because the author stops reading. Each case also asserts the section, since that value is what a tool uses to open the group of fields at fault.
MenuLifecycleResolverTests
Tests for MenuLifecycleResolver effective-mode resolution and classification.
MenuReachabilityWalkerTests
Tests for MenuReachabilityWalker, the engine-agnostic breadth-first walk the menu management wizard uses to auto-load every menu reachable from the configuration's main menu. Each case exercises one walk rule in isolation: linear/cyclic/self transitions, the go-back sentinel, the composite-child and hosted-instance qualified targets, unresolved targets, a composite root that hosts menus, an empty root, and null-safety through the option chain.
RouterMenuTransitionateToViewTests
Tests for RouterMenuTransitionateToView: it shows the transition target through the top-level IViewRouter (which itself hides the current view), ignoring the source id.
UiOptionRulesTests
Tests for ValidateTransitionTarget(string, IReadOnlyCollection<string>, List<string>), the transition half of ValidateOption(UiOption, string, IReadOnlyDictionary<string, GameSettingsValueType>, IReadOnlyDictionary<string, string>, IReadOnlyDictionary<string, string>, IReadOnlyCollection<string>) made public so the menu scanner reports the same rule as an authoring finding instead of restating it. The go-back sentinel, a composite-qualified path, a hosted-instance path and an absent target all resolve to nothing to report; everything else must name a known id.