logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.PackageBootstrapper.Tests.Editor

    Classes

    GhostAssetPathFilterTests

    Pure tests for GhostAssetPathFilter. No assets or files are touched.

    MisplacedShippedAssetPlannerTests

    Pure tests for Serenity.Editor.ObsoleteAssetCleaner.MisplacedShippedAssetPlanner. No AssetDatabase, no disk I/O.

    PackageManagerDependencyManifestBuilderTests

    Pure tests for Serenity.Editor.PackageBootstrapper.PackageManagerDependencyManifestBuilder. Asserts against a literal expected string, matching the {"dependencies":{...}} shape Packages/com.unity.asset-store-tools/Editor/Exporter/DefaultPackageExporter.cs writes.

    PackageManagerDependencyVersionResolverTests

    Pure tests for Serenity.Editor.PackageBootstrapper.PackageManagerDependencyVersionResolver. No Package Manager calls.

    RelocatedAssetBackupStoreTests

    EditMode tests for Serenity.Editor.ObsoleteAssetCleaner.RelocatedAssetBackupStore. Follows the temp-folder hygiene convention of SerenityAssetCreationTransactionTests: every fixture asset lives under a private temp folder wiped in SetUp()/TearDown(). The backup store's own root points at a separate scratch folder under Library/ — outside Assets/, deleted the same way — so a failing run never leaves stray state behind. No Addressables involvement: this store only moves bytes on disk.

    RelocatedShippedAssetPlannerTests

    Pure tests for Serenity.Editor.ObsoleteAssetCleaner.RelocatedShippedAssetPlanner. No AssetDatabase, no disk I/O.

    ReoccupiedMovedPathPlannerTests

    Pure tests for ReoccupiedMovedPathPlanner, plus the content ratchet over the real snapshots.

    RestorePayloadPlannerTests

    Pure tests for RestorePayloadPlanner. No assets or files are touched.

    SerenityMisplacedShippedAssetHealerTests

    Runs the healer's real plan and moves against two text assets in a temporary folder whose shipped paths are swapped, the shape a 1.3.2 project has after importing 1.3.3. Text assets keep the run free of compilation, and nothing is registered with Addressables.

    SerenityObsoleteAssetCleanerTests

    Pure tests for Serenity.Editor.ObsoleteAssetCleaner.ObsoleteAssetClassifier.ClassifySweep(System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyCollection{System.String},System.Func{System.String,System.Boolean},System.Func{System.String,System.Boolean},System.Func{System.String,Serenity.Editor.ObsoleteAssetCleaner.OrphanReconciliationEvidence}), Serenity.Editor.ObsoleteAssetCleaner.ObsoleteAssetClassifier.ClassifyReconciliationAction(Serenity.Editor.ObsoleteAssetCleaner.OrphanReconciliationEvidence) and Serenity.Editor.ObsoleteAssetCleaner.SerenityShippedSnapshotImportWatcher.MergeImportRecords(Serenity.Editor.ObsoleteAssetCleaner.SerenityShippedSnapshotImportWatcher.PackageImportRecord,Serenity.Editor.ObsoleteAssetCleaner.SerenityShippedSnapshotImportWatcher.PackageImportRecord), plus consistency tests asserting the cleaner's duplicated known-non-product and tombstone-marker data stays in sync with Serenity.Editor.PackageBootstrapper.SerenityPackageExporter.ExcludedPaths and TombstonePlanner's actual output (the cleaner assembly cannot reference either — see the classes' remarks). No real assets are touched by the classification tests; the tombstone-shape tests write real temp files (they need IsTombstoneFile to read actual file content/length from disk) under the OS temp folder.

    SerenityPackageDependencyInstallerTests

    Tests the single-source-of-truth relationship between RequiredPackageIds and Serenity.Editor.PackageBootstrapper.SerenityPackageDependencyInstaller.EmbeddablePackageIds that SerenityPackageExporter relies on when embedding UPM dependencies into the exported .unitypackage.

    SerenityPackageExportDestinationTests

    Pure tests for Serenity.Editor.PackageBootstrapper.SerenityPackageExportDestination: a -serenityExportDir argument wins over the SERENITY_EXPORT_DIR environment variable, which wins over the fallback; a relative folder resolves against the project root; no override keeps the exporter's historical Temp path unchanged.

    SerenityPackageExporterTests

    Tests for the customer-project guard in SerenityPackageExporter: both public entry points must no-op — never regenerating the shipped-assets snapshot, never exporting a package — when Serenity.Editor.PackageBootstrapper.SerenityPackageExporter.IsDevelopmentProjectCheck reports a customer project.

    SerenityPackageImportScrubberTests

    Pure tests for Serenity.Editor.ObsoleteAssetCleaner.SerenityPackageImportScrubber.IsSerenityPackageName(System.String). No assets are touched.

    SerenityRequiredPackagesContractTests

    The contract between what the shipped package needs and what a fresh install receives: every package a shipped Serenity assembly is compiled against, and every package whose scripts shipped content serializes, must be in RequiredPackageIds — the one list both the manifest embedded in the exported .unitypackage and the startup installer derive from. The need is derived from the project, never restated. An assembly needs what its compiled image actually references (an asmdef reference no code uses costs a fresh install nothing). An asset needs the package scripts it directly depends on — a Timeline .playable depends on the Timeline package's TimelineAsset script even though no Serenity code names that type at compile time, which is exactly how a missing Timeline dependency went unnoticed.

    TombstonePlannerTests

    Pure tests for TombstonePlanner. No assets or files are touched.

    UnityPackageDependencyEmbedderTests

    Gzip round-trip tests for Serenity.Editor.PackageBootstrapper.UnityPackageDependencyEmbedder: build a tiny tar.gz on disk, append a dependency manifest entry, then decompress and read both the original and the new entry back.

    UnityPackageTarArchiveUtilsTests

    Pure tests for Serenity.Editor.PackageBootstrapper.UnityPackageTarArchiveUtils. No file I/O; streams are in-memory.

    In this article
    © 2026 Serenity. All Rights Reserved