package enablers
Classes, traits, and objects for typeclasses that enable ScalaTest's DSLs.
This package is released as part of the scalatest-core module.
- Source
- package.scala
- Alphabetic
- By Inheritance
- enablers
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
-    trait Aggregating[-A] extends AnyRefTypeclass that enables for aggregations certain containsyntax in the ScalaTest matchers DSL.Typeclass that enables for aggregations certain containsyntax in the ScalaTest matchers DSL.An Aggregating[A]provides access to the "aggregating nature" of typeAin such a way that relevantcontainmatcher syntax can be used with typeA. AnAcan 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 theAggregatingcompanion object:- scala.collection.GenTraversable
- String
- Array
- java.util.Collection
- java.util.Map
 The containsyntax 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 containmatcher syntax enabled byAggregatingon your own typeUby defining anAggregating[U]for the type and making it available implicitly.Note, for an explanation of the difference between ContainingandAggregating, both of which enablecontainmatcher syntax, see the Containing versus Aggregating section of the main documentation for traitContaining.
-  trait AggregatingHighPriorityImplicits extends AggregatingStandardImplicits
-  trait AggregatingImpls extends AnyRef
-  trait AggregatingJavaImplicits extends AggregatingImpls
-  trait AggregatingStandardImplicits extends AggregatingJavaImplicits
-    trait Collecting[E, C] extends AnyRefSupertrait for typeclasses that enable loneElementand inspectors syntax for collections.Supertrait for typeclasses that enable loneElementand inspectors syntax for collections.A Collecting[E, C]provides access to the "collecting nature" of typeCin such a way thatloneElementsyntax can be used with typeC. ACcan be any type of "collecting", a type that in some way collects or brings together elements of typeE. ScalaTest provides implicit implementations for several types. You can enable thecontainmatcher syntax on your own typeUby defining anCollecting[E, U]for the type and making it available implicitly.ScalaTest provides implicit Collectinginstances forscala.collection.GenTraversable,Array,java.util.Collectionandjava.util.Mapin theCollectingcompanion object.
-    trait Containing[-C] extends AnyRefSupertrait for typeclasses that enable certain containmatcher syntax for containers.Supertrait for typeclasses that enable certain containmatcher syntax for containers.A Containing[C]provides access to the "containing nature" of typeCin such a way that relevantcontainmatcher syntax can be used with typeC. ACcan be any type of "container," a type that in some way can contains one or more other objects. ScalaTest provides implicit implementations for several types. You can enable thecontainmatcher syntax on your own typeUby defining anContaining[U]for the type and making it available implicitly.ScalaTest provides implicit Containinginstances forscala.collection.GenTraversable,java.util.Collection,java.util.Map,String,Array, andscala.Optionin theContainingcompanion object.ContainingversusAggregatingThe difference between ContainingandAggregatingis thatContainingenablescontainmatcher syntax that makes sense for "box" types that can contain at most one value (for example,scala.Option), whereasAggregatingenablescontainmatcher syntax for full-blown collections and other aggregations of potentially more than one object. For example, it makes sense to make assertions like these, which are enabled byContaining, forscala.Option:val option: Option[Int] = Some(7) option should contain (7) option should contain oneOf (6, 7, 8) option should contain noneOf (3, 4, 5) However, given a scala.Optioncan only ever contain at most one object, it doesn't make sense to make assertions like the following, which are enabled viaAggregation:// Could never succeed, so does not compile option should contain allOf (6, 7, 8) The above assertion could never succceed, because an option cannot contain more than one value. By default the above statement does not compile, because containallOfis enabled byAggregating, and ScalaTest provides no implicitAggregatinginstance for typescala.Option.
-  trait ContainingHighPriorityImplicits extends ContainingStandardImplicits
-  trait ContainingImpls extends AnyRef
-  trait ContainingStandardImplicits extends JavaContainingImplicits
-    trait Definition[-T] extends AnyRefSupertrait for typeclasses that enable the be definedmatcher syntax.Supertrait for typeclasses that enable the be definedmatcher syntax.A Definition[T]provides access to the "definition nature" of typeSin such a way thatbe definedmatcher syntax can be used with typeT. ATcan be any type for which the concept of being defined makes sense, such asscala.Option. ScalaTest provides implicit implementation forscala.Option. You can enable thebe definedmatcher syntax on your own typeUby defining aDefinition[U]for the type and making it available implicitly.ScalaTest provides an implicit Definitioninstance forscala.Option, arbitary object withisDefined()orisDefinedin theDefinitioncompanion object.
-    trait Emptiness[-T] extends AnyRefSupertrait for typeclasses that enable be emptymatcher syntax.Supertrait for typeclasses that enable be emptymatcher syntax.An Emptiness[T]provides access to the "emptiness" of typeTin such a way thatbe emptymatcher syntax can be used with typeT. ATcan be any type that in some way can be empty. ScalaTest provides implicit implementations for several types. You can enable thebe emptymatcher syntax on your own typeUby defining anEmptiness[U]for the type and making it available implicitly.ScalaTest provides implicit Emptinessinstances forscala.collection.GenTraversable,java.util.Collection,java.util.Map,String,Array, andscala.Optionin theEmptinesscompanion object.
-    trait Existence[-S] extends AnyRefSupertrait for typeclasses that enable the existmatcher syntax.Supertrait for typeclasses that enable the existmatcher syntax.An Existence[S]provides access to the "existence nature" of typeSin such a way thatexistmatcher syntax can be used with typeS. AScan be any type for which the concept of existence makes sense, such asjava.io.File. ScalaTest provides implicit implementations forjava.io.File. You can enable theexistmatcher syntax on your own typeUby defining aExistence[U]for the type and making it available implicitly.ScalaTest provides an implicit Existenceinstance forjava.io.Filein theExistencecompanion object.
-   abstract  class ExpectationWheneverAsserting extends UnitWheneverAssertingAbstract class that in the future will hold an intermediate priority WheneverAssertingimplicit, which will enable inspector expressions that have result typeExpectation, a more composable form of assertion that returns a result instead of throwing an exception when it fails.
-    trait Futuristic[T] extends AnyRefSupertrait for Futureistictypeclasses.Supertrait for Futureistictypeclasses.Trait Futureisticis a typeclass trait for objects that can be used with thecomplete-lastlysyntax of traitCompleteLastly.
-    trait InspectorAsserting[T] extends AnyRefSupertrait for InspectorAssertingtypeclasses, which are used to implement and determine the result type ofInspectorsmethods such asforAll,forBetween, etc.Supertrait for InspectorAssertingtypeclasses, which are used to implement and determine the result type ofInspectorsmethods such asforAll,forBetween, etc.Currently, an inspector expression will have result type Assertion, if the function passed has result typeAssertion, else it will have result typeUnit.
-  trait JavaContainingImplicits extends ContainingImpls
-    trait KeyMapping[-M] extends AnyRefSupertrait for typeclasses that enable contain keymatcher syntax.Supertrait for typeclasses that enable contain keymatcher syntax.A KeyMapping[M]provides access to the "key mapping nature" of typeMin such a way thatcontain keymatcher syntax can be used with typeM. AMcan be any type for whichcontain keysyntax makes sense. ScalaTest provides implicit implementations forscala.collection.GenMapandjava.util.Map. You can enable thecontain keymatcher syntax on your own typeUby defining aKeyMapping[U]for the type and making it available implicitly.ScalaTest provides implicit KeyMappinginstances forscala.collection.GenMap, andjava.util.Mapin theKeyMappingcompanion object.
-    trait Length[T] extends AnyRefSupertrait for Lengthtypeclasses.Supertrait for Lengthtypeclasses.Trait Lengthis a typeclass trait for objects that can be queried for length. Objects of type T for which an implicitLength[T]is available can be used with theshould have lengthsyntax. In other words, this trait enables you to use the length checking syntax with arbitrary objects. As an example, the followingBridgeclass:scala> import org.scalatest._ import org.scalatest._ scala> import enablers.Length import enablers.Length scala> import Matchers._ import Matchers._ scala> case class Bridge(span: Int) defined class Bridge Out of the box you can't use the should have lengthsyntax withBridge, because ScalaTest doesn't know that a bridge's span means its length:scala> val bridge = new Bridge(2000) bridge: Bridge = Bridge(2000) scala> bridge should have length 2000 <console>:34: error: could not find implicit value for parameter len: org.scalatest.enablers.Length[Bridge] bridge should have length 2000 ^You can teach this to ScalaTest, however, by defining an implicit Length[Bridge].scala> implicit val lengthOfBridge: Length[Bridge] = | new Length[Bridge] { | def lengthOf(b: Bridge): Long = b.span | } lengthOfBridge: org.scalatest.enablers.Length[Bridge] = $anon$1@3fa27a4aWith the implicit Length[Bridge]in scope, you can now use ScalaTest'sshould have lengthsyntax withBridgeinstances:scala> bridge should have length 2000 res4: org.scalatest.Assertion = Succeeded scala> bridge should have length 2001 org.scalatest.exceptions.TestFailedException: Bridge(2000) had length 2000 instead of expected length 2001 at org.scalatest.MatchersHelper$.newTestFailedException(MatchersHelper.scala:148) at org.scalatest.MatchersHelper$.indicateFailure(MatchersHelper.scala:366) at org.scalatest.Matchers$ResultOfHaveWordForExtent.length(Matchers.scala:2720) ... 43 elided 
-    trait Messaging[T] extends AnyRefSupertrait for Messagingtypeclasses.Supertrait for Messagingtypeclasses.Trait Messagingis a typeclass trait for objects that can be queried for message. Objects of type T for which an implicitMessaging[T]is available can be used with theshould have messagesyntax. You can enable thehave messagematcher syntax on your own typeUby defining aMessaging[U]for the type and making it available implicitly.ScalaTest provides an implicit Messaginginstance forjava.lang.Throwableand arbitary object withmessage(),message,getMessage()orgetMessagemethod in theMessagingcompanion object.
-    trait Readability[-T] extends AnyRefSupertrait for typeclasses that enable the be readablematcher syntax.Supertrait for typeclasses that enable the be readablematcher syntax.A Readability[T]provides access to the "readable nature" of typeTin such a way thatbe readablematcher syntax can be used with typeT. ATcan be any type for which the concept of being readable makes sense, such asjava.io.File. You can enable thebe readablematcher syntax on your own typeUby defining aReadability[U]for the type and making it available implicitly.ScalaTest provides an implicit Readabilityinstance forjava.io.Fileand arbitary object withisReadable()orisReadablein theReadabilitycompanion object.
-    trait Retrying[T] extends AnyRefSupertrait for Retryingtypeclasses, which are used to implement and determine the behavior ofEventuallymethods.Supertrait for Retryingtypeclasses, which are used to implement and determine the behavior ofEventuallymethods.Currently, implementations for anything type TandFuture[T]is provided.
-    trait Sequencing[-S] extends AnyRefTypeclass that enables for sequencing certain containsyntax in the ScalaTest matchers DSL.Typeclass that enables for sequencing certain containsyntax in the ScalaTest matchers DSL.An Sequencing[A]provides access to the "sequenching nature" of typeAin such a way that relevantcontainmatcher syntax can be used with typeA. AnAcan be any type of sequencing—an object that in some way brings together other objects in order. ScalaTest provides implicit implementations for several types out of the box in theSequencingcompanion object:- scala.collection.GenSeq
- scala.collection.SortedSet
- scala.collection.SortedMap
- Array
- java.util.List
- java.util.SortedSet
- java.util.SortedMap
- String
 The containsyntax enabled by this trait is:- result should contain inOrder (1, 2, 3)
- result should contain inOrderOnly (1, 2, 3)
- result should contain theSameElementsInOrderAs List(1, 2, 3)
 You can enable the containmatcher syntax enabled bySequencingon your own typeUby defining anSequencing[U]for the type and making it available implicitly.
-    trait Size[T] extends AnyRefSupertrait for Sizetypeclasses.Supertrait for Sizetypeclasses.Trait Sizeis a typeclass trait for objects that can be queried for size. Objects of type T for which an implicitSize[T]is available can be used with theshould have sizesyntax. In other words, this trait enables you to use the size checking syntax with arbitrary objects. As an example, the followingBridgeclass:scala> import org.scalatest._ import org.scalatest._ scala> import enablers.Size import enablers.Size scala> import Matchers._ import Matchers._ scala> case class Bridge(span: Int) defined class Bridge Out of the box you can't use the should have sizesyntax withBridge, because ScalaTest doesn't know that a bridge's span means its size:scala> val bridge = new Bridge(2000) bridge: Bridge = Bridge(2000) scala> bridge should have size 2000 <console>:34: error: could not find implicit value for parameter sz: org.scalatest.enablers.Size[Bridge] bridge should have size 2000 ^You can teach this to ScalaTest, however, by defining an implicit Size[Bridge].scala> implicit val sizeOfBridge: Size[Bridge] = | new Size[Bridge] { | def sizeOf(b: Bridge): Long = b.span | } sizeOfBridge: org.scalatest.enablers.Size[Bridge] = $anon$1@3fa27a4aWith the implicit Size[Bridge]in scope, you can now use ScalaTest'sshould have sizesyntax withBridgeinstances:scala> bridge should have size 2000 res4: org.scalatest.Assertion = Succeeded scala> bridge should have size 2001 org.scalatest.exceptions.TestFailedException: Bridge(2000) had size 2000 instead of expected size 2001 at org.scalatest.MatchersHelper$.newTestFailedException(MatchersHelper.scala:148) at org.scalatest.MatchersHelper$.indicateFailure(MatchersHelper.scala:366) at org.scalatest.Matchers$ResultOfHaveWordForExtent.size(Matchers.scala:2720) ... 43 elided 
-    trait Sortable[-S] extends AnyRefSupertrait for typeclasses that enable the besortedmatcher syntax.Supertrait for typeclasses that enable the besortedmatcher syntax.A Sortable[S]provides access to the "sortable nature" of typeSin such a way thatbesortedmatcher syntax can be used with typeS. AnScan be any type for which the concept of being sorted makes sense, such as sequences. ScalaTest provides implicit implementations for several types. You can enable thebesortedmatcher syntax on your own typeUby defining aSortable[U]for the type and making it available implicitly.ScalaTest provides an implicit Sortableinstance for types out of the box in theSortablecompanion object:- scala.collection.GenSeq
- Array
- java.util.List
 
-    trait TableAsserting[ASSERTION] extends AnyRefSupertrait for TableAssertingtypeclasses, which are used to implement and determine the result type of TableDrivenPropertyChecks'sforAll,forEveryandexistsmethod.Supertrait for TableAssertingtypeclasses, which are used to implement and determine the result type of TableDrivenPropertyChecks'sforAll,forEveryandexistsmethod.Currently, an TableDrivenPropertyChecks expression will have result type Assertion, if the function passed has result typeAssertion, else it will have result typeUnit.
-    trait Timed[T] extends AnyRefTrait that provides a timeoutAfterconstruct, which allows you to specify a timeout for an operation passed as a by-name parameter, as well as a way to signal/interrupt it if the operation exceeds its time limit.
-   abstract  class UnitInspectorAsserting extends AnyRefClass holding lowest priority InspectorAssertingimplicit, which enables inspector expressions that have result typeUnit.
-   abstract  class UnitTableAsserting extends AnyRefClass holding lowest priority TableAssertingimplicit, which enables TableDrivenPropertyChecks expressions that have result typeUnit.
-   abstract  class UnitWheneverAsserting extends AnyRefClass holding lowest priority WheneverAssertingimplicit, which enables Whenever expressions that have result typeUnit.
-    trait ValueMapping[-M] extends AnyRefSupertrait for typeclasses that enable contain valuematcher syntax.Supertrait for typeclasses that enable contain valuematcher syntax.A ValueMapping[M]provides access to the "value mapping nature" of typeMin such a way thatcontainvaluematcher syntax can be used with typeM. AnMcan be any type for whichcontainvaluesyntax makes sense. ScalaTest provides implicit implementations forscala.collection.GenMapandjava.util.Map. You can enable thecontainvaluematcher syntax on your own typeUby defining aValueMapping[U]for the type and making it available implicitly.ScalaTest provides implicit ValueMappinginstances forscala.collection.GenMap, andjava.util.Mapin theValueMappingcompanion object.
-    trait WheneverAsserting[T] extends AnyRefSupertrait for WheneverAssertingtypeclasses, which are used to implement and determine the result type of Whenever'swhenevermethod.
-    trait Writability[-T] extends AnyRefSupertrait for typeclasses that enable the bewritablematcher syntax.Supertrait for typeclasses that enable the bewritablematcher syntax.A Writability[T]provides access to the "writable nature" of typeTin such a way thatbewritablematcher syntax can be used with typeT. ATcan be any type for which the concept of being writable makes sense, such asjava.io.File. ScalaTest provides implicit implementation forjava.io.File. You can enable thebewritablematcher syntax on your own typeUby defining aWritability[U]for the type and making it available implicitly.ScalaTest provides an implicit Writabilityinstance forjava.io.Fileand arbitary object withisWritable()orisWritablein theWritabilitycompanion object.
Value Members
-    object Aggregating extends AggregatingHighPriorityImplicitsCompanion object for Aggregatingthat provides implicit implementations for the following types:Companion object for Aggregatingthat provides implicit implementations for the following types:- scala.collection.GenTraversable
- String
- Array
- java.util.Collection
- java.util.Map
 
-    object CollectingCompanion object for Collectingthat provides implicit implementations for the following types:Companion object for Collectingthat provides implicit implementations for the following types:- scala.collection.GenTraversable
- Array
- java.util.Collection
- java.util.Map
 
-    object Containing extends ContainingHighPriorityImplicitsCompanion object for Containingthat provides implicit implementations for the following types:Companion object for Containingthat provides implicit implementations for the following types:- scala.collection.GenTraversable
- String
- Array
- scala.Option
- java.util.Collection
- java.util.Map
 
-    object DefinitionCompanion object for Definitionthat provides implicit implementations for the following types:Companion object for Definitionthat provides implicit implementations for the following types:- scala.Option
- arbitary object with a isDefined()method that returnsBoolean
- arbitary object with a parameterless isDefinedmethod that returnsBoolean
 
-    object EmptinessCompanion object for Emptinessthat provides implicit implementations for the following types:Companion object for Emptinessthat provides implicit implementations for the following types:- scala.collection.GenTraversable
- String
- Array
- scala.Option
- java.util.Collection
- java.util.Map
- arbitary object with a isEmpty()method that returnsBoolean
- arbitary object with a parameterless isEmptymethod that returnsBoolean
 
-    object ExistenceCompanion object for Existencethat provides implicit implementations forjava.io.File.
-    object FuturisticCompanion object for trait Futuristicthat contains implicitFuturisticproviders forFutureOutcomeandFuture[T]for any typeT.
-    object InspectorAsserting extends UnitInspectorAssertingCompanion object to InspectorAssertingthat provides two implicit providers, a higher priority one for passed functions that have result typeAssertion, which also yields result typeAssertion, and one for any other type, which yields result typeUnit.
-    object KeyMappingCompanion object for KeyMappingthat provides implicit implementations forscala.collection.GenMapandjava.util.Map.
-    object LengthCompanion object for Lengththat provides implicit implementations for the following types:Companion object for Lengththat provides implicit implementations for the following types:- scala.collection.GenSeq
- String
- Array
- java.util.Collection
- arbitary object with a length()method that returnsInt
- arbitary object with a parameterless lengthmethod that returnsInt
- arbitary object with a getLength()method that returnsInt
- arbitary object with a parameterless getLengthmethod that returnsInt
- arbitary object with a length()method that returnsLong
- arbitary object with a parameterless lengthmethod that returnsLong
- arbitary object with a getLength()method that returnsLong
- arbitary object with a parameterless getLengthmethod that returnsLong
 
-    object MessagingCompanion object for Messagingthat provides implicit implementations for the following types:Companion object for Messagingthat provides implicit implementations for the following types:- java.lang.Throwable
- arbitary object with a message()method that returnsString
- arbitary object with a parameterless messagemethod that returnsString
- arbitary object with a getMessage()method that returnsString
- arbitary object with a parameterless getMessagemethod that returnsString
 
-    object ReadabilityCompanion object for Readabilitythat provides implicit implementations for the following types:Companion object for Readabilitythat provides implicit implementations for the following types:- java.io.File
- arbitary object with a isReadable()method that returnsBoolean
- arbitary object with a parameterless isReadablemethod that returnsBoolean
 
-    object RetryingCompanion object that provides Retryingimplementations forTandFuture[T].
-    object SequencingCompanion object for Sequencingthat provides implicit implementations for the following types:Companion object for Sequencingthat provides implicit implementations for the following types:- scala.collection.GenSeq
- scala.collection.SortedSet
- scala.collection.SortedMap
- Array
- java.util.List
- java.util.SortedSet
- java.util.SortedMap
- String
 
-    object SizeCompanion object for Sizethat provides implicit implementations for the following types:Companion object for Sizethat provides implicit implementations for the following types:- scala.collection.GenTraversable
- String
- Array
- java.util.Collection
- java.util.Map
- arbitary object with a size()method that returnsInt
- arbitary object with a parameterless sizemethod that returnsInt
- arbitary object with a getSize()method that returnsInt
- arbitary object with a parameterless getSizemethod that returnsInt
- arbitary object with a size()method that returnsLong
- arbitary object with a parameterless sizemethod that returnsLong
- arbitary object with a getSize()method that returnsLong
- arbitary object with a parameterless getSizemethod that returnsLong
 
-    object SortableCompanion object for Sortablethat provides implicit implementations for the following types:Companion object for Sortablethat provides implicit implementations for the following types:- scala.collection.GenSeq
- Array
- java.util.List
 
-    object TableAsserting extends UnitTableAssertingCompanion object to TableAssertingthat provides two implicit providers, a higher priority one for passed functions that have result typeAssertion, which also yields result typeAssertion, and one for any other type, which yields result typeUnit.
-    object TimedCompanion object for Timedtypeclass that offers three implicit providers: one forFutureOutcome, one forFutureof any type, and one for any other type.Companion object for Timedtypeclass that offers three implicit providers: one forFutureOutcome, one forFutureof any type, and one for any other type.The details are in the documentation for the implicit providers themselves (methods timed,timedFutureOf, andtimedFutureOutcome), but in short if a time limit is exceeded:- if the type TinTimed[T]isFutureOutcometheFutureOutcomereturned bytimeoutAfterwill result in eitherFailedorCanceled
- if the type is Future[U], theFuture[U]returned bytimeoutAfterwill fail with either aTestFailedDueToTimeoutExceptionor aTestCanceledException.
- otherwise, the timeoutAftermethod will itself complete abruptly with eitherTestFailedDueToTimeoutExceptionorTestCanceledException.
 
- if the type 
-    object ValueMappingCompanion object for ValueMappingthat provides implicit implementations forscala.collection.GenMapandjava.util.Map.
-    object WheneverAsserting extends ExpectationWheneverAssertingCompanion object to WheneverAssertingthat provides two implicit providers, a higher priority one for passed functions that have result typeAssertion, which also yields result typeAssertion, and one for any other type, which yields result typeUnit.
-    object WritabilityCompanion object for Writabilitythat provides implicit implementations for the following types:Companion object for Writabilitythat provides implicit implementations for the following types:- java.io.File
- arbitary object with a isWritable()method that returnsBoolean
- arbitary object with a parameterless isWritablemethod that returnsBoolean