Files
DP44/docs/ai/Common/DTS.Common/Interface/TestModule.md

42 lines
2.1 KiB
Markdown
Raw Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.Common/Interface/TestModule/ITestModuleView.cs
- Common/DTS.Common/Interface/TestModule/ITestModuleViewModel.cs
generated_at: "2026-04-17T16:07:10.454200+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "1757ca37501c0a0c"
---
# TestModule
### Purpose
This module defines the contract for a Test Module component within the DTS application, following a View-ViewModel pattern. It provides interfaces for a testing or assembly inspection feature, allowing the ViewModel to expose a list of assemblies that the View can consume. This appears to be part of a plugin or module testing infrastructure.
### Public Interface
**ITestModuleView**
- Signature: `public interface ITestModuleView : IBaseView { }`
- Description: Marker interface for the Test Module View. Inherits from `IBaseView` but defines no additional members.
**ITestModuleViewModel**
- Signature: `public interface ITestModuleViewModel : IBaseViewModel`
- Description: ViewModel interface for the Test Module. Inherits from `IBaseViewModel` and exposes assembly data.
- Property: `List<Assembly> AssemblyList { get; set; }` - Gets or sets a list of .NET assemblies, presumably for inspection, testing, or module loading purposes.
### Invariants
- `ITestModuleView` must always be assignable to `IBaseView`.
- `ITestModuleViewModel` must always be assignable to `IBaseViewModel`.
- The `AssemblyList` property may be null or empty; null safety is not enforced at the interface level.
### Dependencies
- **Depends on**: `DTS.Common.Base` (for `IBaseView` and `IBaseViewModel` base interfaces)
- **Depends on**: `System.Collections.Generic` (for `List<T>`)
- **Depends on**: `System.Reflection` (for `Assembly` type)
- **Depended on by**: Cannot be determined from source alone; likely consumed by concrete View/ViewModel implementations and a DI container or navigation service.
### Gotchas
- The `AssemblyList` uses `set` accessor, meaning the entire list can be replaced. Consumers should be aware that the reference can change, not just the contents.
- Neither interface defines any methods for loading or validating assemblies—this logic is left to implementations.
---