22 lines
1.6 KiB
Markdown
22 lines
1.6 KiB
Markdown
# AOC Roslyn Source Analyzer (Compile-Time Contract Enforcement)
|
|
|
|
## Module
|
|
Aoc
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Roslyn source analyzer that enforces ingestion contracts at compile time via diagnostic rules (AOC0001, AOC0002, AOC0003), preventing forbidden field access patterns in AOC-related code.
|
|
|
|
## Implementation Details
|
|
- **Intent Analyzer**: `src/__Analyzers/StellaOps.TestKit.Analyzers/IntentAnalyzer.cs` -- Roslyn `DiagnosticAnalyzer` that enforces test intent declaration contracts. Reports AOC0001 for missing intent attributes on test methods, AOC0002 for inconsistent intent declarations across test classes, and AOC0003 for intent/naming convention mismatches.
|
|
- **Intent Analyzer Tests**: `src/__Analyzers/StellaOps.TestKit.Analyzers.Tests/IntentAnalyzerTests.cs` -- unit tests verifying the analyzer correctly reports AOC diagnostics for missing or mismatched intent declarations and validates that properly annotated tests produce no diagnostics.
|
|
|
|
## E2E Test Plan
|
|
- [ ] Add the `StellaOps.TestKit.Analyzers` package to a test project and verify AOC0001 is reported for test methods missing intent attributes
|
|
- [ ] Verify AOC0002 is reported when a test class has inconsistent intent declarations across its test methods
|
|
- [ ] Verify AOC0003 is reported for intent/naming convention mismatches (e.g., a test named `*Integration*` with a unit test intent attribute)
|
|
- [ ] Verify no diagnostics are reported for correctly attributed test methods following the naming convention
|
|
- [ ] Verify the analyzer integrates with `dotnet build` and CI pipelines to catch ingestion contract violations before merge
|