08f5aa1447
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).
163 lines
5.6 KiB
Markdown
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)
|