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 FixtureSuite 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