Mediate.Conformance.AdapterCase.Laws.Versions (mediate_conformance v0.1.0)

Copy Markdown View Source

The bodies of the change-management laws, cm3-01 to cm3-04, over the Mediate.Conformance.Versions module the template got. They assert:

  • what the publication of a version emits
  • what a decision reports before and after
  • what a tightened rule is
  • how long it takes to be in force

Each restores the original rule before it returns, whatever it asserted, so the next test starts from the boot rules. Each is a function of the test context, as Mediate.Conformance.AdapterCase.Laws describes.

Summary

Functions

cm3-04: after the tighten the port denies the reader. The law prints the time to the first denial and never asserts it.

cm3-01: a tighten publishes one version event with the version, which names its author and approval.

cm3-03: the tightened rule is a version that names its artifact, as content or as a pointer. Under it the port denies the reader.

cm3-02: the decision before the tighten reports the boot version. The tightened version differs from it. The first denial after the tighten reports the tightened version.

Functions

propagation(context)

@spec propagation(Mediate.Conformance.AdapterCase.Laws.context()) :: true

cm3-04: after the tighten the port denies the reader. The law prints the time to the first denial and never asserts it.

publish(map)

cm3-01: a tighten publishes one version event with the version, which names its author and approval.

tightened_artifact(context)

@spec tightened_artifact(Mediate.Conformance.AdapterCase.Laws.context()) :: :ok

cm3-03: the tightened rule is a version that names its artifact, as content or as a pointer. Under it the port denies the reader.

version_reported(context)

@spec version_reported(Mediate.Conformance.AdapterCase.Laws.context()) :: :ok

cm3-02: the decision before the tighten reports the boot version. The tightened version differs from it. The first denial after the tighten reports the tightened version.