Packages

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
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LoneElement
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final class LoneElementCollectionWrapper[E, CTC[_]] extends AnyRef

    Wrapper class that adds a loneElement method to any collection type C for which an implicit Collecting[C] is available.

    Wrapper class that adds a loneElement method to any collection type C for which an implicit Collecting[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 loneElement method

    CTC

    the "collection type constructor" for the collection on which to add the loneElement method

  2. final class LoneElementJavaMapWrapper[K, V, JMAP[_, _] <: Map[_, _]] extends AnyRef

    Wrapper class that adds a loneElement method to Java Map for which an implicit Collecting[org.scalatest.Entry, java.util.Map] is available.

    Wrapper class that adds a loneElement method to Java Map for which an implicit Collecting[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 loneElement method

    V

    the element type of the Java Map value on which to add the loneElement method

    JMAP

    the "Java Map type constructor" for the collection on which to add the loneElement method

  3. final class LoneElementMapWrapper[K, V, MAP[k, v] <: GenMap[k, v]] extends AnyRef

    Wrapper class that adds a loneElement method to Map for which an implicit Collecting[(K, V), scala.collection.GenTraversable[(K, V)]] is available.

    Wrapper class that adds a loneElement method to Map for which an implicit Collecting[(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 loneElement method

    V

    the element type of the Map value on which to add the loneElement method

    MAP

    the "Map type constructor" for the collection on which to add the loneElement method

  4. final class LoneElementStringWrapper extends AnyRef

    Wrapper class that adds a loneElement method to String for which an implicit Collecting[C] is available.

    Wrapper class that adds a loneElement method to String for which an implicit Collecting[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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. 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]
  7. 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]
  8. 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 loneElement method to any collection type C for which an implicit Collecting[C] is available.

    Implicit conversion that adds a loneElement method to any collection type C for which an implicit Collecting[C] is available.

    E

    the element type of the collection on which to add the loneElement method

    CTC

    the "collection type constructor" for the collection on which to add the loneElement method

    collection

    the collection on which to add the loneElement method

    collecting

    a typeclass that enables the loneElement syntax

  9. implicit def convertToStringLoneElementWrapper(s: String)(implicit prettifier: Prettifier, pos: Position): LoneElementStringWrapper

    Implicit conversion that adds a loneElement method to String for which an implicit Collecting[C] is available.

    Implicit conversion that adds a loneElement method to String for which an implicit Collecting[C] is available.

    s

    the String to wrap

  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped