Summary
This issue tracks the implementation of Sub Issue 13 from the GeneralUpdate Refactoring Plan v2 : Comprehensive Unit Test Coverage .
Scope
Add thorough unit and integration tests covering the following areas:
1. Client ↔ Upgrade Mutual Upgrade Integration
Client validates versions for both client and upgrade
ProcessInfo serialization round-trip for IPC
VersionInfo with all fields (cross-version, forcibly, freeze)
Version chain sorting by release date
ConfigurationMapper: Configinfo → GlobalConfigInfo → ProcessInfo mapping
2. Differential Upgrade (Clean → Dirty Full Cycle)
Full mesh update: generate patches in client context, apply in upgrade context
Binary file differential (EXE/DLL/image assets)
Large binary files (100KB+)
Deeply nested directory structures
Mixed operations: modified, added, deleted, unchanged simultaneously
DiffPipeline with parallel/serial/cancellation/progress
3. Event Notification Pipeline (Push Upgrade)
All 7 event types registration and dispatch
Push upgrade simulation (server notifies, client receives)
Multiple listeners for the same event type
Listener exception isolation
Forcibly update notification
4. Parameter Matrix Combinations
UpdateOptions constants accessibility
Configinfo validation with various auth schemes (Bearer, ApiKey, Basic, HMAC)
Configinfo with various version formats
Configinfo with various update URLs
Full production configuration with all fields
BlackList configuration variations
5. Real-world Developer Usage Scenarios
Minimal setup (only required fields)
Full production setup with all options
Method chaining (fluent API)
Precheck/skip callbacks
Custom option injection
Silent update configuration
6. StorageManager / Backup Tests
GetTempDirectory creation
Backup file copying
Skip directory filtering
Acceptance Criteria
Related PRs
This is the final Sub Issue (#13 ) in the refactoring plan. Previous issues:
PR: Sub Issue 2 - Merge Common + ClientCore + Core into unified GeneralUpdate.Core #312 , PR: Sub Issue 1 - Security hardening (SSL fix, HTTP auth, HttpClient pooling) #313 , PR: Sub Issue 3 - UpdateOptions config system + extension points #315 , PR: Sub Issue 4a - Download abstractions, HttpDownloadExecutor, retry policy #317 , PR: Sub Issue 4b - Download orchestrator + status reporting #319 , PR: Sub Issue 5 - EventManager thread safety fix #321 , PR: Sub Issue 7 - OSS options + mark legacy classes obsolete #324 , PR: Sub Issue 8 - BlackListManager Lazy<T> + IBlackListMatcher #326 , PR: Sub Issue 9 - BackupConfig + Restore/CleanBackup #328 , PR: Sub Issue 10 - IUpdateHooks + UnixPermissionHooks #330 , PR: Sub Issue 11+12 - GracefulExit utility #332
Summary
This issue tracks the implementation of Sub Issue 13 from the GeneralUpdate Refactoring Plan v2: Comprehensive Unit Test Coverage.
Scope
Add thorough unit and integration tests covering the following areas:
1. Client ↔ Upgrade Mutual Upgrade Integration
2. Differential Upgrade (Clean → Dirty Full Cycle)
3. Event Notification Pipeline (Push Upgrade)
4. Parameter Matrix Combinations
5. Real-world Developer Usage Scenarios
6. StorageManager / Backup Tests
Acceptance Criteria
Related PRs
This is the final Sub Issue (#13) in the refactoring plan. Previous issues: