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