Aggregating

trait Aggregating[-A]

Typeclass that enables for aggregations certain contain syntax in the ScalaTest matchers DSL.

An Aggregating[A] provides access to the "aggregating nature" of type A in such a way that relevant contain matcher syntax can be used with type A. An A can be any type of aggregation—an object that in some way aggregates or brings together other objects. ScalaTest provides implicit implementations for several types out of the box in the Aggregating companion object:

  • scala.collection.GenTraversable

  • String

  • Array

  • java.util.Collection

  • java.util.Map

The contain syntax enabled by this trait is:

  • result should contain atLeastOneOf (1, 2, 3)

  • result should contain atMostOneOf (1, 2, 3)

  • result should contain only (1, 2, 3)

  • result should contain allOf (1, 2, 3)

  • result should contain theSameElementsAs (List(1, 2, 3))

You can enable the contain matcher syntax enabled by Aggregating on your own type U by defining an Aggregating[U] for the type and making it available implicitly.

Note, for an explanation of the difference between Containing and Aggregating, both of which enable contain matcher syntax, see the Containing versus Aggregating section of the main documentation for trait Containing.

Companion:
object
class Object
trait Matchable
class Any

Value members

Abstract methods

def containsAllOf(aggregation: A, eles: Seq[Any]): Boolean

Implements contain allOf syntax for aggregations of type A.

Implements contain allOf syntax for aggregations of type A.

Value parameters:
aggregation

an aggregation about which an assertion is being made

eles

elements all of which should be contained in the passed aggregation

Returns:

true if the passed aggregation contains all of the passed elements

def containsAtLeastOneOf(aggregation: A, eles: Seq[Any]): Boolean

Implements contain atLeastOneOf syntax for aggregations of type A.

Implements contain atLeastOneOf syntax for aggregations of type A.

Value parameters:
aggregation

an aggregation about which an assertion is being made

eles

elements at least one of which should be contained in the passed aggregation

Returns:

true if the passed aggregation contains at least one of the passed elements

def containsAtMostOneOf(aggregation: A, eles: Seq[Any]): Boolean

Implements contain atMostOneOf syntax for aggregations of type A.

Implements contain atMostOneOf syntax for aggregations of type A.

Value parameters:
aggregation

an aggregation about which an assertion is being made

eles

elements at most one of which should be contained in the passed aggregation

Returns:

true if the passed aggregation contains at most one of the passed elements

def containsOnly(aggregation: A, eles: Seq[Any]): Boolean

Implements contain only syntax for aggregations of type A.

Implements contain only syntax for aggregations of type A.

Value parameters:
aggregation

an aggregation about which an assertion is being made

eles

the only elements that should be contained in the passed aggregation

Returns:

true if the passed aggregation contains only the passed elements

def containsTheSameElementsAs(leftAggregation: A, rightAggregation: Iterable[Any]): Boolean

Implements contain theSameElementsAs syntax for aggregations of type A.

Implements contain theSameElementsAs syntax for aggregations of type A.

Value parameters:
leftAggregation

an aggregation about which an assertion is being made

rightAggregation

an aggregation that should contain the same elements as the passed leftAggregation

Returns:

true if the passed leftAggregation contains the same elements as the passed rightAggregation