TextExplanatoryAssertionGroupFormatter

Represents an AssertionFormatter which formats AssertionGroups with an ExplanatoryAssertionGroupType by neglecting the group header and defining an child-AssertionFormatterParameterObject which indicates that we are in an explanatory assertion.

Furthermore it uses the bullet point defined for WarningAssertionGroupType in bulletPoints (see constructor) ("❗❗ " if absent) as prefix for the child-AssertionFormatterParameterObject if the AssertionGroup.type is a WarningAssertionGroupType. Otherwise it is using the bullet point defined for ExplanatoryAssertionGroupType ("» " if absent).

Its usage is intended for text output (e.g. to the console).

Parameters

bulletPoints

The formatter uses the bullet point defined for WarningAssertionGroupType ("❗❗ " if absent) or the bullet point defined for ExplanatoryAssertionGroupType ("» " if absent) as prefix of the child-AssertionFormatterParameterObject.

assertionFormatterController

The controller to which this formatter gives back the control when it comes to format children of an AssertionGroup.

Constructors

Link copied to clipboard
constructor(bulletPoints: Map<KClass<out BulletPointIdentifier>, String>, assertionFormatterController: AssertionFormatterController)

Represents an AssertionFormatter which formats AssertionGroups with an ExplanatoryAssertionGroupType by defining only an AssertionFormatterParameterObject -- which indicates that we are in an explanatory expectation-group and uses the bulletPoints (passed as argument) as prefix -- and completely ignoring AssertionGroup.description and AssertionGroup.representation.

Functions

Link copied to clipboard
override fun canFormat(assertion: Assertion): Boolean

Returns true if the given assertion is an AssertionGroup and its type is T or a sub type.

Link copied to clipboard
open fun format(assertion: Assertion, parameterObject: AssertionFormatterParameterObject)

Formats the given assertion and appends the result to the sb of the given parameterObject.

Link copied to clipboard
override fun formatGroup(assertionGroup: AssertionGroup, parameterObject: AssertionFormatterParameterObject, formatAssertions: (AssertionFormatterParameterObject, (Assertion) -> Unit) -> Unit)

Checks whether assertionGroup is T or a sub type and if so, calls formatGroupHeaderAndGetChildParameterObject and uses the resulting child-AssertionFormatterParameterObject to format AssertionGroup.assertions.

Link copied to clipboard
override fun formatNonGroup(assertion: Assertion, parameterObject: AssertionFormatterParameterObject): Nothing

Always throws an UnsupportedOperationException, because this AssertionFormatter can only format AssertionGroups.