unity-mcp/TestProjects/UnityMCPTests/Assets/Tests/EditMode/Tools
dsarno 552b2d3aae
Harden `manage_scriptable_object` Tool (#522)
* feat(manage_scriptable_object): harden tool with path normalization, auto-resize, bulk mapping

Phase 1: Path Syntax & Auto-Resizing
- Add NormalizePropertyPath() to convert field[index] to Array.data format
- Add EnsureArrayCapacity() to auto-grow arrays when targeting out-of-bounds indices

Phase 2: Consolidation
- Replace duplicate TryGet* helpers with ParamCoercion/VectorParsing shared utilities
- Add Vector4 parsing support to VectorParsing.cs

Phase 3: Bulk Data Mapping
- Handle JArray values for list/array properties (recursive element setting)
- Handle JObject values for nested struct/class properties

Phase 4: Enhanced Reference Resolution
- Support plain 32-char GUID strings for ObjectReference fields

Phase 5: Validation & Dry-Run
- Add ValidatePatches() for pre-validation of all patches
- Add dry_run parameter to validate without mutating

Includes comprehensive stress test suite covering:
- Big Bang (large nested arrays), Out of Bounds, Friendly Path Syntax
- Deep Nesting, Mixed References, Rapid Fire, Type Mismatch
- Bulk Array Mapping, GUID Shorthand, Dry Run validation

* feat: Add AnimationCurve and Quaternion support to manage_scriptable_object tool

- Implement TrySetAnimationCurve() supporting both {'keys': [...]} and direct [...] formats
  * Support keyframe properties: time, value, inSlope, outSlope, weightedMode, inWeight, outWeight
  * Gracefully default missing optional fields to 0
  * Clear error messages for malformed structures

- Implement TrySetQuaternion() with 4 input formats:
  * Euler array [x, y, z] - 3 elements interpreted as degrees
  * Raw array [x, y, z, w] - 4 components
  * Object format {x, y, z, w} - explicit components
  * Explicit euler {euler: [x, y, z]} - labeled format

- Improve error handling:
  * Null values: AnimationCurve→empty, Quaternion→identity
  * Invalid inputs rejected with specific, actionable error messages
  * Validate keyframe objects and array sizes

- Add comprehensive test coverage in ManageScriptableObjectStressTests.cs:
  * AnimationCurve with keyframe array format
  * AnimationCurve with direct array (no wrapper)
  * Quaternion via Euler angles
  * Quaternion via raw components
  * Quaternion via object format
  * Quaternion via explicit euler property

- Fix test file compilation issues:
  * Replace undefined TestFolder with _runRoot
  * Add System.IO using statement

* refactor: consolidate test utilities to eliminate duplication

- Add TestUtilities.cs with shared helpers:
  - ToJObject() - consolidates 11 duplicates across test files
  - EnsureFolder() - consolidates 2 duplicates
  - WaitForUnityReady() - consolidates 2 duplicates
  - FindFallbackShader() - consolidates shader chain duplicates
  - SafeDeleteAsset() - helper for asset cleanup
  - CleanupEmptyParentFolders() - standardizes TearDown cleanup

- Update 11 test files to use shared TestUtilities via 'using static'
- Standardize TearDown cleanup patterns across all test files
- Net reduction of ~40 lines while improving maintainability

* fix: add missing animCurve and rotation fields to ComplexStressSO

Add AnimationCurve and Quaternion fields required by Phase 6 stress tests.
2026-01-07 10:46:35 -04:00
..
Fixtures Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
AIPropertyMatchingTests.cs 🔧 Clean up & Consolidate Shared Services Across MCP Tools (#519) 2026-01-06 12:58:17 -08:00
AIPropertyMatchingTests.cs.meta Allow the LLMs to read menu items, not just execute them (#263) 2025-09-12 11:19:58 -04:00
CommandRegistryTests.cs Move Get commands to editor resources + Run Python tests every update (#368) 2025-11-05 16:06:48 -04:00
CommandRegistryTests.cs.meta Improve Windsurf MCP Config (#231) 2025-08-24 06:57:11 -04:00
ComponentResolverTests.cs Move Get commands to editor resources + Run Python tests every update (#368) 2025-11-05 16:06:48 -04:00
ComponentResolverTests.cs.meta Allow the LLMs to read menu items, not just execute them (#263) 2025-09-12 11:19:58 -04:00
DomainReloadResilienceTests.cs Async Test Infrastructure & Editor Readiness Status + new refresh_unity tool (#507) 2026-01-03 12:42:32 -08:00
DomainReloadResilienceTests.cs.meta HTTP Server, uvx, C# only custom tools (#375) 2025-11-24 23:21:06 -04:00
ExecuteMenuItemTests.cs Add testing and move menu items to resources (#316) 2025-10-13 11:16:43 -04:00
ExecuteMenuItemTests.cs.meta Add testing and move menu items to resources (#316) 2025-10-13 11:16:43 -04:00
Fixtures.meta feature/Add new manage_scriptable_object tool (#489) 2025-12-28 20:15:50 -08:00
GameObjectAPIStressTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
GameObjectAPIStressTests.cs.meta 🎮 GameObject Toolset Redesign and Streamlining (#518) 2026-01-06 10:13:45 -08:00
MCPToolParameterTests.cs Feature/run tests summary clean (#501) 2026-01-01 20:36:45 -08:00
MCPToolParameterTests.cs.meta Feature/run tests summary clean (#501) 2026-01-01 20:36:45 -08:00
ManageGameObjectCreateTests.cs 🔧 Clean up & Consolidate Shared Services Across MCP Tools (#519) 2026-01-06 12:58:17 -08:00
ManageGameObjectCreateTests.cs.meta 🎮 GameObject Toolset Redesign and Streamlining (#518) 2026-01-06 10:13:45 -08:00
ManageGameObjectDeleteTests.cs 🎮 GameObject Toolset Redesign and Streamlining (#518) 2026-01-06 10:13:45 -08:00
ManageGameObjectDeleteTests.cs.meta 🎮 GameObject Toolset Redesign and Streamlining (#518) 2026-01-06 10:13:45 -08:00
ManageGameObjectModifyTests.cs 🔧 Clean up & Consolidate Shared Services Across MCP Tools (#519) 2026-01-06 12:58:17 -08:00
ManageGameObjectModifyTests.cs.meta 🎮 GameObject Toolset Redesign and Streamlining (#518) 2026-01-06 10:13:45 -08:00
ManageGameObjectTests.cs 🔧 Clean up & Consolidate Shared Services Across MCP Tools (#519) 2026-01-06 12:58:17 -08:00
ManageGameObjectTests.cs.meta Allow the LLMs to read menu items, not just execute them (#263) 2025-09-12 11:19:58 -04:00
ManageMaterialPropertiesTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageMaterialPropertiesTests.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
ManageMaterialReproTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageMaterialReproTests.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
ManageMaterialStressTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageMaterialStressTests.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
ManageMaterialTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageMaterialTests.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
ManagePrefabsTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManagePrefabsTests.cs.meta Open and close prefabs in the stage view + create them (#283) 2025-09-26 19:28:56 -04:00
ManageSceneHierarchyPagingTests.cs Payload-safe paging for hierarchy/components + safer asset search + docs (#490) 2025-12-28 20:57:57 -08:00
ManageSceneHierarchyPagingTests.cs.meta Payload-safe paging for hierarchy/components + safer asset search + docs (#490) 2025-12-28 20:57:57 -08:00
ManageScriptValidationTests.cs Autoformat (#297) 2025-09-30 16:25:33 -04:00
ManageScriptValidationTests.cs.meta fix: address CodeRabbit and Greptile feedback 2025-09-03 16:37:45 -07:00
ManageScriptableObjectStressTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageScriptableObjectStressTests.cs.meta Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageScriptableObjectTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ManageScriptableObjectTests.cs.meta feature/Add new manage_scriptable_object tool (#489) 2025-12-28 20:15:50 -08:00
MaterialDirectPropertiesTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
MaterialDirectPropertiesTests.cs.meta Material tools: support direct shader property keys + add EditMode coverage (#344) 2025-10-23 18:25:29 -07:00
MaterialMeshInstantiationTests.cs Move Get commands to editor resources + Run Python tests every update (#368) 2025-11-05 16:06:48 -04:00
MaterialMeshInstantiationTests.cs.meta test: Consolidate pytest suite to MCPForUnity and improve test infrastructure (#332) 2025-10-21 10:42:55 -07:00
MaterialParameterToolTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
MaterialParameterToolTests.cs.meta Harden MCP tool parameter handling + add material workflow tests (TDD) (#343) 2025-10-23 17:57:27 -07:00
ReadConsoleTests.cs Harden `manage_scriptable_object` Tool (#522) 2026-01-07 10:46:35 -04:00
ReadConsoleTests.cs.meta feat: Add `manage_material` tool for dedicated material manipulation (#440) 2025-12-07 19:39:52 -08:00
RunTestsTests.cs Feature/run tests summary clean (#501) 2026-01-01 20:36:45 -08:00
RunTestsTests.cs.meta Feature/run tests summary clean (#501) 2026-01-01 20:36:45 -08:00