Add unit tests and logging infrastructure for InMemory and RabbitMQ transports
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Implemented RecordingLogger and RecordingLoggerFactory for capturing log entries in tests. - Added unit tests for InMemoryChannel, covering constructor behavior, property assignments, channel communication, and disposal. - Created InMemoryTransportOptionsTests to validate default values and customizable options for InMemory transport. - Developed RabbitMqFrameProtocolTests to ensure correct parsing and property creation for RabbitMQ frames. - Added RabbitMqTransportOptionsTests to verify default settings and customization options for RabbitMQ transport. - Updated project files for testing libraries and dependencies.
This commit is contained in:
92
docs/router/SPRINT_7000_0011_0001_router_testing.md
Normal file
92
docs/router/SPRINT_7000_0011_0001_router_testing.md
Normal file
@@ -0,0 +1,92 @@
|
||||
# Sprint 7000-0011-0001 - Router Testing Sprint
|
||||
|
||||
## Topic & Scope
|
||||
|
||||
Create comprehensive test coverage for StellaOps Router projects. **Critical gap**: `StellaOps.Router.Transport.RabbitMq` has **NO tests**.
|
||||
|
||||
**Goal:** ~192 tests covering all Router components with shared testing infrastructure.
|
||||
|
||||
**Working directory:** `src/__Libraries/__Tests/`
|
||||
|
||||
## Dependencies & Concurrency
|
||||
|
||||
- **Upstream:** All Router libraries at stable v1.0 state (sprints 7000-0001 through 7000-0010)
|
||||
- **Downstream:** None. Testing sprint.
|
||||
- **Parallel work:** TST-001 through TST-004 can run in parallel.
|
||||
- **Cross-module impact:** None. Tests only.
|
||||
|
||||
## Documentation Prerequisites
|
||||
|
||||
- `docs/router/specs.md` (complete specification)
|
||||
- `docs/router/implplan.md` (phase guidance)
|
||||
- Existing test patterns in `src/__Libraries/__Tests/StellaOps.Router.Transport.Tcp.Tests/`
|
||||
|
||||
> **BLOCKED Tasks:** Before working on BLOCKED tasks, review [../implplan/BLOCKED_DEPENDENCY_TREE.md](../implplan/BLOCKED_DEPENDENCY_TREE.md) for root blockers and dependencies.
|
||||
|
||||
## Delivery Tracker
|
||||
|
||||
| # | Task ID | Status | Priority | Description | Notes |
|
||||
|---|---------|--------|----------|-------------|-------|
|
||||
| 1 | TST-001 | TODO | High | Create shared testing infrastructure (`StellaOps.Router.Testing`) | Enables all other tasks |
|
||||
| 2 | TST-002 | TODO | Critical | Create RabbitMq transport test project skeleton | Critical gap |
|
||||
| 3 | TST-003 | TODO | High | Implement Router.Common tests | FrameConverter, PathMatcher |
|
||||
| 4 | TST-004 | TODO | High | Implement Router.Config tests | validation, hot-reload |
|
||||
| 5 | TST-005 | TODO | Critical | Implement RabbitMq transport unit tests | ~35 tests |
|
||||
| 6 | TST-006 | TODO | Medium | Expand Microservice SDK tests | EndpointRegistry, RequestDispatcher |
|
||||
| 7 | TST-007 | TODO | Medium | Expand Transport.InMemory tests | Concurrency scenarios |
|
||||
| 8 | TST-008 | TODO | Medium | Create integration test suite | End-to-end flows |
|
||||
| 9 | TST-009 | TODO | Low | Expand TCP/TLS transport tests | Edge cases |
|
||||
| 10 | TST-010 | TODO | Low | Create SourceGen integration tests | Optional |
|
||||
|
||||
## Current State
|
||||
|
||||
| Project | Test Location | Status |
|
||||
|---------|--------------|--------|
|
||||
| Router.Common | `tests/StellaOps.Router.Common.Tests` | Exists (skeletal) |
|
||||
| Router.Config | `tests/StellaOps.Router.Config.Tests` | Exists (skeletal) |
|
||||
| Router.Transport.InMemory | `tests/StellaOps.Router.Transport.InMemory.Tests` | Exists (skeletal) |
|
||||
| Router.Transport.Tcp | `src/__Libraries/__Tests/` | Exists |
|
||||
| Router.Transport.Tls | `src/__Libraries/__Tests/` | Exists |
|
||||
| Router.Transport.Udp | `tests/StellaOps.Router.Transport.Udp.Tests` | Exists (skeletal) |
|
||||
| **Router.Transport.RabbitMq** | **NONE** | **MISSING** |
|
||||
| Microservice | `tests/StellaOps.Microservice.Tests` | Exists |
|
||||
| Microservice.SourceGen | N/A | Source generator |
|
||||
|
||||
## Test Counts Summary
|
||||
|
||||
| Component | Unit | Integration | Total |
|
||||
|-----------|------|-------------|-------|
|
||||
| Router.Common | 35 | 0 | 35 |
|
||||
| Router.Config | 25 | 3 | 28 |
|
||||
| **Transport.RabbitMq** | **30** | **5** | **35** |
|
||||
| Microservice SDK | 28 | 5 | 33 |
|
||||
| Transport.InMemory | 23 | 5 | 28 |
|
||||
| Integration Suite | 0 | 15 | 15 |
|
||||
| TCP/TLS Expansion | 12 | 0 | 12 |
|
||||
| SourceGen | 0 | 6 | 6 |
|
||||
| **TOTAL** | **153** | **39** | **~192** |
|
||||
|
||||
## Exit Criteria
|
||||
|
||||
Before marking this sprint DONE:
|
||||
1. [ ] All test projects compile
|
||||
2. [ ] RabbitMq transport has comprehensive unit tests (critical gap closed)
|
||||
3. [ ] Router.Common coverage > 90% for FrameConverter, PathMatcher
|
||||
4. [ ] Router.Config coverage > 85% for RouterConfigProvider
|
||||
5. [ ] All tests follow AAA pattern with comments
|
||||
6. [ ] Integration tests demonstrate end-to-end flows
|
||||
7. [ ] All tests added to CI/CD workflow
|
||||
|
||||
## Execution Log
|
||||
|
||||
| Date (UTC) | Update | Owner |
|
||||
|------------|--------|-------|
|
||||
| | | |
|
||||
|
||||
## Decisions & Risks
|
||||
|
||||
- All new test projects in `src/__Libraries/__Tests/` following existing pattern
|
||||
- RabbitMQ unit tests use mocked interfaces (no real broker required)
|
||||
- Integration tests may use Testcontainers for real broker testing
|
||||
- xUnit v3 with FluentAssertions 6.12.0
|
||||
- Test naming: `[Method]_[Scenario]_[Expected]`
|
||||
Reference in New Issue
Block a user