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.
Inherited Members
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()
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()