logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    In this article
    © 2026 Serenity. All Rights Reserved