Namespace Serenity.GameUi.Tests.Editor.Builder
Classes
HudAnimationLayerEditorGuiTests
EditMode tests for Serenity.GameUi.Infrastructure.Editor.Builder.HudAnimationLayerEditorGui.BuildHeaderContent(Serenity.ProceduralAnimator.Infrastructure.ProceduralLayers.ProceduralLayerSO): the foldout header's tooltip must always carry the full "{kind} — {layer.name}" text, so a header clipped by a narrow detail pane stays recoverable on hover, with the collapsed-warning sentence appended when the layer is misconfigured. Pure UnityEngine.GUIContent construction — no draw call in it — so it is covered directly rather than through an IMGUI pass.
HudAnimationSequenceLayerInspectorCacheTests
EditMode tests for HudAnimationSequenceLayerInspector's per-layer cached
UnityEditor.SerializedObject: the fake-null eviction guard in GetSerializedLayer, and every
public accessor built on top of it, must never throw Exception when the wrapped
layer instance goes Unity-fake-null out from under the cache.
HudAnimationTemplateRegistryTests
EditMode tests for HudAnimationTemplateRegistry: the pure-data checks (template shape,
Register(Template) validation, MenuLabel)
plus each hand-written template's own Create delegate, which writes a real layer asset to disk —
so, unlike a purely in-memory fixture, those tests need the same temp-folder create/delete shape
HudElementAnimationListGuiTests uses for its own asset-writing tests.
HudArgumentOptionCatalogTests
EditMode tests for HudArgumentOptionCatalog's own lookup mechanics. Provider
discovery excludes test assemblies (mirroring HudMemberCatalog's service-contract
scan), so a fake provider declared in this file would never be found by the real scan — the
three shipped providers' actual discoverability is proven instead by
Serenity.Leaderboard.Tests.Editor.Builder.LeaderboardHudArgumentOptionProviderTests, which
can see the concrete production types this project intentionally does not depend on.
HudCreatorSignalDefinitionTests
EditMode tests for the no-code trigger side of HudCreator:
GenerateSignalDefinition generating a Show trigger (pre-wired to
ShowHudSignal) and a Hide trigger (pre-wired to HideHudSignal), mirroring
FeedbackCreator's PlayFeedbackSignal trigger. Every test targets a private temp folder,
so the project's own HUDs and Addressables settings are never touched.
HudElementAnimationListGuiTests
EditMode tests for Serenity.GameUi.Infrastructure.Editor.Builder.HudElementAnimationListGui.CreateAndAssignLayer(UnityEditor.SerializedObject,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty,System.String,Serenity.GameUi.Infrastructure.Editor.Builder.HudAnimationTemplateRegistry.Template) and Serenity.GameUi.Infrastructure.Editor.Builder.HudElementAnimationListGui.DeferredTargetIsStale(UnityEditor.SerializedProperty,System.Int32,UnityEditor.SerializedProperty,System.Int32).
HudElementChangeFeedbackDefaultsTests
EditMode tests for UnityHudElementDefinition's change-feedback fields on a legacy element: one serialized before this feature existed deserializes every one of them at its C# default (empty id, an ANY direction, a zero cooldown) rather than the field initializers a freshly constructed instance gets, so the feature must read as fully off with no manual migration step.
HudElementStretchDefaultsTests
EditMode tests for Stretch's migration fallback: a HUD serialized
before the field existed deserializes it as (0, 0), which the getter must still read back as
(1, 1) with no manual step.
HudElementThresholdDefaultsTests
EditMode tests for UnityHudElementDefinition's threshold ramp on a legacy element, mirroring HudElementChangeFeedbackDefaultsTests: an element that predates this feature must read as fully off — no bands, ratio mode off — with no manual migration step. The band list is what these tests force unset; the ramp field itself cannot be nulled through the SerializedProperty API, and the accessors are null-safe at both levels regardless.
HudMemberCatalogTests
EditMode tests for HudMemberCatalog's hop filtering. An enum is a displayable TEXT leaf, so it must offer no further hops — its reflected members are enum constants, and reading a constant ignores the bound value entirely. Constants on any type are filtered for the same reason, while readonly instance fields stay readable.
HudPreviewPlacementTargetTests
EditMode tests for Serenity.GameUi.Infrastructure.Editor.Builder.HudPreviewPlacementTarget: the adapter that lets the shared preview manipulation stack read and write a HUD's elements without knowing HUDs exist.
ProceduralLayerHudCompatibilityTests
EditMode tests for Serenity.GameUi.Infrastructure.Editor.Builder.ProceduralLayerHudCompatibility — the shared source of truth for which ProceduralLayerSO types actually do anything on a HUD element — and the two consumers that must never disagree with it: HudAnimationTemplateRegistry's real display names and SerenityHudBindingValidator's channel-compatibility warning.