logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class SerenityCreateGameBootSceneTests

    EditMode tests for the Create Game boot-scene engine. Every test that touches disk points at a private temp folder — the shipped Serenity.CreateGame.Infrastructure.Editor.CreateGameScenePaths.DefaultRootFolder is never written to — and cleans up both the assets and their Addressables entries in TearDown(), mirroring SerenitySampleSceneGeneratorTests.

    Inheritance
    object
    SerenityCreateGameBootSceneTests
    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 SerenityCreateGameBootSceneTests

    Constructors

    SerenityCreateGameBootSceneTests()

    Declaration
    public SerenityCreateGameBootSceneTests()

    Methods

    BootTaskCatalog_ResolvesNonEmptyOrderedPaths()

    Declaration
    public void BootTaskCatalog_ResolvesNonEmptyOrderedPaths()

    BuildBootScene_CreatesExpectedRoots()

    Declaration
    public void BuildBootScene_CreatesExpectedRoots()

    OneTimeTearDown()

    Declaration
    public void OneTimeTearDown()

    SetUp()

    Declaration
    public void SetUp()

    ShippedProfiles_HaveNoDuplicateTaskReferences()

    Regression test for a shipped profile carrying InstallSoundMixer twice (once in its authored order, again as a trailing duplicate) — SerenityBootTaskCatalog copied it into every generated boot scene verbatim, so a fresh project's pipeline ran sound-mixer installation twice. Covers both shipped profiles, since either could regress the same way.

    Declaration
    public void ShippedProfiles_HaveNoDuplicateTaskReferences()

    ShippedProfiles_ReferenceNoAttributedSystemsTaskButStillReferenceInfrastructure()

    Regression test for the wizard's boot-task placement moving off the shipped profiles entirely: every attributed, non-bootstrap system's install task (Score, Leaderboard, GameUi, GameMode, Menu, ... — derived from Descriptors, never a literal list) is now placed additively by a tool (Initialize Serenity, or a per-system wizard's own Installation step), not shipped inside either profile — a shipped profile boots infrastructure only. Covers both shipped profiles, since either could regress the same way.

    Declaration
    public void ShippedProfiles_ReferenceNoAttributedSystemsTaskButStillReferenceInfrastructure()

    TearDown()

    Declaration
    public void TearDown()

    WireExistingBootScene_RunTwice_LeavesTheSameSettings()

    Re-wiring an existing boot scene must be repeatable: the second run resolves the same assets and leaves the installer's system settings exactly as the first run did.

    Declaration
    public void WireExistingBootScene_RunTwice_LeavesTheSameSettings()

    WireExistingBootScene_TargetProfileAlreadyCorrect_LeavesTheSceneByteIdentical()

    A scene that already references the chosen profile must be left byte-identical — the repoint is a real write only when the reference actually needs to change.

    Declaration
    public void WireExistingBootScene_TargetProfileAlreadyCorrect_LeavesTheSceneByteIdentical()

    WireExistingBootScene_TargetProfileDiffersFromCurrent_RepointsTheInstallerReference()

    An existing boot scene generated while the project pointed at one profile (here, standing in for the shipped default) must be repointed at the project's now-chosen profile — the pipeline profile is not one of the "system settings" Serenity.CreateGame.Infrastructure.Editor.CreateGameInstallerWiring.ApplySystemSettingsTo(UnityEngine.GameObject,Serenity.CreateGame.Infrastructure.Editor.CreateGameInstallerWiringInputs,System.Action{System.String}) itself already covers.

    Declaration
    public void WireExistingBootScene_TargetProfileDiffersFromCurrent_RepointsTheInstallerReference()

    WiringTable_CoversEveryCatalogSettingsFieldExactlyOnce()

    Every installable system that declares a settings field must appear in the wiring table exactly once — twice would make the later write silently win, and never would leave that system's field on whatever the shipped prefab pins.

    Declaration
    public void WiringTable_CoversEveryCatalogSettingsFieldExactlyOnce()

    WiringTable_EveryInstallerPropertyPathResolves()

    Declaration
    public void WiringTable_EveryInstallerPropertyPathResolves()

    Wiring_InheritedRowsWithNothingResolved_KeepThePrefabPins()

    The four settings the shipped prefab pins are written only when the project owns one. A project that adopted nothing resolves them to null, and the generated scene must then keep the prefab's pin — writing null there would leave a boot with no player input settings, no system configuration, no log profile and no localization settings.

    Declaration
    public void Wiring_InheritedRowsWithNothingResolved_KeepThePrefabPins()

    Wiring_OverridesPointAtProvidedAssets_NotShippedDefaults()

    Declaration
    public void Wiring_OverridesPointAtProvidedAssets_NotShippedDefaults()

    Wiring_SelectedBootCriticalSystemResolvedNothing_WarnsAboutTheKeptShippedPin()

    A system the run did not select must have its settings field written explicitly empty: leaving the shipped prefab's pin would boot a subsystem the user deselected, on package content.

    Declaration
    public void Wiring_SelectedBootCriticalSystemResolvedNothing_WarnsAboutTheKeptShippedPin()

    Wiring_UnselectedSystem_WritesAnExplicitNull()

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