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