Class ProjectPipelineProfileFactoryTests
EditMode tests for Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineProfileFactory. Creating a profile now adopts the shipped canonical one (Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption), which clones into Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption.AdoptionOutputRoot before the adopted profile itself is moved to Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineProfileFactory.ProjectProfileFolder — so every test here redirects BOTH seams to the same disposable scratch root via Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineProfileFactory.SetProjectProfileFolderOverrideForTests(System.String) and Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption.SetAdoptionOutputRootOverrideForTests(System.String) before running and restores them in TearDown() — the real project's own DefaultOutputFolder and Serenity.Global.Infrastructure.Editor.SerenityUserContentPaths.GameRoot are never touched.
Inherited Members
Namespace: Serenity.CreateGame.Tests.Editor
Assembly: Serenity.CreateGame.Tests.Editor.dll
Syntax
public class ProjectPipelineProfileFactoryTests
Constructors
ProjectPipelineProfileFactoryTests()
Declaration
public ProjectPipelineProfileFactoryTests()
Methods
OneTimeTearDown()
Declaration
public void OneTimeTearDown()
ProjectProfileFolder_WithoutOverride_IsTheCreatorsDefaultFolder()
Declaration
public void ProjectProfileFolder_WithoutOverride_IsTheCreatorsDefaultFolder()
ProjectProfileFolder_WithoutOverride_MatchesTheWizardNoticesDuplicatedDefault()
Serenity.Global.Infrastructure.Editor.InitializationPipeline.NoProjectProfileNoticeGui.DefaultProjectPipelineOutputFolder duplicates this factory's default on purpose (the Global editor assembly cannot reference the CreateGame editor assembly this factory lives in) — this test is the guard against the two drifting apart.
Declaration
public void ProjectProfileFolder_WithoutOverride_MatchesTheWizardNoticesDuplicatedDefault()
SetProjectProfileFolderOverrideForTests_RedirectsCreation()
Declaration
public void SetProjectProfileFolderOverrideForTests_RedirectsCreation()
SetUp()
Declaration
public void SetUp()
TearDown()
Declaration
public void TearDown()
TryCreateFromShipped_AdoptedProfile_IsNamedAfterProfileIdAndCarriesItsId()
Declaration
public void TryCreateFromShipped_AdoptedProfile_IsNamedAfterProfileIdAndCarriesItsId()
TryCreateFromShipped_BlankProfileId_FailsWithAnErrorAndCreatesNothing()
Declaration
public void TryCreateFromShipped_BlankProfileId_FailsWithAnErrorAndCreatesNothing()
TryCreateFromShipped_CalledTwice_SecondCallReusesWithoutCreatingASecondAsset()
Declaration
public void TryCreateFromShipped_CalledTwice_SecondCallReusesWithoutCreatingASecondAsset()
TryCreateFromShipped_CutscenePlayerSelected_AdoptsTheSplashTasksAndRePointsTheirCutsceneArguments()
The seed profile is the FULL shipped one, so a project that selected the Cutscene Player gets the Serenity splash — as ITS OWN content: the three splash tasks land under the adoption output root, and each one's opaque Guid argument points at the cutscene clone beside them, never at the package's own splash cutscene.
Declaration
public void TryCreateFromShipped_CutscenePlayerSelected_AdoptsTheSplashTasksAndRePointsTheirCutsceneArguments()
TryCreateFromShipped_NoSelection_CreatesAProfileWithInfrastructureTasksOnly()
Declaration
public void TryCreateFromShipped_NoSelection_CreatesAProfileWithInfrastructureTasksOnly()
TryCreateFromShipped_RegistersTheProfileAsAddressable()
Declaration
public void TryCreateFromShipped_RegistersTheProfileAsAddressable()
TryCreateFromShipped_TaskList_LivesUnderTheAdoptionOutputRootsMediaGlobalTasksFolder()
Declaration
public void TryCreateFromShipped_TaskList_LivesUnderTheAdoptionOutputRootsMediaGlobalTasksFolder()
TryCreateFromShipped_TwoSystemsOutOfCanonicalOrder_ProfileTaskOrderIsCanonical()
Declaration
public void TryCreateFromShipped_TwoSystemsOutOfCanonicalOrder_ProfileTaskOrderIsCanonical()