logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class SettingsAssetResolutionTests

    EditMode tests for SettingsAssetResolution, the resolve-or-create every by-Id-in-folder creation engine now shares. Built on real assets on disk, because the contract is about what the AssetDatabase resolves and what actually lands on disk — neither survives an in-memory double.

    Every test drives a real Serenity.Global.Infrastructure.Editor.SerenityAssetCreationTransaction and rolls it back in teardown, so nothing is ever registered with the project's Addressables settings.

    Inheritance
    object
    SettingsAssetResolutionTests
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    Namespace: Serenity.StructuredPersistence.Tests.Editor
    Assembly: Serenity.StructuredPersistence.Tests.Editor.dll
    Syntax
    public class SettingsAssetResolutionTests

    Constructors

    SettingsAssetResolutionTests()

    Declaration
    public SettingsAssetResolutionTests()

    Methods

    ResolveOrCreateByIdInFolder_BlankId_UsesTheFallbackName()

    Declaration
    public void ResolveOrCreateByIdInFolder_BlankId_UsesTheFallbackName()

    ResolveOrCreateByIdInFolder_ExactMatchInASubfolder_ResolvesItBecauseTheScanRecurses()

    Declaration
    public void ResolveOrCreateByIdInFolder_ExactMatchInASubfolder_ResolvesItBecauseTheScanRecurses()

    ResolveOrCreateByIdInFolder_ExactMatchInFolder_ReturnsItAndCreatesNothing()

    Declaration
    public void ResolveOrCreateByIdInFolder_ExactMatchInFolder_ReturnsItAndCreatesNothing()

    ResolveOrCreateByIdInFolder_FolderAlreadyExists_TracksNoFolderToRollBack()

    The always-ensure decision rests on this: a folder Unity already reports as valid costs a cache check and nothing else — no AssetDatabase write, and nothing recorded for rollback. Were that untrue, callers that ensure their own folder beforehand would accumulate phantom rollback entries.

    Declaration
    public void ResolveOrCreateByIdInFolder_FolderAlreadyExists_TracksNoFolderToRollBack()

    ResolveOrCreateByIdInFolder_FolderDoesNotExistYet_CreatesItAndTracksItForRollback()

    Declaration
    public void ResolveOrCreateByIdInFolder_FolderDoesNotExistYet_CreatesItAndTracksItForRollback()

    ResolveOrCreateByIdInFolder_IdOfIllegalCharacters_SanitizesThemInsteadOfFallingBack()

    NamingSanitizer.FileNameSafe falls back only when sanitizing leaves NOTHING — illegal characters become underscores, which is a usable file name. So an Id of pure punctuation keeps its own (sanitized) name rather than taking the fallback.

    Declaration
    public void ResolveOrCreateByIdInFolder_IdOfIllegalCharacters_SanitizesThemInsteadOfFallingBack()

    ResolveOrCreateByIdInFolder_NothingThere_AssignsAFreshGuid()

    Declaration
    public void ResolveOrCreateByIdInFolder_NothingThere_AssignsAFreshGuid()

    ResolveOrCreateByIdInFolder_NothingThere_CreatesAtThePathTheIdSanitizesTo()

    Declaration
    public void ResolveOrCreateByIdInFolder_NothingThere_CreatesAtThePathTheIdSanitizesTo()

    ResolveOrCreateByIdInFolder_NothingThere_TracksThePathSoTheRunCanRollBack()

    Declaration
    public void ResolveOrCreateByIdInFolder_NothingThere_TracksThePathSoTheRunCanRollBack()

    ResolveOrCreateByIdInFolder_OnlyACaseVariantInFolder_CreatesANewAssetBecauseIdsAreCaseSensitive()

    Declaration
    public void ResolveOrCreateByIdInFolder_OnlyACaseVariantInFolder_CreatesANewAssetBecauseIdsAreCaseSensitive()

    SetUp()

    Declaration
    public void SetUp()

    TearDown()

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