Skip to content

Restructure public interface

Vegard Sandengen requested to merge veeg/restructure-public-interface into master

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 of into_composition(self) -> Composition
  • Replacing DockerTest::add_composition(c: Composition) with DockerTest::provide_container(c: impl ContainerSpecification)
  • Provide 4 structs that implement ContainerSpecification, all of which represents the individual operating modes expressed by StaticManagementPolicy.
    • 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

Merge request reports