org.scalatest.concurrent

ConductorMultiFixture

trait ConductorMultiFixture extends AnyRef

Trait that can pass a new Conductor fixture into tests, for use in suites such as MultipleFixtureFunSuite or MultipleFixtureSpec, which facilitate writing tests that take different types of fixtures.

Here's an example of the use of this trait to test the ArrayBlockingQueue concurrency abstraction from java.util.concurrent:

import org.scalatest.fixture.MultipleFixtureFunSuite
import org.scalatest.concurrent.ConductorMultiFixture
import org.scalatest.matchers.ShouldMatchers
import java.util.concurrent.ArrayBlockingQueue

class ArrayBlockingQueueSuite extends MultipleFixtureFunSuite with ConductorMultiFixture with ShouldMatchers {
test("calling put on a full queue blocks the producer thread") { (conductor: Conductor) => import conductor._
val buf = new ArrayBlockingQueue[Int](1)
thread("producer") { buf put 42 buf put 17 beat should be (1) }
thread("consumer") { waitForBeat(1) buf.take should be (42) buf.take should be (17) }
whenFinished { buf should be ('empty) } }
test("calling take on an empty queue blocks the consumer thread") { (conductor: Conductor) => import conductor._
val buf = new ArrayBlockingQueue[Int](1)
thread("producer") { waitForBeat(1) buf put 42 buf put 17 }
thread("consumer") { buf.take should be (42) buf.take should be (17) beat should be (1) }
whenFinished { buf should be ('empty) } } }

For an explanation of how these tests work, see the documentation for Conductor.

Self Type
ConductorMultiFixture with Suite with ConfigMapFixture
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. ConductorMultiFixture
  2. AnyRef
  3. Any
Visibility
  1. Public
  2. All

Value Members

  1. def != (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  2. def != (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  3. def ## (): Int

    Attributes
    final
    Definition Classes
    AnyRef → Any
  4. def == (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  5. def == (arg0: Any): Boolean

    Attributes
    final
    Definition Classes
    Any
  6. def asInstanceOf [T0] : T0

    Attributes
    final
    Definition Classes
    Any
  7. def clone (): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. def eq (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  9. def equals (arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize (): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  11. def getClass (): java.lang.Class[_]

    Attributes
    final
    Definition Classes
    AnyRef
  12. def hashCode (): Int

    Definition Classes
    AnyRef → Any
  13. def isInstanceOf [T0] : Boolean

    Attributes
    final
    Definition Classes
    Any
  14. def ne (arg0: AnyRef): Boolean

    Attributes
    final
    Definition Classes
    AnyRef
  15. def notify (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  16. def notifyAll (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
  17. def synchronized [T0] (arg0: ⇒ T0): T0

    Attributes
    final
    Definition Classes
    AnyRef
  18. def toString (): String

    Definition Classes
    AnyRef → Any
  19. def wait (): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  20. def wait (arg0: Long, arg1: Int): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  21. def wait (arg0: Long): Unit

    Attributes
    final
    Definition Classes
    AnyRef
    Annotations
    @throws()
  22. implicit def withConductorFixture (fun: (Conductor) ⇒ Unit): (FixtureParam) ⇒ Unit

    Creates a new Conductor, passes the Conductor to the specified test function, and ensures that conduct gets invoked on the Conductor.

    Creates a new Conductor, passes the Conductor to the specified test function, and ensures that conduct gets invoked on the Conductor.

    After the test function returns (so long as it returns normally and doesn't complete abruptly with an exception), this method will determine whether the conduct method has already been called (by invoking conductingHasBegun on the Conductor). If not, this method will invoke conduct to ensure that the multi-threaded test is actually conducted.

    Attributes
    implicit

Inherited from AnyRef

Inherited from Any