Refacto/eosu 1007 replace eos config tests with product config-->6.1.0#1263
Draft
OswaldoApexSystems wants to merge 6 commits intorelease-6.1.0from
Draft
Refacto/eosu 1007 replace eos config tests with product config-->6.1.0#1263OswaldoApexSystems wants to merge 6 commits intorelease-6.1.0from
OswaldoApexSystems wants to merge 6 commits intorelease-6.1.0from
Conversation
[Public] Release 6.0.0
Release 6.0.2
This change migrates the configuration system from the legacy EOSConfig
model to the new ProductConfig-based architecture.
Key points of this migration:
- Replaced EOSConfig usage with ProductConfig as the main configuration
entry point across runtime and tests.
- Refactored validation logic to rely on strong typing and domain
invariants instead of string parsing.
- Introduced dedicated FieldValidators aligned with the new model:
* GUIDFieldValidatorAttribute for Guid-based fields (rejects Guid.Empty).
* SandboxIdFieldValidatorAttribute for SandboxId value object validation.
* ProductionEnvironmentsFieldValidatorAttribute to validate deployment
aggregates.
* ClientCredentialsFieldValidatorAttribute to ensure at least one
complete client credential exists.
- Removed legacy string-based ID validation patterns in favor of
semantic validation using Guid, SandboxId, and aggregate state.
Domain model improvements:
- Deployment validity is now expressed exclusively through domain
invariants (Deployment.IsComplete) instead of FieldValidator usage.
- SandboxId was hardened to be null-safe and robust against invalid input,
preventing runtime exceptions and clarifying the distinction between
"valid", "invalid", and "empty" states.
- Validation responsibilities are now clearly split:
* FieldValidators validate configuration completeness at the
ProductConfig boundary.
* Domain objects (Deployment, SandboxId, Credentials) enforce their
own invariants internally.
Test suite updates:
- Removed or migrated EOSConfig tests to ProductConfigTests.
- Added comprehensive test coverage for:
* ProductConfig fields and validators.
* ProductionEnvironments and ClientCredentials aggregates.
* Deployment domain invariants.
* SandboxId value object behavior, including edge cases, rollback
behavior, and format semantics.
- Ensured tests are deterministic by explicitly resetting singleton
config state between test cases.
Overall, this commit modernizes the configuration system by:
- Eliminating legacy parsing-based validation.
- Making invalid states unrepresentable through strong typing.
- Aligning runtime behavior, validation, and tests around the same
domain rules.
…Tests-with-ProductConfig
…Tests-with-ProductConfig
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EOSU 1007 Update Config/EOSConfigTests.cs

This change migrates the configuration system from the legacy EOSConfig
model to the new ProductConfig-based architecture.
Key points of this migration:
entry point across runtime and tests.
invariants instead of string parsing.
aggregates.
complete client credential exists.
semantic validation using Guid, SandboxId, and aggregate state.
Domain model improvements:
invariants (Deployment.IsComplete) instead of FieldValidator usage.
preventing runtime exceptions and clarifying the distinction between
"valid", "invalid", and "empty" states.
ProductConfig boundary.
own invariants internally.
Test suite updates:
behavior, and format semantics.
config state between test cases.
Overall, this commit modernizes the configuration system by:
domain rules.