Restructure public interface
This is a WIP attempt to see play with how a new interface to replace Composition
can work out to more clearly express the various variants we want to support can be appropriately expressed.
This refactor includes:
- Making
Compositon
private. - Adding a trait
ContainerSpecification
, which requires an implementation ofinto_composition(self) -> Composition
- Replacing
DockerTest::add_composition(c: Composition)
withDockerTest::provide_container(c: impl ContainerSpecification)
- Provide 4 structs that implement
ContainerSpecification
, all of which represents the individual operating modes expressed byStaticManagementPolicy
.-
TestBodySpecification
- nominal test container -
TestSuiteSpecification
- the internal management policy (least fleshed out) -
DynamicSpecification
- the dynamic management policy -
ExternalSpecificatiton
- the external management policy
-
Edited by Vegard Sandengen