/**
* @param StreamName $streamName
* @param array $metadata
* @param null|int $minVersion
* @throws StreamNotFoundException
* @return Message[]
*/
public function loadEventsByMetadataFrom(StreamName $streamName, array $metadata, $minVersion = null)
{
$streamEvents = [];
if (!isset($this->streams[$streamName->toString()])) {
return [];
}
foreach ($this->streams[$streamName->toString()] as $index => $streamEvent) {
if ($this->matchMetadataWith($streamEvent, $metadata)) {
if (is_null($minVersion) || $streamEvent->version() >= $minVersion) {
$streamEvents[] = $streamEvent;
}
}
}
return $streamEvents;
}