org.scalatest.matchers.ClassicMatchers

Size

trait Size [T] extends Extent[T]

Supertrait for Size type classes.

This traits enable you to use ScalaTest matchers' “have size” syntax to be used with arbitrary objects. As an example, consider java.net.DatagramPacket, which has a getLength method. By default, this can't be used with ScalaTest's have length syntax.

scala> import java.awt.image.DataBufferByte
import java.awt.image.DataBufferByte

scala> import org.scalatest.matchers.ShouldMatchers._
import org.scalatest.matchers.ShouldMatchers._

scala> val db = new DataBufferByte(4)
db: java.awt.image.DataBufferByte = java.awt.image.DataBufferByte@33d5e94f

scala> db.getSize
res0: Int = 4

scala> db should have size 4
:17: error: could not find implicit value for parameter ev: org.scalatest.matchers.ShouldMatchers.Extent[java.awt.image.DataBufferByte]
              db should have size 4
                 ^
scala> implicit val sizeOfDataBufferByte =
     |   new Size[DataBufferByte] {
     |     def extentOf(db: DataBufferByte): Long = db.getSize
     |   }
sizeOfDataBufferByte: java.lang.Object with org.scalatest.matchers.ShouldMatchers.Size[java.awt.image.DataBufferByte] = $anon$1@4c69bdf8

scala> db should have size 4

scala> db should have size 3
org.scalatest.exceptions.TestFailedException:  java.awt.image.DataBufferByte@33d5e94f had size 4, not size 3

Linear Supertypes
Extent[T], AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. Size
  2. Extent
  3. AnyRef
  4. Any
Visibility
  1. Public
  2. All

Abstract Value Members

  1. def extentOf (o: T): Long

    Attributes
    abstract
    Definition Classes
    Extent