Alex\MailCatcher\Message::match PHP Method

match() public method

public match ( array $criterias ) : boolean
$criterias array
return boolean
    public function match(array $criterias)
    {
        foreach ($criterias as $type => $value) {
            switch ($type) {
                case self::FROM_CRITERIA:
                    if (!$this->getSender()->match($value)) {
                        return false;
                    }
                    break;
                case self::SUBJECT_CRITERIA:
                    if (false === strpos($this->getSubject(), $value)) {
                        return false;
                    }
                    break;
                case self::TO_CRITERIA:
                    $foundTo = false;
                    foreach ($this->getRecipients() as $recipient) {
                        if ($recipient->match($value)) {
                            $foundTo = true;
                            break;
                        }
                    }
                    if (!$foundTo) {
                        return false;
                    }
                    break;
                case self::CONTAINS_CRITERIA:
                    if (false === strpos($this->getContent(), $value)) {
                        return false;
                    }
                    break;
                case self::FORMAT_CRITERIA:
                    if (!$this->hasFormat($value)) {
                        return false;
                    }
                    break;
                case self::ATTACHMENTS_CRITERIA:
                    if (!is_bool($value)) {
                        throw new \InvalidArgumentException(sprintf('Expected a boolean, got a "%s".', gettype($value)));
                    }
                    if ($value != $this->hasAttachments()) {
                        return false;
                    }
                    break;
                default:
                    throw new \InvalidArgumentException(sprintf('Unexpected type of criteria: "%s".', $type));
            }
        }
        return true;
    }