Category A Migration Plan - Detailed Scope
Overview
Per @tig's request, migrating ALL Category A tests (Drawing/LineCanvas, Drawing/Ruler, View/Adornment/, View/Draw/) to parallelizable. These should ALL be unit tests with no Application dependency.
Detailed Analysis
1. LineCanvasTests.cs (1426 lines, 33 SetupFakeDriver uses)
Test Categories:
- 13 tests use ToString() directly - Can migrate immediately, no driver needed
- Length_0_Is_1_Long, Length_n_Is_n_Long, Length_Negative, LengthZero, ToString_, Add_2_Lines
- 16 tests use GetCanvas() + View.Draw() - Require refactoring
- TestLineCanvasWindow, TestLineCanvasLeaveMargin, Viewport_*, Canvas_Updates_On_Changes
Migration Strategy:
- Port 13 ToString() tests directly to Parallelizable (straightforward)
- For GetCanvas() tests: LineCanvas has GetMap() method - can test directly without View
- Delete old LineCanvasTests.cs after migration
Estimated Effort: 3-4 hours
2. RulerTests.cs
Status: Need to analyze
Estimated Effort: 1-2 hours
3. View/Adornment/*.cs (5 files)
Files:
- AdornmentTests.cs
- BorderTests.cs
- MarginTests.cs
- PaddingTests.cs
- ShadowStyleTests.cs
Status: Need to analyze each
Estimated Effort: 3-4 hours total
4. View/Draw/*.cs (5 files)
Files:
- AllViewsDrawTests.cs
- ClearViewportTests.cs
- ClipTests.cs
- DrawTests.cs
- TransparentTests.cs
Status: Need to analyze each
Estimated Effort: 4-5 hours total
Total Estimated Effort: 11-15 hours
Immediate Action Plan
Phase 1: LineCanvasTests (Starting Now)
- Create Tests/UnitTestsParallelizable/Drawing/LineCanvasTests.cs
- Migrate all 13 ToString() tests (30 minutes)
- Refactor 16 GetCanvas() tests to use GetMap() directly (2 hours)
- Add any missing test coverage (1 hour)
- Delete Tests/UnitTests/Drawing/LineCanvasTests.cs
- Test and verify (30 minutes)
Phase 2: RulerTests
Similar approach
Phase 3: Adornment Tests
Systematic file-by-file migration
Phase 4: View/Draw Tests
Systematic file-by-file migration
Current Status
- Starting Phase 1: LineCanvasTests migration
- Created Drawing directory in UnitTestsParallelizable
- Ready to begin test creation