Description

General assert method used by others for common output.

Parameters

  • boolean $expression
  • string $message The message to output. If the message is not a string, then it will be converted to '{:message}'. Use '{:message}' in the string and it will use the `$data` to format the message with `String::insert()`.
  • array $data

Returns

void
				public function assert($expression, $message = false, $data = array()) {
		if (!is_string($message)) {
			$message = '{:message}';
		}
		if (strpos($message, "{:message}") !== false) {
			$params = $data;
			$params['message'] = $this->_message($params);
			$message = String::insert($message, $params);
		}
		$trace = Debugger::trace(array('start' => 1, 'format' => 'array'));
		$methods = $this->methods();
		$i = 1;

		while ($i < count($trace)) {
			if (in_array($trace[$i]['function'], $methods) && $trace[$i - 1]['object'] == $this) {
				break;
			}
			$i++;
		}
		$result = array(
			'file'      => $trace[$i - 1]['file'],
			'line'      => $trace[$i - 1]['line'],
			'method'    => $trace[$i]['function'],
			'assertion' => $trace[$i - 1]['function'],
			'class'     => get_class($trace[$i - 1]['object']),
			'message'   => $message,
			'data'      => $data,
		);
		$this->_result(($expression ? 'pass' : 'fail'), $result);
		return $expression;
	}