trait LoneElement extends AnyRef
Trait that provides an implicit conversion that adds to collection types a loneElement method, which
will return the value of the lone element if the collection does
indeed contain one and only one element, or throw TestFailedException if not.
This construct allows you to express in one statement that a collection should contain one and only one element and that the element value should meet some expectation. Here's an example:
set.loneElement should be > 9
Or, using an assertion instead of a matcher expression:
assert(set.loneElement > 9)
The loneElement syntax can be used with any collection type C for which an
implicit Collecting[C] is available. ScalaTest provides
implicit Collecting instances for scala.collection.GenTraversable, Array,
and java.util.Collection. You can enable the loneElement
syntax on other collection types by defining an implicit Collecting instances for those types.
If you want to use loneElement with a java.util.Map, first transform it to a
set of entries with entrySet, and if helpful, use ScalaTest's Entry class:
scala> import org.scalatest._
import org.scalatest._
scala> import LoneElement._
import LoneElement._
scala> import Matchers._
import Matchers._
scala> val jmap = new java.util.HashMap[String, Int]
jmap: java.util.HashMap[String,Int] = {}
scala> jmap.put("one", 1)
res0: Int = 0
scala> jmap.entrySet.loneElement should be (Entry("one", 1))
- Source
- LoneElement.scala
- Alphabetic
- By Inheritance
- LoneElement
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
-   final  class LoneElementCollectionWrapper[E, CTC[_]] extends AnyRefWrapper class that adds a loneElementmethod to any collection typeCfor which an implicitCollecting[C]is available.Wrapper class that adds a loneElementmethod to any collection typeCfor which an implicitCollecting[C]is available.Through the implicit conversion provided by trait LoneElement, this class allows you to make statements like:trav.loneElement should be > 9- E
- the element type of the collection on which to add the - loneElementmethod
- CTC
- the "collection type constructor" for the collection on which to add the - loneElementmethod
 
-   final  class LoneElementJavaMapWrapper[K, V, JMAP[_, _] <: Map[_, _]] extends AnyRefWrapper class that adds a loneElementmethod to Java Map for which an implicitCollecting[org.scalatest.Entry, java.util.Map]is available.Wrapper class that adds a loneElementmethod to Java Map for which an implicitCollecting[org.scalatest.Entry, java.util.Map]is available.Through the implicit conversion provided by trait LoneElement, this class allows you to make statements like:jmap.loneElement.getKey should be > 9- K
- the element type of the Java Map key on which to add the - loneElementmethod
- V
- the element type of the Java Map value on which to add the - loneElementmethod
- JMAP
- the "Java Map type constructor" for the collection on which to add the - loneElementmethod
 
-   final  class LoneElementMapWrapper[K, V, MAP[k, v] <: GenMap[k, v]] extends AnyRefWrapper class that adds a loneElementmethod to Map for which an implicitCollecting[(K, V), scala.collection.GenTraversable[(K, V)]]is available.Wrapper class that adds a loneElementmethod to Map for which an implicitCollecting[(K, V), scala.collection.GenTraversable[(K, V)]]is available.Through the implicit conversion provided by trait LoneElement, this class allows you to make statements like:map.loneElement._1 should be > 9- K
- the element type of the Map key on which to add the - loneElementmethod
- V
- the element type of the Map value on which to add the - loneElementmethod
- MAP
- the "Map type constructor" for the collection on which to add the - loneElementmethod
 
-   final  class LoneElementStringWrapper extends AnyRefWrapper class that adds a loneElementmethod toStringfor which an implicitCollecting[C]is available.Wrapper class that adds a loneElementmethod toStringfor which an implicitCollecting[C]is available.Through the implicit conversion provided by trait LoneElement, this class allows you to make statements like:"9".loneElement should be ('9') 
Value Members
-   final  def !=(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def ##(): Int- Definition Classes
- AnyRef → Any
 
-   final  def ==(arg0: Any): Boolean- Definition Classes
- AnyRef → Any
 
-   final  def asInstanceOf[T0]: T0- Definition Classes
- Any
 
-    def clone(): AnyRef- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
 
-  implicit def convertJavaMapToCollectionLoneElementWrapper[K, V, JMAP[_, _] <: Map[_, _]](jmap: JMAP[K, V])(implicit collecting: Collecting[Entry[K, V], JMAP[K, V]], prettifier: Prettifier, pos: Position): LoneElementJavaMapWrapper[K, V, JMAP]
-  implicit def convertMapToCollectionLoneElementWrapper[K, V, MAP[k, v] <: GenMap[k, v]](map: MAP[K, V])(implicit collecting: Collecting[(K, V), GenTraversable[(K, V)]], prettifier: Prettifier, pos: Position): LoneElementMapWrapper[K, V, MAP]
-   implicit  def convertToCollectionLoneElementWrapper[E, CTC[_]](collection: CTC[E])(implicit collecting: Collecting[E, CTC[E]], prettifier: Prettifier, pos: Position): LoneElementCollectionWrapper[E, CTC]Implicit conversion that adds a loneElementmethod to any collection typeCfor which an implicitCollecting[C]is available.Implicit conversion that adds a loneElementmethod to any collection typeCfor which an implicitCollecting[C]is available.- E
- the element type of the collection on which to add the - loneElementmethod
- CTC
- the "collection type constructor" for the collection on which to add the - loneElementmethod
- collection
- the collection on which to add the - loneElementmethod
- collecting
- a typeclass that enables the - loneElementsyntax
 
-   implicit  def convertToStringLoneElementWrapper(s: String)(implicit prettifier: Prettifier, pos: Position): LoneElementStringWrapperImplicit conversion that adds a loneElementmethod to String for which an implicitCollecting[C]is available.Implicit conversion that adds a loneElementmethod to String for which an implicitCollecting[C]is available.- s
- the - Stringto wrap
 
-   final  def eq(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-    def equals(arg0: AnyRef): Boolean- Definition Classes
- AnyRef → Any
 
-    def finalize(): Unit- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
 
-   final  def getClass(): Class[_ <: AnyRef]- Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
-    def hashCode(): Int- Definition Classes
- AnyRef → Any
- Annotations
- @native()
 
-   final  def isInstanceOf[T0]: Boolean- Definition Classes
- Any
 
-   final  def ne(arg0: AnyRef): Boolean- Definition Classes
- AnyRef
 
-   final  def notify(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def notifyAll(): Unit- Definition Classes
- AnyRef
- Annotations
- @native()
 
-   final  def synchronized[T0](arg0: => T0): T0- Definition Classes
- AnyRef
 
-    def toString(): String- Definition Classes
- AnyRef → Any
 
-   final  def wait(): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long, arg1: Int): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
 
-   final  def wait(arg0: Long): Unit- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()