     func runOperations(operations: NSOperation...) {
         queue.delegate = delegate
         queue.addOperations(operations, waitUntilFinished: false)
+    }
+
+    func waitForOperation(operation: Operation, withExpectationDescription text: String = __FUNCTION__) {
+        addCompletionBlockToTestOperation(operation, withExpectationDescription: text)
+        queue.delegate = delegate
+        queue.addOperation(operation)
+        waitForExpectationsWithTimeout(3, handler: nil)
+    }
+
+    func waitForOperations(operations: Operation..., withExpectationDescription text: String = __FUNCTION__) {
+        for (i, op) in operations.enumerate() {
+            addCompletionBlockToTestOperation(op, withExpectationDescription: "\(i), \(text)")
+        }
+        queue.delegate = delegate
+        queue.addOperations(operations, waitUntilFinished: false)
+        waitForExpectationsWithTimeout(3, handler: nil)
     }
 
     func addCompletionBlockToTestOperation(operation: Operation, withExpectation expectation: XCTestExpectation) {


    override func setUp() {
        super.setUp()
        LogManager.severity = .Verbose
        queue = OperationQueue()
        delegate = TestQueueDelegate()
    }

        queue = nil
        delegate = nil
        ExclusivityManager.sharedInstance.__tearDownForUnitTesting()
        super.tearDown()
    }

