expectAsyncUntil2<T, A, B> function

Func2<T, A, B> expectAsyncUntil2 <T, A, B>(T callback(A a, B b), bool isDone(), { String id, String reason })

Informs the framework that the given callback of arity 2 is expected to be called until isDone returns true.

Returns a wrapped function that should be used as a replacement of the original callback.

isDone is called after each time the function is run. Only when it returns true will the callback be considered complete.

Both id and reason are optional and provide extra information about the callback when debugging. id should be the name of the callback, while reason should be the reason the callback is expected to be called.

This method takes callbacks with two arguments. See also expectAsyncUntil0, expectAsyncUntil1, expectAsyncUntil3, expectAsyncUntil4, expectAsyncUntil5, and expectAsyncUntil6 for callbacks with different arity.

Implementation

Func2<T, A, B> expectAsyncUntil2<T, A, B>(T callback(A a, B b), bool isDone(),
    {String id, String reason}) {
  if (Invoker.current == null) {
    throw StateError("expectAsyncUntil2() may only be called within a test.");
  }

  return _ExpectedFunction<T>(callback, 0, -1,
          id: id, reason: reason, isDone: isDone)
      .max2;
}