logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class ProjectPipelineAdoptionExclusionTests

    EditMode tests for Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption.IsUnselectedShippedTask(System.String,System.Collections.Generic.IReadOnlyList{System.String}) — the predicate SystemAdoptionPlanner uses to keep a deselected attributed system's shipped task out of the profile-creation adoption closure, reached through the shipped canonical profile's own Tasks[] object reference. The first four cases below drive the predicate directly with fabricated path strings — proof of the string matching alone. The two Plan_... cases exercise the real thing end to end: the actual shipped canonical profile, the actual attributed-system catalog, and the actual Plan(IReadOnlyList<string>, string, Func<string, bool>) call a real adoption run makes — one proving inclusion when selected, the other proving the predicate itself excludes what the closure walk still discovers when deselected.

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

    Constructors

    ProjectPipelineAdoptionExclusionTests()

    Declaration
    public ProjectPipelineAdoptionExclusionTests()

    Methods

    IsUnselectedShippedTask_EmptySelection_ExcludesEveryShippedTask()

    Declaration
    public void IsUnselectedShippedTask_EmptySelection_ExcludesEveryShippedTask()

    IsUnselectedShippedTask_PathIsNotARecognizedShippedTaskAtAll_IsNeverExcluded()

    Declaration
    public void IsUnselectedShippedTask_PathIsNotARecognizedShippedTaskAtAll_IsNeverExcluded()

    IsUnselectedShippedTask_ShippedTaskInSelection_IsNeverExcluded()

    Declaration
    public void IsUnselectedShippedTask_ShippedTaskInSelection_IsNeverExcluded()

    IsUnselectedShippedTask_ShippedTaskNotInSelection_IsExcluded()

    Declaration
    public void IsUnselectedShippedTask_ShippedTaskNotInSelection_IsExcluded()

    Plan_RealShippedProfileWithCutscenePlayerDeselected_ExcludesItsSplashTasksFoundThroughTheProfile()

    The exclusion counterpart of Plan_RealShippedProfileWithCutscenePlayerSelected_CarriesItsFamilyThroughThePlan(): with Cutscene Player deselected, the closure walk over the real shipped profile still DISCOVERS its three splash tasks — they are genuine Tasks[] object references on the profile, not something this test adds — so their absence from the plan below proves Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption.IsUnselectedShippedTask(System.String,System.Collections.Generic.IReadOnlyList{System.String}) actively excluded them, not merely that nothing happened to reach them.

    Declaration
    public void Plan_RealShippedProfileWithCutscenePlayerDeselected_ExcludesItsSplashTasksFoundThroughTheProfile()

    Plan_RealShippedProfileWithCutscenePlayerSelected_CarriesItsFamilyThroughThePlan()

    Runs Plan(IReadOnlyList<string>, string, Func<string, bool>) — the exact call Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectPipelineAdoption.TryRun(System.String,System.Collections.Generic.IReadOnlyList{System.String},System.Action{System.String},System.String@,System.Collections.Generic.IReadOnlyList{System.String}@,System.Collections.Generic.IReadOnlyList{System.String}@,System.String@) makes for a real "create a new game" run — over the real shipped canonical profile (Serenity.CreateGame.Infrastructure.Editor.SerenityBootTaskCatalog.ShippedProfilePath) and the real attributed-system catalog (Descriptors), with Cutscene Player selected in one call and deselected in the other. Every task path resolved below already exists as a shipped asset, so neither call creates anything. Read-only throughout: Plan only ever computes destination path strings, so no fixture cleanup is needed.

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