Class ModelClipCreatorTests
EditMode tests for ModelClipCreator. Every fixture is built under a private temp folder and
torn down after each test, mirroring ModelAnimatorCreatorTests. Every Input.RegisterAsAddressables
is false so these tests never touch the project's real Addressables settings.
This project ships no imported-model (.fbx) fixture anywhere under Assets, so
DuplicateEmbeddedClip(Input)'s FBX-discovery step and
CreatePrefabVariant(Input)'s "imported model" framing are covered indirectly: the
former through its public DuplicateClip(AnimationClip, Input) overload (same copy mechanics,
source clip given directly) plus a real prefab asset that legitimately has no embedded clip to exercise
the "not found" validation branch; the latter through a regular prefab, which
UnityEditor.PrefabUtility.SaveAsPrefabAsset(UnityEngine.GameObject,System.String,System.Boolean@) also persists as a UnityEditor.PrefabAssetType.Variant when
the source instance stays connected — the exact mechanic the real imported-model path relies on.
Not covered: a genuine mid-transaction throw for the "invalid destination folder" rollback scenario — same
accepted limitation ModelAnimatorCreatorTests documents for its own rollback test. Every folder
well-formedness check here runs at Validate* time, before any transaction starts, so "rollback" is
instead proven as "no mutation ever began" (zero created paths, target folder never materializes).
Inherited Members
Namespace: Serenity.AnimationHub.Tests.Editor
Assembly: Tests.Editor.dll
Syntax
public class ModelClipCreatorTests
Constructors
ModelClipCreatorTests()
Declaration
public ModelClipCreatorTests()
Methods
CreatePrefabVariant_DestinationFolderOutsideAssets_FailsWithNoOrphans()
Declaration
public void CreatePrefabVariant_DestinationFolderOutsideAssets_FailsWithNoOrphans()
CreatePrefabVariant_RegularPrefabSource_CreatesAVariantConnectedToIt()
Declaration
public void CreatePrefabVariant_RegularPrefabSource_CreatesAVariantConnectedToIt()
DuplicateClip_DestinationFolderOutsideAssets_FailsWithNoOrphans()
Declaration
public void DuplicateClip_DestinationFolderOutsideAssets_FailsWithNoOrphans()
DuplicateClip_NameCollision_SecondRunGetsAUniqueSuffix()
Declaration
public void DuplicateClip_NameCollision_SecondRunGetsAUniqueSuffix()
DuplicateClip_StandaloneSource_CopiesCurvesLoopSettingAndEvents()
Declaration
public void DuplicateClip_StandaloneSource_CopiesCurvesLoopSettingAndEvents()
DuplicateEmbeddedClip_SourceClipNotFound_ReturnsError()
Declaration
public void DuplicateEmbeddedClip_SourceClipNotFound_ReturnsError()
GenerateClip_BobYPreset_BindsPositionPulseCurveAndRespectsDuration()
Declaration
public void GenerateClip_BobYPreset_BindsPositionPulseCurveAndRespectsDuration()
GenerateClip_OutputFolderOutsideAssets_FailsWithNoOrphans()
Declaration
public void GenerateClip_OutputFolderOutsideAssets_FailsWithNoOrphans()
GenerateClip_RegisterAsAddressablesFalse_LeavesAddressablesUntouched()
Declaration
public void GenerateClip_RegisterAsAddressablesFalse_LeavesAddressablesUntouched()
GenerateClip_ScalePulsePreset_BindsUniformScaleCurvesAndHonorsLoop()
Declaration
public void GenerateClip_ScalePulsePreset_BindsUniformScaleCurvesAndHonorsLoop()
GenerateClip_SpinYPreset_BindsLinearRotationCurveWithNoEasing()
Declaration
public void GenerateClip_SpinYPreset_BindsLinearRotationCurveWithNoEasing()
SetUp()
Declaration
public void SetUp()
TearDown()
Declaration
public void TearDown()
ValidateCreatePrefabVariant_MissingImportedModelPath_ReturnsError()
Declaration
public void ValidateCreatePrefabVariant_MissingImportedModelPath_ReturnsError()
ValidateDuplicateClip_ClipNotFoundInSourceAsset_ReturnsError()
Declaration
public void ValidateDuplicateClip_ClipNotFoundInSourceAsset_ReturnsError()
ValidateGenerateClip_MissingClipName_ReturnsError()
Declaration
public void ValidateGenerateClip_MissingClipName_ReturnsError()
ValidateGenerateClip_ZeroDuration_ReturnsError()
Declaration
public void ValidateGenerateClip_ZeroDuration_ReturnsError()