Namespace Serenity.UnityGlobal.Tests.Editor
Classes
AddressablesOwnershipLabelsTests
Tests for Serenity.Global.Infrastructure.Editor.Utils.AddressablesOwnershipLabels.IsProjectOwnedPath(System.String): pure string logic, mirroring SerenityEditorPathsTests since it is the direct inverse of Serenity.Global.Infrastructure.Editor.SerenityEditorPaths.IsPackageContentPath(System.String) — the ownership rule the Addressables labeler and auto-labeler both apply.
BatchAudioImportWindowLabelsTests
Tests for BatchAudioImportWindowLabels, the label copy every concrete
BatchAudioImportWindow<TItem,TInput,TResult,TAsset> declares its own instance of
(BatchSoundEffectImportWindow, BatchMusicTrackImportWindow). Its constructor guards every
one of its 12 positional strings against null/empty/whitespace, so a missed argument fails fast at the
declaring window's static initializer instead of rendering a blank label. The two windows' own
SfxLabels/MusicLabels fields stay private, so reading them back still needs reflection.
EditorPlaybackClockTests
EditMode tests for Serenity.Global.Infrastructure.Editor.Preview.EditorPlaybackClock.AdvanceTime(System.Single,System.Single,System.Single,System.Boolean,System.Boolean@) — pure step math, no editor-tick wiring.
EditorTypePickerFiltersTests
Direct unit tests for Serenity.Global.Infrastructure.Editor.EditorTypePickerFilters's test-assembly-name rule — the shared
filter every editor type picker (signal types, interface-implementer object fields, ...) applies so a
designer never sees an NUnit test fixture in an authoring dropdown. Covers every naming shape actually
present in this project's asmdefs (verified by find Assets -iname "*.asmdef" | grep -i test).
FoundationEditorTests
Tests for FoundationEditor. Editor-only.
FoundationIdReferenceGuiTests
Tests for the pure resolution logic in Serenity.Global.Infrastructure.Editor.FoundationIdReferenceGui. Editor-only; Serenity.Global.Infrastructure.Editor.FoundationIdReferenceGui.LoadCandidates(System.Type) is not covered here since it depends on a real UnityEditor.AssetDatabase scan.
GameSettingsValueFieldDrawerTests
Tests for GameSettingsValueFieldDrawer's parsing/formatting helpers. Editor-only.
ModelPreviewCameraFramingTests
EditMode tests for Serenity.Global.Infrastructure.Editor.Preview.ModelPreviewCameraFraming — pure math, no scene objects.
ModelPreviewContentTests
EditMode tests for Serenity.Global.Infrastructure.Editor.Preview.ModelPreviewContent. Every fixture is a runtime-built UnityEngine.GameObject (no assets touched), destroyed in TearDown().
PreviewOrbitStateTests
EditMode tests for Serenity.Global.Infrastructure.Editor.Preview.PreviewOrbitState — pure math, no scene objects.
SerenityAssetCreationTransactionTests
EditMode tests for Serenity.Global.Infrastructure.Editor.SerenityAssetCreationTransaction. Follows the temp-folder hygiene
convention of UnityEditorUtilsTests: every fixture asset lives under a private temp folder that
is wiped in TearDown(), and any Addressables entry a test registers is removed explicitly
(in a finally or in TearDown()) per the project rule that tests must not pollute the
real Addressables settings. The ordering Rollback gives a registered
Serenity.Global.Infrastructure.Editor.SerenityExistingAssetRestore is tested here too, since Rollback is what owns it —
SerenityExistingAssetRestoreTests covers the capture itself.
SerenityAssetDeleteProbe
A test seam for asserting what was true AT THE MOMENT one particular asset was deleted — the only place
from which SerenityAssetCreationTransaction.Rollback's internal ordering is observable, since
everything it does is undone or persisted again by the time the call returns. Records whether
Serenity.Global.Infrastructure.Editor.Validation.References.SerenitySafeDeleteAssetProcessor was suppressed and the value of a caller-supplied probe,
then always answers UnityEditor.AssetDeleteResult.DidNotDelete so the delete itself proceeds untouched.
Unity keeps every UnityEditor.AssetModificationProcessor in the editor's callback list for the whole session, this one included, so it stays inert unless a test called Watch(string, Func<object>) for an exact path — and every test that calls it calls StopWatching() in its teardown.
SerenityAssetIdLookupTestSettings
A throwaway IFoundationSettings asset type used by SerenityAssetIdLookupTests
to exercise the by-Id passes against real assets on disk. Lives in its own same-named file so Unity can
bind its script when the tests create it as an asset (mirrors UnityEditorUtilsTestFoundationSettings).
Deliberately NOT shared with any other suite: the project-wide pass queries by type name, so a type used from two suites would make whole-project assertions depend on the other suite's cleanup.
SerenityAssetIdLookupTests
Tests for the two by-Id passes behind every creation engine's duplicate and near-miss reporting. Editor-only, and deliberately built on real assets on disk: the contract is about what UnityEditor.AssetDatabase queries return, which no in-memory double can stand in for.
SerenityAssetIdRulesTestSettings
A throwaway IFoundationSettings asset type used by SerenityAssetIdRulesTests
to build real Serenity.Global.Infrastructure.Editor.SerenityAssetIdLookup.IdMatches`1
pairs to feed the rules. Lives in its own same-named file so Unity can bind its script when the tests
create it as an asset (mirrors SerenityAssetIdLookupTestSettings).
Deliberately its OWN type rather than a reuse of SerenityAssetIdLookupTestSettings, for the
reason that type's doc gives: the by-Id passes query by type name, so a type shared across two suites
makes one suite's whole-project assertions depend on the other suite's cleanup.
SerenityAssetIdRulesTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityAssetIdRules. Like SerenityAssetIdLookupTests these build real assets on disk, because the only way to obtain a Serenity.Global.Infrastructure.Editor.SerenityAssetIdLookup.IdMatches`1 is to run a real pass over them — the struct's constructor is internal precisely so a rule can never be fed a pair no lookup produced.
Every pass here is folder-scoped. None asks for the whole project, so this suite cannot be perturbed by what the real project ships.
SerenityAssetPingingTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityAssetPinging. UnityEditor.Selection and UnityEditor.EditorGUIUtility.PingObject(UnityEngine.Object) are editor-UI statics with no observable seam of their own, so the contract exercised here is exactly what a caller can assert on: a resolved asset ends up selected, and a missing one leaves whatever was selected before untouched.
SerenityCreationValidationResultTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityCreationValidationResult. Unlike its neighbours in this folder it touches no assets on disk: the type is a pure in-memory accumulator, so every case here is a direct assertion about what a validation pass reported and in what order.
The cases that matter most are the two the inversion onto AuthoringIssue could have changed silently — report order within a severity, and whether a flat view still reflects a finding added after something already read it.
SerenityDefaultAssetFolderTestAsset
A throwaway UnityEngine.ScriptableObject type used by SerenityDefaultAssetFolderTests to
exercise the majority-folder scan against real assets on disk. Lives in its own same-named file so Unity
can bind its script when the tests create it as an asset (mirrors
SerenityAssetIdLookupTestSettings).
Deliberately NOT shared with any other suite: SerenityDefaultAssetFolder queries by
t: type name across the whole project, so a type used from two suites would make one suite's
project-wide assertions depend on the other suite's fixture placement and cleanup timing.
SerenityDefaultAssetFolderTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityDefaultAssetFolder's majority-folder scan and its package-exclusion filter. Editor-only, and deliberately built on real assets on disk — the contract is about what UnityEditor.AssetDatabase queries return, which no in-memory double can stand in for. Mirrors the temp-folder SetUp/TearDown pattern of SerenityAssetIdLookupTests.
SerenityEditorPathsTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityEditorPaths.IsPackageContentPath(System.String): pure string logic, so exercised against plain string literals rather than real assets on disk.
SerenityEditorTextFieldCommitTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityEditorTextFieldCommit's pending/flush lifecycle, driven entirely
through its internal test seams — no real AssetDatabase or Undo traffic, and the real
EditorApplication.update tick is never touched (its subscribe/unsubscribe seams are stubbed
out for the duration of each test). Editor-only.
SerenityExistingAssetRestoreTestSettings
A throwaway asset type for SerenityExistingAssetRestoreTests, carrying one field of every
serialization shape a real settings asset mixes — value types, a string, an enum, a list, a live object
reference and a polymorphic managed-reference graph — so the forgotten-field test has something to walk.
Lives in its own same-named file so Unity can bind its script when the tests create it as an asset
(mirrors UnitySingletonSettingsLoaderTestSettings). The payload types are nested rather
than top-level: they exist only as this fixture's [SerializeReference] element types.
SerenityExistingAssetRestoreTestSettings.FlagPayload
A SerenityExistingAssetRestoreTestSettings.ScratchPayload carrying a flag, the other half of the polymorphism proof.
SerenityExistingAssetRestoreTestSettings.NumericPayload
A SerenityExistingAssetRestoreTestSettings.ScratchPayload carrying a number, to prove the restored element keeps its concrete type and not just its base fields.
SerenityExistingAssetRestoreTestSettings.ScratchPayload
The managed-reference element base — what makes Payloads polymorphic.
SerenityExistingAssetRestoreTests
EditMode tests for Serenity.Global.Infrastructure.Editor.SerenityExistingAssetRestore itself — what a capture puts back, and
what it refuses to capture at all. The ordering Serenity.Global.Infrastructure.Editor.SerenityAssetCreationTransaction gives a
registered restore is tested by SerenityAssetCreationTransactionTests, the fixture that
owns Rollback. Every fixture asset lives under a private temp folder wiped in
TearDown() with the safe-delete processor suppressed, the convention
UnitySingletonSettingsLoaderTests established; nothing here registers an Addressables entry,
so nothing has to be removed from the project's Addressables settings either.
SerenityPackageContentRelocatorTests
EditMode tests for Serenity.Global.Infrastructure.Editor.SerenityPackageContentRelocator. The fixture lives under a throwaway folder nested inside Serenity.Global.Infrastructure.Editor.SerenityEditorPaths.AssetsRoot — a real shipped asset cannot stand in here since these tests actually move (and sometimes deliberately fail to move) it. Every root is owned by a ScratchAssetFixture, wiped in both SetUp() and TearDown(); every fixture's GUID is captured the moment it is created (stable across a later move) so TearDown() can remove any Addressables entry before the underlying asset is deleted, and then assert — loudly, not silently — that nothing survives into the next test.
SerenityProjectOutputFolderRulesTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityProjectOutputFolderRules.IsAcceptableOutputFolder(System.String): pure string logic exercised against plain string literals — no folder needs to exist on disk for any of these cases, since the rule's whole point is that existence is never required.
SerenityStepWizardWindowTests
Tests for SerenityStepWizardWindow<TStep> — the descriptor-driven scaffolding that replaced
every stepped wizard's hand-rolled header/breadcrumb/body/footer/error-gate quintet. Driven entirely
through the base's public and protected seams on Serenity.UnityGlobal.Tests.Editor.SerenityStepWizardTestWindow: no
OnGUI pass, so these assert the navigation, visibility and gating rules rather than IMGUI layout
— except where a doc block below says otherwise. The frame-ordering tests that need a real repaint drive
one through EditorWindow.SendEvent, skipping themselves when a headless run has no graphics
device to deliver it. RunFrame_OnAFreshScratchWindow_DoesNotThrowOnItsFirstFrame(),
RunFrame_MutatingAShowingRowsTitle_ReProjectsOnTheNextFrame() and
TogglingTheHiddenRule_ReProjectsOnTheNextFrameWithoutMovingTheReader() instead drive the
non-drawing PrepareFrame preamble directly — they must run headless, since a headless run is
exactly where the first one's regression was found — and need no console-error suppression, since
PrepareFrame makes no GUILayout/EditorGUILayout call.
SerenityWebGLResourcesPathsTests
Tests for the pure path/validation logic of Serenity.Global.Infrastructure.Editor.Utils.WebGL.SerenityWebGLResourcesPaths and the JSON-shape helpers of Serenity.Global.Infrastructure.Editor.Utils.WebGL.SerenityWebGLExportManifest. Covers normalization, Resources-folder detection, asset-path-to-load-key conversion and the structured destination validation rules. Nothing here touches the filesystem or AssetDatabase. Editor-only.
SerenityWizardActivityLogTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardActivityLog — the shared rich-text status log that replaced
every stepped wizard's hand-rolled string _status field and private
LogSuccess/LogWarning/LogError/Append methods. Pins the exact markup those
wizards built by hand (<color=#RRGGBB>{icon} {message}</color>, tinted from
Serenity.Global.Infrastructure.Editor.SerenityWizardGui's own palette) so a future palette or format change is caught here
first. Editor-only.
SerenityWizardDoneStepTests
Covers Serenity.Global.Infrastructure.Editor.SerenityWizardDoneStep.ForSingleSettingsAsset(System.String,System.String,System.String,System.Action) — the shared Done-step Model factory for a "one project-wide settings asset, created or updated in place" wizard (Menu/Modal/Sound Mixer/UI Service Settings). Pure model-shape test — no window, no IMGUI pass.
SerenityWizardDropZoneGuiTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardDropZoneGui.FilterAcceptedPaths(System.Collections.Generic.IEnumerable{System.String},System.Func{System.String,System.Boolean},System.Collections.Generic.IEnumerable{System.String}) — the pure half of the shared
drag-and-drop zone lifted out of BatchSoundEffectImportWindow and
BatchMusicTrackImportWindow. The rest of the type only wraps Unity's DragAndDrop statics
and is exercised through the two windows themselves rather than unit-tested directly.
SerenityWizardFieldRulesTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardFieldRules's pure rule builders. No UnityEditor call, no
asset — every rule is a plain Func<string, string>, exercised directly.
SerenityWizardIdFieldTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardIdFieldResult and the pure validation pass-through behind
Serenity.Global.Infrastructure.Editor.SerenityWizardIdField.Draw(UnityEngine.GUIContent,System.String,System.Func{System.String,System.String}) (Serenity.Global.Infrastructure.Editor.SerenityWizardIdField.Evaluate(System.String,System.Func{System.String,System.String}), reached here via
its [InternalsVisibleTo("Tests.Editor")] grant). Draw itself calls
UnityEditor.EditorGUILayout and needs an active IMGUI layout pass, so it is not exercised here.
SerenityWizardStepControllerTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardStepController — the shared int-cursor step machine that
replaced every stepped wizard's hand-rolled SetStep/GoNext/GoBack/CanGoBack.
Covers navigation bounds and the scroll-reset/focus-clear side effect every wizard's old
SetStep reproduced by hand. Editor-only.
SerenityWizardTargetAssetTestSettings
A trivial UnityEngine.ScriptableObject type used by SerenityWizardTargetAssetTests to
exercise Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset against real
assets on disk. Lives in its own same-named file so Unity can bind its script when the tests create it
as an asset (mirrors SerenityDefaultAssetFolderTestAsset).
SerenityWizardTargetAssetTests
Tests for Serenity.Global.Infrastructure.Editor.SerenityWizardTargetAsset's get-or-create decision state: mode derivation, ambiguity, the user-pick override, change tracking, and the package-content confirmation gate. Editor-only, and built on real assets on disk for the package-content case — the contract there is about a real shipped asset's path, which no in-memory double can stand in for. Mirrors the temp-folder SetUp/TearDown pattern of SerenityDefaultAssetFolderTests.
UnityAnimationAssetUtilsTests
EditMode tests for Serenity.Global.Infrastructure.Editor.UnityAnimationAssetUtils. Every fixture (clip, controller, prefab) is
built under a private temp folder and torn down after each test, mirroring
ModelAnimationScannerTests. Includes a regression guard pinning the exact keyframe literals
ThemeAnimationGenerator.SpecFor(ShowHideAnimation.ScalePop) fed into the overshoot curve builder
as they stood immediately before this type was extracted out of ThemeAnimationGenerator.
UnityAssemblyScannerTests
Tests for the docs-build assembly scanner helpers that do not require a fabricated Unity
Assembly: Serenity.Global.Infrastructure.Editor.Utils.UnityAssemblyScanner.PrepareOutput(Serenity.Global.Infrastructure.Editor.Utils.UnityBuildJob,System.String@,System.String@,System.String@) (derives dll/xml/rsp paths
from a Serenity.Global.Infrastructure.Editor.Utils.UnityBuildJob), the empty-sources guard of
Serenity.Global.Infrastructure.Editor.Utils.UnityAssemblyScanner.WriteRsp(Serenity.Global.Infrastructure.Editor.Utils.UnityBuildJob,System.String,System.String,System.String,System.Boolean), and the editor-driven
Serenity.Global.Infrastructure.Editor.Utils.UnityAssemblyScanner.GatherWork(System.Boolean,System.Boolean,System.String[]) which queries the live CompilationPipeline.
The full WriteRsp success path needs a real Unity Assembly (defines /
allReferences) that cannot be constructed in a unit test, so only its precondition is
asserted here. Editor-only.
UnityAssetSetClonerTests
EditMode tests for Serenity.Global.Infrastructure.Editor.Utils.UnityAssetSetCloner: the explicit-file-list clone core shared by Serenity.Global.Infrastructure.Editor.Utils.UnityDirectoryCloner and any caller cloning a non-mirrored file set (a shipped system's dependency closure). Every fixture lives under a scratch folder wiped in TearDown().
UnityCollectionSettingsLoaderTestSettings
A throwaway IFoundationSettings asset type for UnityCollectionSettingsLoaderTests. Lives in its own same-named file so Unity can bind its script when the tests create it as an asset (mirrors UnitySingletonSettingsLoaderTestSettings). Deliberately not shared with that suite: a type reused across fixtures would make each suite's label query see the other's assets.
UnityCollectionSettingsLoaderTests
EditMode tests for UnityCollectionSettingsLoader: the adopted-twin rule a collection lookup applies, wired to the real RenamedId(string) suffix and to real Addressables loading. Every fixture is a real UnityCollectionSettingsLoaderTestSettings asset registered through Serenity.Global.Infrastructure.Editor.Utils.UnityAddressablesLabeler.RetagAssets(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String}), created through a ScratchAssetFixture per test and disposed in TearDown().
UnityDirectoryClonerAssetTests
Regression tests for Serenity.Global.Infrastructure.Editor.Utils.UnityDirectoryCloner.CloneAsset(System.String,System.String,System.String,System.String): the single-file counterpart of Serenity.Global.Infrastructure.Editor.Utils.UnityDirectoryCloner.CloneDirectory(System.String,System.String,System.String,System.String) that must clone exactly one asset without touching its siblings.
UnityDirectoryClonerTests
Regression tests for UnityDirectoryCloner foundation settings behavior. Validates that cloning regenerates IFoundationSettings.Guid without creating dynamic Addressables labels from that Guid.
UnityDocfxApiTocGeneratorTests
Tests for the DocFX API table-of-contents pipeline: Serenity.Global.Infrastructure.Editor.Utils.TocNode (data model), Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxTypeIndexBuilder, Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxNamespaceIndexWriter and the orchestrating Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxApiTocGenerator. These build TOC/index structures from generated *.yml files and emit toc.yml + per-namespace index.md. All file I/O is routed through a per-test temp directory cleaned up in TearDown(). Editor-only.
UnityDocfxWritersTests
Tests for the path-parameterized DocFX file-writing helpers that accept an explicit
docsDir and therefore can be exercised against a temp directory without touching the
real project: Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxScaffoldWriter, Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxTemplateWriter
and Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxCacheCleaner.CleanApiFolder(System.String). The members that resolve their
destination from Serenity.Global.Infrastructure.Editor.Utils.UnityDocsPaths (e.g. CleanAllCaches,
UnityDocfxConfigurationWriter.Generate, UnityDocfxBrandingWriter.EnsureMinimalBrandFiles)
would write into the live project docs folder and are intentionally not invoked here.
Editor-only.
UnityDocsBrandingTests
Tests for Serenity.Global.Infrastructure.Editor.Utils.UnityDocsBranding and the DocFX writers' branding-parameterized paths.
Every writer exercised here is either a pure function with no file IO
(Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxConfigurationWriter.BuildDocfxJson(Serenity.Global.Infrastructure.Editor.Utils.UnityDocsBranding,System.Collections.Generic.IEnumerable{System.String}), Serenity.Global.Infrastructure.Editor.Utils.UnityDocfxBrandingWriter.GenerateCss(Serenity.Global.Infrastructure.Editor.Utils.UnityDocsBranding))
or a path-parameterized overload that accepts an explicit docsDir (mirrors the temp-dir
convention in UnityDocfxWritersTests) — nothing here writes into the live project's
docs folder. Editor-only.
UnityDocsPathsAndConstantsTests
Tests for the computed paths in Serenity.Global.Infrastructure.Editor.Utils.UnityDocsPaths and the literal values in
Serenity.Global.Infrastructure.Editor.Utils.UnityDocsConstants. These are read-only derivations from
Application.dataPath; the tests assert the relationships between the paths rather
than absolute machine-specific strings, so they stay culture- and machine-agnostic.
Editor-only.
UnityEditorUtilsTestFoundationSettings
A throwaway IFoundationSettings asset type used by UnityEditorUtilsTests
to exercise UnityEditorUtils.AssetUtils.TryFindAssetWithId/FindAllAssets against real
assets on disk. Lives in its own same-named file so Unity can bind its script when the tests create
it as an asset (mirrors CodecTestSO in the ProjectRecipe tests).
UnityEditorUtilsTests
Tests for UnityEditorUtils static utility classes. Editor-only.
UnityProcessRunnerTests
Tests for UnityProcessRunner. Editor-only.
UnitySerializedFieldAssertionsTests
EditMode tests for the one comparison in UnitySerializedFieldAssertions that cannot be
reference equality: a restored reference to a SAVED asset. A UnityEngine.Object is a managed
wrapper over a native object and Unity guarantees no single wrapper per object — its own ==
compares instance ids for that reason — so a reference re-marshalled by
Serenity.Global.Infrastructure.Editor.SerenityExistingAssetRestore.Restore's JSON overwrite, or an asset re-imported by the
AssetDatabase.Refresh() a rollback ends with, can arrive as a second wrapper over an asset that
never moved. Assert.AreSame read that as a broken restore and failed
LocalizationLanguageCreatorTests' field walk in CI on a UnityEngine.Texture2D alternate.
What follows pins the replacement rule from both sides: what the production restore seam actually puts
back matches, and nothing that is a DIFFERENT asset — or a different unsaved instance — is let through
by the loosening. The rule is read through
RestoredReferenceMatches(object, object) rather than by catching the
ladder's assertion failures: NUnit records a failed assertion against the running test even when the
exception is caught, so a suite built on Assert.Throws<AssertionException> would report its
own passing cases as failures. Fixtures follow SerenityExistingAssetRestoreTests: one
private temp folder wiped in TearDown() with the safe-delete processor suppressed, and no
Addressables entries to remove.
UnitySingletonSettingsLoaderTestSettings
A throwaway IFoundationSettings asset type for UnitySingletonSettingsLoaderTests.
Lives in its own same-named file so Unity can bind its script when the tests create it as an asset
(mirrors SerenityAssetIdLookupTestSettings). Deliberately not shared with any other suite —
see that type's docstring for why.
UnitySingletonSettingsLoaderTests
EditMode tests for UnitySingletonSettingsLoader: the ownership rule a project-owned settings asset beats a shipped one with the same Id. Every fixture is a real UnitySingletonSettingsLoaderTestSettings asset registered into Addressables via Serenity.Global.Infrastructure.Editor.Utils.UnityAddressablesLabeler.RetagAssets(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String}), created through a ScratchAssetFixture in SetUp() and disposed in TearDown().
UnityTextMeasurementUtilsTests
Tests for UnityTextMeasurementUtils. Editor-only.
WiredOrDiscoveredSettingsTests
EditMode tests for WiredOrDiscoveredSettings: the wired reference wins, and the fallback answers exactly what the underlying loader answers. Fixtures are created through a ScratchAssetFixture, reusing UnityCollectionSettingsLoaderTests's settings type so the assets go through real Addressables loading rather than a fake.
Enums
SerenityExistingAssetRestoreTestSettings.ScratchMode
An enum field's shape. Three values so "the next one" is never a wrap-around to the default.