logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class SerenityBootTaskCatalogTests

    EditMode tests for SerenityBootTaskCatalog's selection-aware overload — subtractive (Serenity.CreateGame.Infrastructure.Editor.BootTaskSelectionRules) plus additive (Serenity.CreateGame.Infrastructure.Editor.BootTaskSequenceRules) — exercised against the real shipped canonical profile (read-only for every system tested here — Score's task asset already ships, so no test in this file writes to the project). Score (InstallScore) stands in for "an attributed system's task"; DisableGameWrapper and InstallTimer stand in for infrastructure tasks the shipped profile also carries; the three Play*SplashScreen tasks stand in for "a task that requires a system without being one" (Serenity.CreateGame.Infrastructure.Editor.BootTaskRequirements).

    Inheritance
    object
    SerenityBootTaskCatalogTests
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.CreateGame.Tests.Editor
    Assembly: Serenity.CreateGame.Tests.Editor.dll
    Syntax
    public class SerenityBootTaskCatalogTests

    Constructors

    SerenityBootTaskCatalogTests()

    Declaration
    public SerenityBootTaskCatalogTests()

    Methods

    TryResolveBootTaskAssetPaths_CutscenePlayerDeselected_DropsEverySplashTaskAndTheInstaller()

    Declaration
    public void TryResolveBootTaskAssetPaths_CutscenePlayerDeselected_DropsEverySplashTaskAndTheInstaller()

    TryResolveBootTaskAssetPaths_CutscenePlayerSelected_CarriesEverySplashTask()

    Declaration
    public void TryResolveBootTaskAssetPaths_CutscenePlayerSelected_CarriesEverySplashTask()

    TryResolveBootTaskAssetPaths_GameCameraSelectedWithNoShippedTask_CreatesAndRegistersItsAddressablesEntry()

    Regression test for the addressables-registration gap: InstallGameCamera has a canonical slot (Serenity.CreateGame.Infrastructure.Editor.BootTaskCanonicalOrder) but no shipped task asset, so selecting it forces SerenityBootTaskCatalog.ResolveOrCreateTaskAssetPath down its CREATE branch. The created asset must join the Serenity Addressables group under INITIALIZATION_PIPELINE — "every asset must be created as Addressable". Removes exactly the task asset (and entry) the run created, never one the project already owned, so a second run still hits the CREATE branch.

    Declaration
    public void TryResolveBootTaskAssetPaths_GameCameraSelectedWithNoShippedTask_CreatesAndRegistersItsAddressablesEntry()

    TryResolveBootTaskAssetPaths_NullCatalog_DoesNotThrow()

    Declaration
    public void TryResolveBootTaskAssetPaths_NullCatalog_DoesNotThrow()

    TryResolveBootTaskAssetPaths_PreservesTheShippedProfilesInfrastructureTasksAndOrder()

    Declaration
    public void TryResolveBootTaskAssetPaths_PreservesTheShippedProfilesInfrastructureTasksAndOrder()

    TryResolveBootTaskAssetPaths_ScoreSelected_ItsTaskIsPresent()

    Declaration
    public void TryResolveBootTaskAssetPaths_ScoreSelected_ItsTaskIsPresent()

    TryResolveBootTaskAssetPaths_ScoreUnselected_ItsTaskIsAbsent()

    Declaration
    public void TryResolveBootTaskAssetPaths_ScoreUnselected_ItsTaskIsAbsent()

    TryResolveBootTaskAssetPaths_SplashTasks_RunAfterTheCutscenePlayerInstalls()

    Declaration
    public void TryResolveBootTaskAssetPaths_SplashTasks_RunAfterTheCutscenePlayerInstalls()

    TryResolveBootTaskAssetPaths_SystemWithoutCanonicalSlot_ReturnsTheErrorInsteadOfThrowing()

    Regression test for the owner-reported crash: a selected system whose InstallMethodName has no slot in Serenity.CreateGame.Infrastructure.Editor.BootTaskCanonicalOrder (e.g. Logging before this fix) must be reported through the error/bool contract, never thrown out of Serenity.CreateGame.Infrastructure.Editor.BootTaskSequenceRules.ResolveInsertIndex(System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Func{System.String,System.String},System.Collections.Generic.IReadOnlyList{System.String}) into a caller's OnGUI.

    Declaration
    public void TryResolveBootTaskAssetPaths_SystemWithoutCanonicalSlot_ReturnsTheErrorInsteadOfThrowing()

    TryResolveBootTaskAssetPaths_UiAndAudioPlayersSelected_LandAtTheirCanonicalRelativePositions()

    Regression test for the shipped profile now carrying infrastructure only: a selected attributed system's task must be inserted at its BootTaskCanonicalOrder position relative to the infrastructure tasks the profile still carries, not merely "somewhere" in the sequence.

    Declaration
    public void TryResolveBootTaskAssetPaths_UiAndAudioPlayersSelected_LandAtTheirCanonicalRelativePositions()
    In this article
    © 2026 Serenity. All Rights Reserved