Files
Joseph Doherty 08f5aa1447 docs: add MisData archival implementation and unit test report
Document the MisData_Curr/Hist table split in architecture docs, add
post-sync archival scripts to move BackLevel records to history table,
and generate comprehensive unit test report (856 tests, 100% pass rate).
2026-01-19 04:03:25 -05:00

163 lines
5.6 KiB
Markdown

# Unit Test Report
**Generated:** 2026-01-19
**Framework:** xUnit 2.9.3 on .NET 10
**Status:** ✅ All Tests Passing
## Summary
| Metric | Value |
|--------|-------|
| Total Test Projects | 11 |
| Projects with Tests | 10 |
| Total Tests | 856 |
| Passed | 856 |
| Failed | 0 |
| Skipped | 0 |
| Pass Rate | 100% |
## Test Results by Project
| Project | Status | Tests | Passed | Failed | Skipped | Time |
|---------|--------|-------|--------|--------|---------|------|
| JdeScoping.Api.Tests | ✅ Pass | 37 | 37 | 0 | 0 | 2.12s |
| JdeScoping.Api.IntegrationTests | ✅ Pass | 24 | 24 | 0 | 0 | 1.24s |
| JdeScoping.Client.Tests | ✅ Pass | 73 | 73 | 0 | 0 | 2.07s |
| JdeScoping.Core.Tests | ✅ Pass | 77 | 77 | 0 | 0 | 1.62s |
| JdeScoping.DataAccess.Tests | ✅ Pass | 67 | 67 | 0 | 0 | 1.92s |
| JdeScoping.Database.Tests | ✅ Pass | 82 | 82 | 0 | 0 | 1.66s |
| JdeScoping.DataSync.Tests | ✅ Pass | 340 | 340 | 0 | 0 | 3.73s |
| JdeScoping.DataSync.Dev.Tests | ✅ Pass | 15 | 15 | 0 | 0 | 1.78s |
| JdeScoping.ExcelIO.Tests | ✅ Pass | 122 | 122 | 0 | 0 | 4:10s |
| JdeScoping.Host.Tests | ⚠️ No Tests | 0 | 0 | 0 | 0 | 1.45s |
| JdeScoping.Infrastructure.Tests | ✅ Pass | 19 | 19 | 0 | 0 | 1.99s |
## Project Details
### JdeScoping.Api.Tests (37 tests)
Tests for API controllers, SignalR hubs, and services.
**Test Classes:**
- `AuthControllerTests` - Authentication endpoints
- `SearchControllerTests` - Search CRUD operations
- `LookupControllerTests` - Autocomplete/lookup APIs
- `StatusHubTests` - SignalR real-time updates
- `CurrentUserServiceTests` - User context service
### JdeScoping.Api.IntegrationTests (24 tests)
End-to-end tests using WebApplicationFactory.
**Test Classes:**
- `AuthApiClientIntegrationTests` - Auth flow testing
- `LookupApiClientIntegrationTests` - Lookup endpoint testing
- `SearchApiClientIntegrationTests` - Search endpoint testing
### JdeScoping.Client.Tests (73 tests)
Blazor client service tests.
**Test Classes:**
- `ApiClientBaseTests` - Base HTTP client behavior
- `AuthApiClientTests` - Auth client operations
- `LookupApiClientTests` - Lookup client operations
- `SearchApiClientTests` - Search client operations
- `SearchStateTests` - Client-side state management
### JdeScoping.Core.Tests (77 tests)
Core domain model tests.
**Test Classes:**
- `SearchCriteriaTests` - Search criteria model validation
- `QueryTypesTests` - Query type identification logic
### JdeScoping.DataAccess.Tests (67 tests)
Data access layer tests.
**Test Classes:**
- `DbConnectionFactoryTests` - Connection management
- `SearchRepositoryTests` - Search persistence
- `LookupRepositoryTests` - Reference data queries
- `DataUpdateRepositoryTests` - Cache timestamps
### JdeScoping.Database.Tests (82 tests)
SQL Server function and procedure tests (requires Docker container).
**Test Classes:**
- `SimpleTableFunctionTests` - TVFs for criteria extraction
- `ScalarFunctionTests` - Scalar criteria functions
- `ComplexTableFunctionTests` - Component/operation TVFs
- `ValidateSearchCriteriaProcedureTests` - Validation stored procedure
### JdeScoping.DataSync.Tests (340 tests)
ETL pipeline and transformer tests.
**Coverage Areas:**
- Source data transformers (JDE, CMS)
- Cache table transformers
- Work processor logic
- Pipeline configuration
- ETL registry and factory
### JdeScoping.DataSync.Dev.Tests (15 tests)
Development pipeline tests.
**Test Classes:**
- `DevEtlRegistryTests` - Dev ETL configuration
- `DevPipelineTests` - Pipeline execution
### JdeScoping.ExcelIO.Tests (122 tests)
Excel export functionality tests.
**Test Classes:**
- `ExcelExportServiceTests` - Full export workflow
- `ExcelPackageBuilderTests` - Package construction
- `WorksheetBuilderTests` - Individual sheet building
- Various formatter tests for data types
**Note:** Longer execution time (4:10) due to actual Excel file generation in tests.
### JdeScoping.Host.Tests (0 tests)
Placeholder project with no tests implemented yet.
**File:** `Placeholder.cs` - Contains only a placeholder class with comments indicating tests will be added.
### JdeScoping.Infrastructure.Tests (19 tests)
Infrastructure utility tests.
**Test Classes:**
- `RsaKeyServiceTests` - RSA key generation/persistence
- `EncryptionHelperTests` - Password encryption
- `ConfigExtensionsTests` - Configuration helpers
## Execution Strategy
Tests were executed in two phases:
### Phase 1: Parallel Execution (9 projects)
Projects with no shared state ran concurrently:
- Api.Tests, Client.Tests, Core.Tests, DataAccess.Tests
- DataSync.Tests, DataSync.Dev.Tests, ExcelIO.Tests
- Host.Tests, Infrastructure.Tests
### Phase 2: Sequential Execution (2 projects)
Projects with external dependencies ran sequentially:
1. **Database.Tests** - Requires Docker SQL Server (`scopingtool-sqlserver` on port 1434)
2. **Api.IntegrationTests** - Uses WebApplicationFactory with database connection
## Build Warnings
Two warnings were noted during build (non-blocking):
1. `StatusHubTests.cs(107,59)`: CS0252 - Possible unintended reference comparison
2. Static file middleware warning - WebRootPath not found (expected for API-only tests)
## Failures and Resolutions
**No failures encountered.** All 856 tests passed successfully.
## Notes
- All tests use xUnit 2.9.3 with .NET 10
- Database.Tests require the Docker SQL Server container to be running
- ExcelIO.Tests have longer execution due to actual Excel file I/O operations
- Host.Tests project exists but has no implemented tests yet (placeholder)