logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Global.Infrastructure.Tests.Editor.InitializationPipeline

    Classes

    InstallOrderPlacementTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallOrderPlacement: a pure rule over positions, no assets or Unity APIs involved.

    InstallOrderRelationshipTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallOrderRelationship: a pure value object, no assets or Unity APIs involved.

    InstallTaskAuthoringTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskAuthoring: task asset creation, profile insertion/removal and duplicate-task detection. Every mutation happens against a temp folder and scratch UnityInitializationPipelineProfile assets created via ScriptableObject.CreateInstance — the project's real profile assets are never touched. Mirrors the temp-folder SetUp/TearDown pattern of AsmdefReferenceWriterTests and GameSaveCreatorTests.

    InstallTaskSectionGuiTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSectionGui's non-GUI surface: Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSectionGui.PrepareSelections's idempotent lazy-load guard, Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSectionGui.TryEnsurePendingTask(System.Action{System.String},System.Boolean)'s "wires with defaults even when the host never drew the Installation step" contract plus its own once-per-run guard, and the section counting only project-owned profiles (Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskAuthoring.FindProjectOwnedProfiles) as candidates to wire into.

    InstallTaskSignatureTests

    EditMode tests for which boot-task shapes count as "the task that installs this module": Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskSignature itself, and the Serenity.Global.Infrastructure.Editor.InitializationPipeline.InstallTaskAuthoring lookups that take a set of them.

    PendingWiringSentenceFormatterTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.PendingWiringSentenceFormatter's reordering clause — the half of the recap that tells a reader the primary action is about to MOVE a task some profile already carries, not only insert one. Pure formatting, no assets involved.

    PipelineSuppliedParameterShapeTests

    What the inspector can know about which parameters the pipeline supplies without a running pipeline: a value an author can type, or an asset an author can pick, is an argument; a type only the pipeline's own services can produce is supplied.

    ReflectionCallArgumentRoundTripTests

    What an author types into the inspector's rows is what the real Reflection Call Task binds when it runs: the arguments are authored through Serenity.InitializationPipeline.Infrastructure.Settings.Editor.ReflectionCallArgumentRows, stored on a definition, and the task built from that definition is run against a method whose parameters mix string arguments with the ones the pipeline supplies.

    ReflectionCallArgumentRoundTripTests.FixedRoundTripClock

    ReflectionCallArgumentRoundTripTests.RoundTripTargets

    ReflectionCallArgumentRowsTests

    The inspector's row model: one row per parameter of the selected method, where a row that takes a stored argument edits the slot the runtime binds to that parameter, never the slot its position in the parameter list happens to suggest.

    ReflectionCallTaskAssetBuilderTests

    EditMode tests for Serenity.Global.Infrastructure.Editor.InitializationPipeline.ReflectionCallTaskAssetBuilder: the asset it creates must store the target method's real parameter signature at creation time. A task whose stored signature does not match its target method's real parameters gets invisibly rewritten the first time anything (a test, an inspector selection) opens its editor — see UnityReflectionCallTaskDefinitionEditorTests for that repair behavior; this suite proves a builder-created task never needs it.

    ShippedReflectionCallTaskSignatureTests

    Keeps every shipped UnityReflectionCallTaskDefinition asset under Assets/Serenity/Media honest: its stored method name and parameter-type signature must already match the real method it names, so opening it through UnityReflectionCallTaskDefinitionEditor — an inline preview, the Inspector selecting it, a headless test creating an editor for it — is a no-op. Regression coverage for 22 shipped tasks (Leaderboard among them) shipping with a stale, empty methodParamTypes despite their real method taking parameters; every editor creation silently re-serialized the asset the first time some test happened to inspect it.

    UnityReflectionCallTaskDefinitionEditorArgumentTests

    Drawing the Reflection Call Task inspector over a task whose stored arguments do not match its method reports the difference and leaves the task exactly as it was: only the author's explicit action rewrites the list.

    UnityReflectionCallTaskDefinitionEditorArgumentTests.Targets

    UnityReflectionCallTaskDefinitionEditorTests

    EditMode tests for UnityReflectionCallTaskDefinitionEditor's OnEnable self-heal: regression coverage for a real defect where a shipped task asset carrying a stale (empty) methodParamTypes got silently re-serialized every time ANY headless test run happened to create an editor for it — merely inspecting an asset must never write to it, but a genuinely stale stored signature must still be repaired.

    Interfaces

    ReflectionCallArgumentRoundTripTests.IRoundTripClock

    In this article
    © 2026 Serenity. All Rights Reserved