private function expectedEvents($events)
{
$expected = array();
$earliestEvent = null;
foreach ($events as $event) {
if ($event instanceof Event) {
$expected[] = $earliestEvent = $event;
} else {
if (!$event->hasEvents()) {
throw new InvalidArgumentException('Cannot verify event order with empty results.');
}
$subEvent = null;
foreach ($event->allEvents() as $subEvent) {
if (!$earliestEvent || $subEvent->sequenceNumber() > $earliestEvent->sequenceNumber()) {
break;
}
}
$expected[] = $earliestEvent = $subEvent;
}
}
return $expected;
}